aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrgr22@boulderdash.cl.cam.ac.uk <rgr22@boulderdash.cl.cam.ac.uk>2003-06-10 10:29:00 +0000
committerrgr22@boulderdash.cl.cam.ac.uk <rgr22@boulderdash.cl.cam.ac.uk>2003-06-10 10:29:00 +0000
commit06bbc9e0ab74904cb9067e9a3f5232f0edfd5611 (patch)
tree9e5580eb4764173466570286a6a8122be4438392
parentf8e9aa0b6f30ba9cd26d686c335044620a65e452 (diff)
parent0da1267457f6ce239b758dd4035ec1aec544df5a (diff)
downloadxen-06bbc9e0ab74904cb9067e9a3f5232f0edfd5611.tar.gz
xen-06bbc9e0ab74904cb9067e9a3f5232f0edfd5611.tar.bz2
xen-06bbc9e0ab74904cb9067e9a3f5232f0edfd5611.zip
bitkeeper revision 1.254 (3ee5b2ec_UeOrG0N_QNlcT6ZX9JLTg)
Merge boulderdash.cl.cam.ac.uk:/auto/groups/xeno/BK/xeno.bk into boulderdash.cl.cam.ac.uk:/auto/anfs/scratch/boulderdash/rgr22/xeno-clone/xeno.bk
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--xen/common/dom0_ops.c1
-rw-r--r--xen/include/xeno/dom0_ops.h1
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_core.c43
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_ops.h1
5 files changed, 47 insertions, 0 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok
index 90b06479c8..1af9979279 100644
--- a/BitKeeper/etc/logging_ok
+++ b/BitKeeper/etc/logging_ok
@@ -15,6 +15,7 @@ kaf24@plym.cl.cam.ac.uk
kaf24@scramble.cl.cam.ac.uk
kaf24@striker.cl.cam.ac.uk
lynx@idefix.cl.cam.ac.uk
+rgr22@boulderdash.cl.cam.ac.uk
rn@wyvis.camb.intel-research.net
rn@wyvis.research.intel-research.net
smh22@boulderdash.cl.cam.ac.uk
diff --git a/xen/common/dom0_ops.c b/xen/common/dom0_ops.c
index ba6d22f19d..dd6111d700 100644
--- a/xen/common/dom0_ops.c
+++ b/xen/common/dom0_ops.c
@@ -231,6 +231,7 @@ long do_dom0_op(dom0_op_t *u_dom0_op)
list_entry(p->pg_head.next, struct pfn_info, list) -
frame_table;
op.u.getdominfo.tot_pages = p->tot_pages;
+ op.u.getdominfo.cpu_time = p->cpu_time;
}
read_unlock_irqrestore(&tasklist_lock, flags);
diff --git a/xen/include/xeno/dom0_ops.h b/xen/include/xeno/dom0_ops.h
index 8737e192aa..93bb3e89c7 100644
--- a/xen/include/xeno/dom0_ops.h
+++ b/xen/include/xeno/dom0_ops.h
@@ -85,6 +85,7 @@ typedef struct dom0_getdominfo_st
unsigned long mcu_advance;
unsigned long pg_head;
unsigned int tot_pages;
+ long long cpu_time;
} dom0_getdominfo_t;
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 d4777180e4..3dadd5cebd 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
@@ -55,6 +55,7 @@ typedef struct proc_mem_data {
#define DOM_DIR "dom"
#define DOM_MEM "mem"
#define DOM_VIF "vif"
+#define DOM_USAGE "usage"
#define MAP_DISCONT 1
@@ -112,6 +113,39 @@ struct file_operations dom_vif_ops = {
read: dom_vif_read
};
+static ssize_t dom_usage_read(struct file * file, char * buff, size_t size, loff_t * off)
+{
+ char hyp_buf[128];
+ dom0_op_t op;
+ static int finished = 0;
+
+ if ( finished )
+ {
+ finished = 0;
+ return 0;
+ }
+
+ op.cmd = DOM0_GETDOMAININFO;
+ op.u.getdominfo.domain = (unsigned int)
+ ((struct proc_dir_entry *)file->f_dentry->d_inode->u.generic_ip)->data;
+
+ (void)HYPERVISOR_dom0_op(&op);
+
+ snprintf(hyp_buf, 128, "cpu: %lld\n", op.u.getdominfo.cpu_time);
+
+ if (*off >= (strlen(hyp_buf) + 1)) return 0;
+
+ copy_to_user(buff, hyp_buf, strlen(hyp_buf));
+
+ finished = 1;
+
+ return strlen(hyp_buf) + 1;
+}
+
+struct file_operations dom_usage_ops = {
+ read: dom_usage_read
+};
+
static void create_proc_dom_entries(int dom)
{
@@ -136,6 +170,15 @@ static void create_proc_dom_entries(int dom)
file->proc_fops = &dom_vif_ops;
file->data = (void *) dom;
}
+
+ file = create_proc_entry(DOM_USAGE, 0600, dir);
+ if (file != NULL)
+ {
+ file->owner = THIS_MODULE;
+ file->nlink = 1;
+ file->proc_fops = &dom_usage_ops;
+ file->data = (void *) dom;
+ }
}
static ssize_t dom_mem_write(struct file * file, const char * buff,
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_ops.h b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_ops.h
index 1a5b63dad2..8f8949a8cd 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_ops.h
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/dom0/dom0_ops.h
@@ -102,6 +102,7 @@ typedef struct dom0_getdominfo_st
unsigned long mcu_advance;
unsigned long pg_head;
unsigned int tot_pages;
+ long long cpu_time;
} dom0_getdominfo_t;