mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
bitkeeper revision 1.210 (3eb83c4fHs_yAKLhRwEjFTSk2RBfhA)
xi_list: new file dom0_core.c, sched.h, domain.c: Add default domain name and xi_list to list all running domains
This commit is contained in:
1 parent
0d1658ee22
commit
642bd0999b
5 files changed
+57
No files matched your search
@@ -39,6 +39,7 @@
|
||||
3eb781fdgbSkh2O6JQS-65Dz4n0ItQ tools/internal/xi_build.c
|
||||
3eb781fdW1SAyiaC4mTsXq_9fRHh-A tools/internal/xi_create.c
|
||||
3eb781fdcJ0fF7rWfzAOArW-x4-gwA tools/internal/xi_destroy.c
|
||||
3eb83c3bZeECmphOKOJxSu4Lo1LpBw tools/internal/xi_list
|
||||
3eb781fd8oRfPgH7qTh7xvgmwD6NgA tools/internal/xi_start.c
|
||||
3eb781fd0Eo9K1jEFCSAVzO51i_ngg tools/internal/xi_stop.c
|
||||
3eb781fd7211MZsLxJSiuy7W4KnJXg tools/internal/xi_vifinit
|
||||
|
||||
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# xi_list
|
||||
#
|
||||
# This is a silly little script to dump the currently running domains.
|
||||
# The output format is a series of space-separate fields for each domain:
|
||||
#
|
||||
# 1. Domain id
|
||||
# 2. Processor
|
||||
# 3. Has CPU (1 => true, 0 => false)
|
||||
# 4. State (RUNNING, INTERRUPTABLE, UNINTERRUPTABLE, WAIT, SUSPENDED, DYING)
|
||||
# 5. MCU advance
|
||||
# 6. Total pages
|
||||
# 7. Name
|
||||
|
||||
INPUT_FILE=/proc/xeno/domains
|
||||
|
||||
awk -f - $INPUT_FILE <<EOF
|
||||
{
|
||||
dom_id = \$1;
|
||||
|
||||
processor = \$2;
|
||||
|
||||
has_cpu = \$3;
|
||||
|
||||
state = "UNKNOWN";
|
||||
|
||||
if (\$4 == 0) state = "RUNNING";
|
||||
if (\$4 == 1) state = "INTERRUPTIBLE";
|
||||
if (\$4 == 2) state = "UNINTERRUPTABLE";
|
||||
if (\$4 == 4) state = "WAIT";
|
||||
if (\$4 == 8) state = "SUSPENDED";
|
||||
if (\$4 == 16) state = "DYING";
|
||||
|
||||
mcu_advance = \$6;
|
||||
|
||||
tot_pages = \$8;
|
||||
|
||||
printf "%d %d %d %s %d %d %s", dom_id, processor, has_cpu, state, mcu_advance, tot_pages, \$9;
|
||||
for (i = 10; i < NF; i ++) {
|
||||
printf " %s", \$i;
|
||||
}
|
||||
printf "\n";
|
||||
}
|
||||
EOF
|
||||
@@ -48,6 +48,8 @@ struct task_struct *do_newdomain(unsigned int dom_id, unsigned int cpu)
|
||||
p->domain = dom_id;
|
||||
p->processor = cpu;
|
||||
|
||||
sprintf (p->name, "Domain-%d", dom_id);
|
||||
|
||||
spin_lock_init(&p->blk_ring_lock);
|
||||
spin_lock_init(&p->page_lock);
|
||||
|
||||
|
||||
@@ -170,6 +170,9 @@ struct task_struct
|
||||
* TASK_WAIT: Domains CPU allocation expired.
|
||||
* TASK_SUSPENDED: Domain is in supsended state (eg. start of day)
|
||||
* TASK_DYING: Domain is about to cross over to the land of the dead.
|
||||
*
|
||||
* If you update these then please update the mapping to text names in
|
||||
* xi_list.
|
||||
*/
|
||||
|
||||
#define TASK_RUNNING 0
|
||||
|
||||
@@ -351,6 +351,12 @@ static int xeno_domains_show(struct seq_file *s, void *v)
|
||||
{
|
||||
dom0_op_t *di = v;
|
||||
|
||||
/*
|
||||
* Output one domain's details to dom0.
|
||||
*
|
||||
* If you update this format string then change xi_list to match.
|
||||
*/
|
||||
|
||||
seq_printf (s,
|
||||
"%8d %2d %1d %2d %8d %8ld %p %8d %s\n",
|
||||
di -> u.getdominfo.domain,
|
||||
|
||||