From: Ben Thomas <bthomas@virtualiron.com>
To: xen-devel@lists.xensource.com
Subject: [PATCH] getvcpuinfo additional information
Date: Tue, 07 Nov 2006 16:56:53 -0500 [thread overview]
Message-ID: <45510125.10606@virtualiron.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 801 bytes --]
On a number of instances, it has proved quite useful to be able to
easily examine more of the VCPU state. Specifically, the information
contained in the runstate structure. This patch extends the
returned information to contain the entire runstate structure.
A simple usage example is a dom0 user-mode program that can dump all
of the times for each VCPU (eg, running, blocked, runnable).
Signed-off-by: Ben Thomas (ben@virtualiron.com)
--
------------------------------------------------------------------------
Ben Thomas Virtual Iron Software
bthomas@virtualiron.com Tower 1, Floor 2
978-849-1214 900 Chelmsford Street
Lowell, MA 01851
[-- Attachment #2: 10021-vcpu_info.patch --]
[-- Type: text/x-patch, Size: 3698 bytes --]
# Return more information about the VCPU in the getvcpuinfo call. This is
# pretty useful for debug and investigation.
#
# Signed-off-by: Ben Thomas (ben@virtualiron.com)
Index: xen-unstable.hg/tools/libxc/xc_private.c
===================================================================
--- xen-unstable.hg.orig/tools/libxc/xc_private.c 2006-11-06 17:12:03.000000000 -0500
+++ xen-unstable.hg/tools/libxc/xc_private.c 2006-11-06 17:12:08.000000000 -0500
@@ -258,7 +258,7 @@
PERROR("Could not get info on domain");
return -1;
}
- return domctl.u.getvcpuinfo.cpu_time;
+ return domctl.u.getvcpuinfo.runstate.time[RUNSTATE_running];
}
Index: xen-unstable.hg/tools/python/xen/lowlevel/xc/xc.c
===================================================================
--- xen-unstable.hg.orig/tools/python/xen/lowlevel/xc/xc.c 2006-11-06 17:12:03.000000000 -0500
+++ xen-unstable.hg/tools/python/xen/lowlevel/xc/xc.c 2006-11-06 17:12:08.000000000 -0500
@@ -312,7 +312,7 @@
"online", info.online,
"blocked", info.blocked,
"running", info.running,
- "cpu_time", info.cpu_time,
+ "cpu_time", info.runstate.time[RUNSTATE_running],
"cpu", info.cpu);
cpulist = PyList_New(0);
Index: xen-unstable.hg/tools/xenstat/libxenstat/src/xenstat.c
===================================================================
--- xen-unstable.hg.orig/tools/xenstat/libxenstat/src/xenstat.c 2006-11-06 17:12:03.000000000 -0500
+++ xen-unstable.hg/tools/xenstat/libxenstat/src/xenstat.c 2006-11-06 17:12:08.000000000 -0500
@@ -550,7 +550,7 @@
}
else {
node->domains[i].vcpus[vcpu].online = info.online;
- node->domains[i].vcpus[vcpu].ns = info.cpu_time;
+ node->domains[i].vcpus[vcpu].ns = info.runstate.time[RUNSTATE_running];
}
}
}
Index: xen-unstable.hg/xen/common/domctl.c
===================================================================
--- xen-unstable.hg.orig/xen/common/domctl.c 2006-11-06 17:12:03.000000000 -0500
+++ xen-unstable.hg/xen/common/domctl.c 2006-11-06 17:12:08.000000000 -0500
@@ -515,7 +515,7 @@
op->u.getvcpuinfo.online = !test_bit(_VCPUF_down, &v->vcpu_flags);
op->u.getvcpuinfo.blocked = test_bit(_VCPUF_blocked, &v->vcpu_flags);
op->u.getvcpuinfo.running = test_bit(_VCPUF_running, &v->vcpu_flags);
- op->u.getvcpuinfo.cpu_time = runstate.time[RUNSTATE_running];
+ memcpy(&op->u.getvcpuinfo.runstate, &runstate, sizeof(runstate));
op->u.getvcpuinfo.cpu = v->processor;
ret = 0;
Index: xen-unstable.hg/xen/include/public/domctl.h
===================================================================
--- xen-unstable.hg.orig/xen/include/public/domctl.h 2006-11-06 17:12:03.000000000 -0500
+++ xen-unstable.hg/xen/include/public/domctl.h 2006-11-06 17:12:08.000000000 -0500
@@ -15,6 +15,7 @@
#endif
#include "xen.h"
+#include "vcpu.h"
#define XEN_DOMCTL_INTERFACE_VERSION 0x00000004
@@ -239,8 +240,8 @@
uint8_t online; /* currently online (not hotplugged)? */
uint8_t blocked; /* blocked waiting for an event? */
uint8_t running; /* currently scheduled on its CPU? */
- uint64_t cpu_time; /* total cpu time consumed (ns) */
uint32_t cpu; /* current mapping */
+ vcpu_runstate_info_t runstate; /* VCPU runstate info (see vcpu.h) */
};
typedef struct xen_domctl_getvcpuinfo xen_domctl_getvcpuinfo_t;
DEFINE_XEN_GUEST_HANDLE(xen_domctl_getvcpuinfo_t);
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
next reply other threads:[~2006-11-07 21:56 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-07 21:56 Ben Thomas [this message]
2006-11-07 22:19 ` [PATCH] getvcpuinfo additional information Daniel P. Berrange
2006-11-07 22:33 ` Ben Thomas
2006-11-08 0:08 ` Daniel P. Berrange
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45510125.10606@virtualiron.com \
--to=bthomas@virtualiron.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.