|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 6/6] xl: 'xl list' supports '-c' for global claim information.
On Mon, 2013-03-11 at 14:20 +0000, Konrad Rzeszutek Wilk wrote:
> When guests have XENMEM_claim_pages called, they influence a global
> counter value - which has the cumulative count of the number of
> pages requested by all domains. This value is provided via the
> XENMEM_get_unclaimed_pages hypercall. The value fluctuates quite
> often so the value is stale once it is provided to the user-space.
> However it is useful for diagnostic purposes.
>
> [v1: s/unclaimed/outstanding/]
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> ---
> tools/libxl/libxl.c | 12 ++++++++++++
> tools/libxl/libxl.h | 1 +
> tools/libxl/libxl_types.idl | 4 ++++
> tools/libxl/xl_cmdimpl.c | 29 +++++++++++++++++++++++++----
> tools/libxl/xl_cmdtable.c | 4 +++-
> 5 files changed, 45 insertions(+), 5 deletions(-)
>
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index 0745888..fd5d725 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -4051,6 +4051,18 @@ libxl_numainfo *libxl_get_numainfo(libxl_ctx *ctx, int
> *nr)
> return ret;
> }
>
> +int libxl_get_claiminfo(libxl_ctx *ctx, libxl_claiminfo *claiminfo)
> +{
> + long l;
> +
> + l = xc_domain_get_outstanding_pages(ctx->xch);
> + if (l == -ENOSYS)
Does this function really return -errno and not -1 + set errno on error?
libxc is a bit crap^Wconfused in this respect but I don't see the
frobbing in the do_memory_op call path to turn from the -1+errno you get
from ioctl() into -errno which some call chains in libxc have.
> + return l;
> + claiminfo->claimed = l;
> +
> + return 0;
> +}
> +
> const libxl_version_info* libxl_get_version_info(libxl_ctx *ctx)
> {
> union {
> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
> index 538bf93..8d0ab23 100644
> --- a/tools/libxl/libxl.h
> +++ b/tools/libxl/libxl.h
> @@ -581,6 +581,7 @@ int libxl_wait_for_memory_target(libxl_ctx *ctx, uint32_t
> domid, int wait_secs);
>
> /* Parse the claim_mode options */
> int libxl_parse_claim_mode(const char *s, unsigned int *flag);
> +int libxl_get_claiminfo(libxl_ctx *ctx, libxl_claiminfo *claiminfo);
Most similar interfaces in libxl seem to either return
libxl_claiminfo->claimed directly or return the struct.
Is there likely to be other info in this struct in the future?
>
> int libxl_vncviewer_exec(libxl_ctx *ctx, uint32_t domid, int autopass);
> int libxl_console_exec(libxl_ctx *ctx, uint32_t domid, int cons_num,
> libxl_console_type type);
> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
> index 0a8b99a..aa71ed8 100644
> --- a/tools/libxl/libxl_types.idl
> +++ b/tools/libxl/libxl_types.idl
> @@ -509,6 +509,10 @@ libxl_cputopology = Struct("cputopology", [
> ("node", uint32),
> ], dir=DIR_OUT)
>
> +libxl_claiminfo = Struct("claiminfo", [
> + ("claimed", uint64),
What are the units? Should this be a MemKB or ....
> + ])
> +
> libxl_sched_credit_params = Struct("sched_credit_params", [
> ("tslice_ms", integer),
> ("ratelimit_us", integer),
[...]
> @@ -4663,18 +4681,21 @@ int main_info(int argc, char **argv)
> int opt;
> static struct option opts[] = {
> {"numa", 0, 0, 'n'},
> + {"claim", 0, 0, 'c'},
Unlike numa this is just one line, I reckon it could be printed
unconditionally.
> COMMON_LONG_OPTS,
> {0, 0, 0, 0}
> };
> - int numa = 0;
> + int numa = 0, claim = 0;
>
> - SWITCH_FOREACH_OPT(opt, "hn", opts, "info", 0) {
> + SWITCH_FOREACH_OPT(opt, "hnc", opts, "info", 0) {
> case 'n':
> numa = 1;
> break;
> + case 'c':
> + claim = 1;
> }
>
> - print_info(numa);
> + print_info(numa, claim);
> return 0;
> }
>
> diff --git a/tools/libxl/xl_cmdtable.c b/tools/libxl/xl_cmdtable.c
> index b4a87ca..a48dbb0 100644
> --- a/tools/libxl/xl_cmdtable.c
> +++ b/tools/libxl/xl_cmdtable.c
> @@ -226,7 +226,9 @@ struct cmd_spec cmd_table[] = {
> { "info",
> &main_info, 0, 0,
> "Get information about Xen host",
> - "-n, --numa List host NUMA topology information",
> + "[-n|-c]",
> + "-n, --numa List host NUMA topology information\n"
> + "-c, --claim List claim information",
> },
> { "sharing",
> &main_sharing, 0, 0,
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |