aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortlh20@elite.cl.cam.ac.uk <tlh20@elite.cl.cam.ac.uk>2003-05-06 22:50:55 +0000
committertlh20@elite.cl.cam.ac.uk <tlh20@elite.cl.cam.ac.uk>2003-05-06 22:50:55 +0000
commit642bd0999b4d21360384ddc69bbbbbcbc24655fc (patch)
tree3d3d4313aa9925a53f3a8dbf5cd8b2411b30a7d2
parent0d1658ee2283a6488285251f0116d57304dbc2ea (diff)
downloadxen-642bd0999b4d21360384ddc69bbbbbcbc24655fc.tar.gz
xen-642bd0999b4d21360384ddc69bbbbbcbc24655fc.tar.bz2
xen-642bd0999b4d21360384ddc69bbbbbcbc24655fc.zip
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
-rw-r--r--.rootkeys1
-rwxr-xr-xtools/internal/xi_list45
-rw-r--r--xen/common/domain.c2
-rw-r--r--xen/include/xeno/sched.h3
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_core.c6
5 files changed, 57 insertions, 0 deletions
diff --git a/.rootkeys b/.rootkeys
index c450c67df2..a842dde4ac 100644
--- a/.rootkeys
+++ b/.rootkeys
@@ -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
diff --git a/tools/internal/xi_list b/tools/internal/xi_list
new file mode 100755
index 0000000000..bff4633f83
--- /dev/null
+++ b/tools/internal/xi_list
@@ -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
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 35154baf37..e2a8306357 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -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);
diff --git a/xen/include/xeno/sched.h b/xen/include/xeno/sched.h
index fe4c49736e..c5ab334b00 100644
--- a/xen/include/xeno/sched.h
+++ b/xen/include/xeno/sched.h
@@ -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
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_core.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_core.c
index 4f03fda0e2..d4777180e4 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_core.c
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_core.c
@@ -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,