diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-10-14 09:07:51 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-10-14 09:07:51 +0100 |
commit | 0482af4d96d0a48c0e7eb9f9033408c014de9a4d (patch) | |
tree | cd5f29e8439383e5ed3ca6b6a3aa8a10c2ca06b6 /xen/common/sysctl.c | |
parent | c637aa4f78d48ffcd39b8352a7fd325add0f89f9 (diff) | |
download | xen-0482af4d96d0a48c0e7eb9f9033408c014de9a4d.tar.gz xen-0482af4d96d0a48c0e7eb9f9033408c014de9a4d.tar.bz2 xen-0482af4d96d0a48c0e7eb9f9033408c014de9a4d.zip |
Spinlock profiling (enable in build with lock_profile=y)
Adds new tool xenlockprof to run from dom0.
From: Juergen Gross <juergen.gross@ts.fujitsu.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/common/sysctl.c')
-rw-r--r-- | xen/common/sysctl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c index 4723de8dc1..dbe6fc1083 100644 --- a/xen/common/sysctl.c +++ b/xen/common/sysctl.c @@ -29,6 +29,9 @@ extern long arch_do_sysctl( struct xen_sysctl *op, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl); +#ifdef LOCK_PROFILE +extern int spinlock_profile_control(xen_sysctl_lockprof_op_t *pc); +#endif long do_sysctl(XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl) { @@ -144,6 +147,15 @@ long do_sysctl(XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl) break; #endif +#ifdef LOCK_PROFILE + case XEN_SYSCTL_lockprof_op: + { + ret = spinlock_profile_control(&op->u.lockprof_op); + if ( copy_to_guest(u_sysctl, op, 1) ) + ret = -EFAULT; + } + break; +#endif case XEN_SYSCTL_debug_keys: { char c; |