tools: remove unnecessary PSR macros
PATCH 2/2 tools: remove unnecessary PSR macros
Per Roger Pau's coment, the libxl interfaces and related functions are not necessary to be included by 'LIBXL_HAVE_PSR_CMT' and 'LIBXL_HAVE_PSR_CAT'. So remove them.
--- tools/libxl/libxl.h | 6 ------ tools/xl/xl_cmdtable.c | 5 ----- tools/xl/xl_psr.c | 5 ----- 3 files changed, 16 deletions(-)
tools/libxl/libxl.h +0 -6
@@ -2166,7 +2166,6 @@ bool libxl_ms_vm_genid_is_zero(const libxl_ms_vm_genid *id);void libxl_ms_vm_genid_copy (libxl_ctx *ctx,libxl_ms_vm_genid *dst,const libxl_ms_vm_genid *src); -#ifdef LIBXL_HAVE_PSR_CMT int libxl_psr_cmt_attach (libxl_ctx *ctx,uint32_t domid);int libxl_psr_cmt_detach (libxl_ctx *ctx,uint32_t domid);int libxl_psr_cmt_domain_attached (libxl_ctx *ctx,uint32_t domid);
@@ -2179,9 +2178,7 @@ int libxl_psr_cmt_get_cache_occupancy(libxl_ctx *ctx,uint32_t domid, uint32_t socketid, uint32_t *l3_cache_occupancy); -#endif -#ifdef LIBXL_HAVE_PSR_MBM int libxl_psr_cmt_type_supported (libxl_ctx *ctx,libxl_psr_cmt_type type); int libxl_psr_cmt_get_sample(libxl_ctx *ctx, uint32_t domid,
@@ -2189,9 +2186,7 @@ int libxl_psr_cmt_get_sample(libxl_ctx *ctx,uint64_t scope, uint64_t *sample_r, uint64_t *tsc_r); -#endif -#ifdef LIBXL_HAVE_PSR_CAT /* * Function to set a domain's cbm. It operates on a single or multiple * target(s) defined in 'target_map'. The definition of 'target_map' is
@@ -2219,7 +2214,6 @@ int libxl_psr_cat_get_info(libxl_ctx *ctx, libxl_psr_cat_info **info,int libxl_psr_cat_get_l3_info (libxl_ctx *ctx,libxl_psr_cat_info **info,int *nr);void libxl_psr_cat_info_list_free (libxl_psr_cat_info *list,int nr); -#endif /* misc */
tools/xl/xl_cmdtable.c +0 -5
@@ -517,7 +517,6 @@ struct cmd_spec cmd_table[] = {"-F Run in the foreground.\n" "-p, --pidfile [FILE] Write PID to pidfile when daemonizing." , }, -#ifdef LIBXL_HAVE_PSR_CMT { "psr-hwinfo", &main_psr_hwinfo,0 ,1 , "Show hardware information for Platform Shared Resource",
@@ -544,8 +543,6 @@ struct cmd_spec cmd_table[] = {"\"total-mem-bandwidth\": Show total memory bandwidth(KB/s)\n" "\"local-mem-bandwidth\": Show local memory bandwidth(KB/s)\n" , }, -#endif -#ifdef LIBXL_HAVE_PSR_CAT { "psr-cat-set", &main_psr_cat_cbm_set,0 ,1 , "Set cache capacity bitmasks(CBM) for a domain",
@@ -561,8 +558,6 @@ struct cmd_spec cmd_table[] = {"[options] <Domain>" ,"-l <level> Specify the cache level to process, otherwise L3 cache is processed\n" }, - -#endif { "usbctrl-attach", &main_usbctrl_attach,0 ,1 , "Create a virtual USB controller for a domain",
tools/xl/xl_psr.c +0 -5
@@ -25,7 +25,6 @@#include "xl_utils.h" #include "xl_parse.h" -#ifdef LIBXL_HAVE_PSR_CMT static int psr_cmt_hwinfo (void ) {int rc;
@@ -292,9 +291,7 @@ int main_psr_cmt_show(int argc, char **argv)return ret; } -#endif -#if defined(LIBXL_HAVE_PSR_CAT ) || defined(LIBXL_HAVE_PSR_L2_CAT )static int psr_l3_cat_hwinfo (void ) {int rc, nr;
@@ -626,8 +623,6 @@ int main_psr_hwinfo(int argc, char **argv)return ret; } -#endif -/* * Local variables: * mode: C
Signature · 7 lines
1.9.1 _______________________________________________ Xen-devel mailing list [email protected] https://lists.xen.org/xen-devel
Quoted 3 lines · Yi Sun
Per Roger Pau's coment, the libxl interfaces and related functions are not necessary to be included by '
LIBXL_HAVE_PSR_CMT' and 'LIBXL_HAVE_PSR_CAT'. So remove them.
No need to mention me in the commit message, just add a:
Quoted 1 line
Signed-off-by Yi Sun <[email protected]>
Thanks.
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
PATCH 1/1 tools: change the type of '*nr' in 'libxl_psr_cat_get_info'
In reply to Yi SunDue to historical reason, type of parameter '*nr' in 'libxl_psr_cat_get_info' is 'int'. But this is not right. It should be 'unsigned int'. This patch fixes this and does related changes.
---
- This patch depends on patch 'tools: remove unnecessary PSR macros'.
--- tools/libxl/libxl.h | 2 +- tools/libxl/libxl_psr.c | 6 ++++-- tools/xl/xl_psr.c | 9 ++++----- 3 files changed, 9 insertions(+), 8 deletions(-)
tools/libxl/libxl.h +1 -1
@@ -2210,7 +2210,7 @@ int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid,* and the length in 'nr'. */ int libxl_psr_cat_get_info (libxl_ctx *ctx,libxl_psr_cat_info **info, -int *nr,unsigned int lvl); +unsigned int *nr,unsigned int lvl);int libxl_psr_cat_get_l3_info (libxl_ctx *ctx,libxl_psr_cat_info **info,int *nr);void libxl_psr_cat_info_list_free (libxl_psr_cat_info *list,int nr);
tools/libxl/libxl_psr.c +4 -2
@@ -362,7 +362,7 @@ int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid, }int libxl_psr_cat_get_info (libxl_ctx *ctx,libxl_psr_cat_info **info, -int *nr,unsigned int lvl) +unsigned int *nr,unsigned int lvl) {GC_INIT (ctx);int rc;
@@ -410,8 +410,10 @@ int libxl_psr_cat_get_l3_info(libxl_ctx *ctx, libxl_psr_cat_info **info, int *nr) {int rc; +unsigned int num; - rc =libxl_psr_cat_get_info (ctx, info, nr,3 ); + rc =libxl_psr_cat_get_info (ctx, info, &num,3 ); + *nr = num;return rc; }
tools/xl/xl_psr.c +4 -5
@@ -294,8 +294,8 @@ int main_psr_cmt_show(int argc, char **argv)static int psr_l3_cat_hwinfo (void ) { -int rc, nr; -unsigned int i; +int rc; +unsigned int i, nr;uint32_t l3_cache_size;libxl_psr_cat_info *info;
@@ -424,7 +424,7 @@ static int psr_cat_print_socket(uint32_t domid, libxl_psr_cat_info *info,static int psr_cat_show (uint32_t domid,unsigned int lvl) { -int i, nr; +unsigned int i, nr;int rc;libxl_psr_cat_info *info;
@@ -453,8 +453,7 @@ out:static int psr_l2_cat_hwinfo (void ) {int rc; -unsigned int i; -int nr; +unsigned int i, nr;libxl_psr_cat_info *info; rc =libxl_psr_cat_get_info (ctx, &info, &nr,2 );
Signature · 7 lines
1.9.1 _______________________________________________ Xen-devel mailing list [email protected] https://lists.xen.org/xen-devel
Re: [PATCH] tools: change the type of '*nr' in 'libxl_psr_cat_get_info'
tools/libxl/libxl_psr.c int libxl_psr_cat_get_l3_info(libxl_ctx *ctx, libxl_psr_cat_info **info, · line 415
Quoted 8 lines · Yi Sun
tools/libxl/libxl_psr.c +2
-1@@ -410,8 +410,10 @@ int libxl_psr_cat_get_l3_info(libxl_ctx *ctx, libxl_psr_cat_info **info, int *nr) {int rc; +unsigned int num; - rc =libxl_psr_cat_get_info (ctx, info, nr,3 ); + rc =libxl_psr_cat_get_info (ctx, info, &num,3 );
In order to avoid leaking stack data, I would rather do:
if (!rc)
*nr = num;
The rest LGTM.
Thanks, Roger.
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Re: [PATCH] tools: change the type of '*nr' in 'libxl_psr_cat_get_info'
In reply to Yi SunQuoted 6 lines · Yi Sun
Due to historical reason, type of parameter '*nr' in '
libxl_psr_cat_get_info' is 'int'. But this is not right. It should be 'unsigned int'. This patch fixes this and does related changes.Suggested-by Roger Pau Monné <[email protected]>Signed-off-by Yi Sun <[email protected]>
Please say in the commit message that this is OK because the function in question is never released.
Otherwise you need to define a LIBXL_HAVE
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
PATCH v2 1/1 tools: change the type of '*nr' in 'libxl_psr_cat_get_info'
In reply to Yi SunDue to historical reason, type of parameter '*nr' in 'libxl_psr_cat_get_info' is 'int'. But this is not right. It should be 'unsigned int'. This patch fixes this and does related changes.
---
- This patch depends on patch 'tools: remove unnecessary PSR macros'.
v2:
- assign 'num' to '*nr' if return value is success. (suggested by Roger Pau Monné)
--- tools/libxl/libxl.h | 2 +- tools/libxl/libxl_psr.c | 7 +++++-- tools/xl/xl_psr.c | 9 ++++----- 3 files changed, 10 insertions(+), 8 deletions(-)
tools/libxl/libxl.h +1 -1
@@ -2210,7 +2210,7 @@ int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid,* and the length in 'nr'. */ int libxl_psr_cat_get_info (libxl_ctx *ctx,libxl_psr_cat_info **info, -int *nr,unsigned int lvl); +unsigned int *nr,unsigned int lvl);int libxl_psr_cat_get_l3_info (libxl_ctx *ctx,libxl_psr_cat_info **info,int *nr);void libxl_psr_cat_info_list_free (libxl_psr_cat_info *list,int nr);
tools/libxl/libxl_psr.c +5 -2
@@ -362,7 +362,7 @@ int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid, }int libxl_psr_cat_get_info (libxl_ctx *ctx,libxl_psr_cat_info **info, -int *nr,unsigned int lvl) +unsigned int *nr,unsigned int lvl) {GC_INIT (ctx);int rc;
@@ -410,8 +410,11 @@ int libxl_psr_cat_get_l3_info(libxl_ctx *ctx, libxl_psr_cat_info **info, int *nr) {int rc; +unsigned int num; - rc =libxl_psr_cat_get_info (ctx, info, nr,3 ); + rc =libxl_psr_cat_get_info (ctx, info, &num,3 ); +if (!rc) + *nr = num;return rc; }
tools/xl/xl_psr.c +4 -5
@@ -294,8 +294,8 @@ int main_psr_cmt_show(int argc, char **argv)static int psr_l3_cat_hwinfo (void ) { -int rc, nr; -unsigned int i; +int rc; +unsigned int i, nr;uint32_t l3_cache_size;libxl_psr_cat_info *info;
@@ -424,7 +424,7 @@ static int psr_cat_print_socket(uint32_t domid, libxl_psr_cat_info *info,static int psr_cat_show (uint32_t domid,unsigned int lvl) { -int i, nr; +unsigned int i, nr;int rc;libxl_psr_cat_info *info;
@@ -453,8 +453,7 @@ out:static int psr_l2_cat_hwinfo (void ) {int rc; -unsigned int i; -int nr; +unsigned int i, nr;libxl_psr_cat_info *info; rc =libxl_psr_cat_get_info (ctx, &info, &nr,2 );
Signature · 7 lines
1.9.1 _______________________________________________ Xen-devel mailing list [email protected] https://lists.xen.org/xen-devel
Re: [PATCH v2] tools: change the type of '*nr' in 'libxl_psr_cat_get_info'
Quoted 6 lines · Yi Sun
Due to historical reason, type of parameter '*nr' in '
libxl_psr_cat_get_info' is 'int'. But this is not right. It should be 'unsigned int'. This patch fixes this and does related changes.Suggested-by Roger Pau Monné <[email protected]>Signed-off-by Yi Sun <[email protected]>
Thanks, Roger.
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Re: [PATCH v2] tools: change the type of '*nr' in 'libxl_psr_cat_get_info'
In reply to Yi SunQuoted 6 lines · Yi Sun
Due to historical reason, type of parameter '*nr' in '
libxl_psr_cat_get_info' is 'int'. But this is not right. It should be 'unsigned int'. This patch fixes this and does related changes.Suggested-by Roger Pau Monné <[email protected]>Signed-off-by Yi Sun <[email protected]>
If you confirm the code changed is not released I can modify the commit message while committing -- no need to resend.
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Re: [PATCH v2] tools: change the type of '*nr' in 'libxl_psr_cat_get_info'
Quoted 5 lines · Wei Liu
Quoted 4 lines · Yi Sun
Due to historical reason, type of parameter '*nr' in '
libxl_psr_cat_get_info' is 'int'. But this is not right. It should be 'unsigned int'. This patch fixes this and does related changes.
Quoted 7 lines
Quoted 2 lines
Suggested-by Roger Pau Monn? <[email protected]>Signed-off-by Yi Sun <[email protected]>Acked-by Wei Liu <[email protected]>If you confirm the code changed is not released I can modify the commit message while committing -- no need to resend.
Thank you! Yes, the 'libxl_psr_cat_get_info' is introduced by L2 CAT patch set which was merged into Xen 4.10 unstable branch recently. So, it has not been released yet.
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Re: [PATCH v2] tools: change the type of '*nr' in 'libxl_psr_cat_get_info'
In reply to Yi SunQuoted 8 lines · Yi Sun
Due to historical reason, type of parameter '*nr' in '
libxl_psr_cat_get_info' is 'int'. But this is not right. It should be 'unsigned int'. This patch fixes this and does related changes.Suggested-by Roger Pau Monné <[email protected]>Signed-off-by Yi Sun <[email protected]>---
- This patch depends on patch 'tools: remove unnecessary PSR macros'.
I suppose you want to resend this patch because its dependence should be dropped?
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Quoted 5 lines · Yi Sun
Per Roger Pau's coment, the libxl interfaces and related functions are not necessary to be included by '
LIBXL_HAVE_PSR_CMT' and 'LIBXL_HAVE_PSR_CAT'. So remove them.Signed-off-by Yi Sun <[email protected]>
(without reading the patch)
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Quoted 10 lines · Wei Liu
Quoted 5 lines · Yi Sun
Per Roger Pau's coment, the libxl interfaces and related functions are not necessary to be included by '
LIBXL_HAVE_PSR_CMT' and 'LIBXL_HAVE_PSR_CAT'. So remove them.Signed-off-by Yi Sun <[email protected]>Acked-by Wei Liu <[email protected]>(without reading the patch)
Sorry that I missed the removal in xl.h. V2 patch is sent out. Please review. Thanks!
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
PATCH v2 1/1 tools: remove unnecessary PSR macros
In reply to Yi SunThe libxl interfaces and related functions are not necessary to be included by 'LIBXL_HAVE_PSR_CMT' and 'LIBXL_HAVE_PSR_CAT'. So remove them.
---
v2:
- remove the macros in xl.h.
--- tools/libxl/libxl.h | 6 ------ tools/xl/xl.h | 4 ---- tools/xl/xl_cmdtable.c | 5 ----- tools/xl/xl_psr.c | 5 ----- 4 files changed, 20 deletions(-)
tools/libxl/libxl.h +0 -6
@@ -2166,7 +2166,6 @@ bool libxl_ms_vm_genid_is_zero(const libxl_ms_vm_genid *id);void libxl_ms_vm_genid_copy (libxl_ctx *ctx,libxl_ms_vm_genid *dst,const libxl_ms_vm_genid *src); -#ifdef LIBXL_HAVE_PSR_CMT int libxl_psr_cmt_attach (libxl_ctx *ctx,uint32_t domid);int libxl_psr_cmt_detach (libxl_ctx *ctx,uint32_t domid);int libxl_psr_cmt_domain_attached (libxl_ctx *ctx,uint32_t domid);
@@ -2179,9 +2178,7 @@ int libxl_psr_cmt_get_cache_occupancy(libxl_ctx *ctx,uint32_t domid, uint32_t socketid, uint32_t *l3_cache_occupancy); -#endif -#ifdef LIBXL_HAVE_PSR_MBM int libxl_psr_cmt_type_supported (libxl_ctx *ctx,libxl_psr_cmt_type type); int libxl_psr_cmt_get_sample(libxl_ctx *ctx, uint32_t domid,
@@ -2189,9 +2186,7 @@ int libxl_psr_cmt_get_sample(libxl_ctx *ctx,uint64_t scope, uint64_t *sample_r, uint64_t *tsc_r); -#endif -#ifdef LIBXL_HAVE_PSR_CAT /* * Function to set a domain's cbm. It operates on a single or multiple * target(s) defined in 'target_map'. The definition of 'target_map' is
@@ -2219,7 +2214,6 @@ int libxl_psr_cat_get_info(libxl_ctx *ctx, libxl_psr_cat_info **info,int libxl_psr_cat_get_l3_info (libxl_ctx *ctx,libxl_psr_cat_info **info,int *nr);void libxl_psr_cat_info_list_free (libxl_psr_cat_info *list,int nr); -#endif /* misc */
tools/xl/xl.h +0 -4
@@ -197,16 +197,12 @@ int main_loadpolicy(int argc, char **argv);int main_remus (int argc,char **argv);#endif int main_devd (int argc,char **argv); -#ifdef LIBXL_HAVE_PSR_CMT int main_psr_hwinfo (int argc,char **argv);int main_psr_cmt_attach (int argc,char **argv);int main_psr_cmt_detach (int argc,char **argv);int main_psr_cmt_show (int argc,char **argv); -#endif -#ifdef LIBXL_HAVE_PSR_CAT int main_psr_cat_cbm_set (int argc,char **argv);int main_psr_cat_show (int argc,char **argv); -#endif int main_qemu_monitor_command (int argc,char **argv);void help (const char *command);
tools/xl/xl_cmdtable.c +0 -5
@@ -517,7 +517,6 @@ struct cmd_spec cmd_table[] = {"-F Run in the foreground.\n" "-p, --pidfile [FILE] Write PID to pidfile when daemonizing." , }, -#ifdef LIBXL_HAVE_PSR_CMT { "psr-hwinfo", &main_psr_hwinfo,0 ,1 , "Show hardware information for Platform Shared Resource",
@@ -544,8 +543,6 @@ struct cmd_spec cmd_table[] = {"\"total-mem-bandwidth\": Show total memory bandwidth(KB/s)\n" "\"local-mem-bandwidth\": Show local memory bandwidth(KB/s)\n" , }, -#endif -#ifdef LIBXL_HAVE_PSR_CAT { "psr-cat-set", &main_psr_cat_cbm_set,0 ,1 , "Set cache capacity bitmasks(CBM) for a domain",
@@ -561,8 +558,6 @@ struct cmd_spec cmd_table[] = {"[options] <Domain>" ,"-l <level> Specify the cache level to process, otherwise L3 cache is processed\n" }, - -#endif { "usbctrl-attach", &main_usbctrl_attach,0 ,1 , "Create a virtual USB controller for a domain",
tools/xl/xl_psr.c +0 -5
@@ -25,7 +25,6 @@#include "xl_utils.h" #include "xl_parse.h" -#ifdef LIBXL_HAVE_PSR_CMT static int psr_cmt_hwinfo (void ) {int rc;
@@ -292,9 +291,7 @@ int main_psr_cmt_show(int argc, char **argv)return ret; } -#endif -#if defined(LIBXL_HAVE_PSR_CAT ) || defined(LIBXL_HAVE_PSR_L2_CAT )static int psr_l3_cat_hwinfo (void ) {int rc, nr;
@@ -626,8 +623,6 @@ int main_psr_hwinfo(int argc, char **argv)return ret; } -#endif -/* * Local variables: * mode: C
Signature · 7 lines
1.9.1 _______________________________________________ Xen-devel mailing list [email protected] https://lists.xen.org/xen-devel
Quoted 5 lines · Yi Sun
The libxl interfaces and related functions are not necessary to be included by '
LIBXL_HAVE_PSR_CMT' and 'LIBXL_HAVE_PSR_CAT'. So remove them.Suggested-by Roger Pau Monné <[email protected]>Signed-off-by Yi Sun <[email protected]>
Thinking about this a bit more, it is not that simple.
LIBXL_HAVE_PSR_CMT is enclosed by __i386__ and __x86_64__, libxl_psr.o is only built on x86.
I'm afraid we do need these macros in libxl and xl otherwise arm build is going to be broken.
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Quoted 7 lines · Wei Liu
Quoted 5 lines · Yi Sun
The libxl interfaces and related functions are not necessary to be included by '
LIBXL_HAVE_PSR_CMT' and 'LIBXL_HAVE_PSR_CAT'. So remove them.Suggested-by Roger Pau Monn? <[email protected]>Signed-off-by Yi Sun <[email protected]>
Quoted 7 lines
Thinking about this a bit more, it is not that simple.
LIBXL_HAVE_PSR_CMTis enclosed by__i386__and__x86_64__, libxl_psr.o is only built on x86.I'm afraid we do need these macros in libxl and xl otherwise arm build is going to be broken.
Good point. Shall we use '#if defined(__i386__) || defined(__x86_64__)' to include all PSR interfaces?
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Quoted 10 lines · Yi Sun
Quoted 9 lines · Wei Liu
Quoted 5 lines · Yi Sun
The libxl interfaces and related functions are not necessary to be included by '
LIBXL_HAVE_PSR_CMT' and 'LIBXL_HAVE_PSR_CAT'. So remove them.Suggested-by Roger Pau Monn? <[email protected]>Signed-off-by Yi Sun <[email protected]>Thinking about this a bit more, it is not that simple.
Quoted 8 lines
Quoted 5 lines
LIBXL_HAVE_PSR_CMTis enclosed by__i386__and__x86_64__, libxl_psr.o is only built on x86.I'm afraid we do need these macros in libxl and xl otherwise arm build is going to be broken.
Good point. Shall we use '#if
defined(__i386__)||defined(__x86_64__)' to include all PSR interfaces?
Yes. There is no arm counterpart as far as I can tell.
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Quoted 7 lines · Wei Liu
Quoted 5 lines · Yi Sun
The libxl interfaces and related functions are not necessary to be included by '
LIBXL_HAVE_PSR_CMT' and 'LIBXL_HAVE_PSR_CAT'. So remove them.Suggested-by Roger Pau Monné <[email protected]>Signed-off-by Yi Sun <[email protected]>
Quoted 7 lines
Thinking about this a bit more, it is not that simple.
LIBXL_HAVE_PSR_CMTis enclosed by__i386__and__x86_64__, libxl_psr.o is only built on x86.I'm afraid we do need these macros in libxl and xl otherwise arm build is going to be broken.
OK, I though ARM would have it's own empty stubs. Maybe it would be cleaner to simply don't compile xl_psr on ARM, rather than having a bunch of defines in the file which basically renders it empty when compiled on ARM.
In any case, this would not be much better than what we have now, so I guess we should leave it as-is. Sorry for the miss-guidance.
Thanks, Roger.
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel