[libvirt] [PATCH] libxl: allow libxl to calculate shadow mem requirements

Long, long ago before libxl_get_required_shadow_memory() was made publicly available, its code was copied to the libxl driver for calculating shadow memory requirements of HVM domains. Long ago, libxl_get_required_shadow_memory() was exported in libxl_utils.h and included in xen-devel packages everywhere. Remove the copied code, which has become stale, and let libxl provode a proper shadow memory value. Signed-off-by: Jim Fehlig <jfehlig@suse.com> --- I ensured libxl_get_required_shadow_memory() was available as far back as Xen 4.4, which is the minimum version supported by the libxl driver. src/libxl/libxl_conf.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 1344604..5202ca1 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -493,15 +493,10 @@ libxlMakeDomBuildInfo(virDomainDefPtr def, } } - /* - * The following comment and calculation were taken directly from - * libxenlight's internal function libxl_get_required_shadow_memory(): - * - * 256 pages (1MB) per vcpu, plus 1 page per MiB of RAM for the P2M map, - * plus 1 page per MiB of RAM to shadow the resident processes. - */ - b_info->shadow_memkb = 4 * (256 * libxl_bitmap_count_set(&b_info->avail_vcpus) + - 2 * (b_info->max_memkb / 1024)); + /* Allow libxl to calculate shadow memory requirements */ + b_info->shadow_memkb = + libxl_get_required_shadow_memory(b_info->max_memkb, + b_info->max_vcpus); } else { /* * For compatibility with the legacy xen toolstack, default to pygrub -- 2.1.4

On 08/03/2016 12:49 AM, Jim Fehlig wrote:
Long, long ago before libxl_get_required_shadow_memory() was made publicly available, its code was copied to the libxl driver for calculating shadow memory requirements of HVM domains.
Long ago, libxl_get_required_shadow_memory() was exported in libxl_utils.h and included in xen-devel packages everywhere.
Remove the copied code, which has become stale, and let libxl provode a proper shadow memory value.
Signed-off-by: Jim Fehlig <jfehlig@suse.com> ---
I ensured libxl_get_required_shadow_memory() was available as far back as Xen 4.4, which is the minimum version supported by the libxl driver.
Cool, and FWIW, Looks good to me: Acked-by: Joao Martins <joao.m.martins@oracle.com> (Also tested an HVM guest in which codepath goes through):
src/libxl/libxl_conf.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 1344604..5202ca1 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -493,15 +493,10 @@ libxlMakeDomBuildInfo(virDomainDefPtr def, } }
- /* - * The following comment and calculation were taken directly from - * libxenlight's internal function libxl_get_required_shadow_memory(): - * - * 256 pages (1MB) per vcpu, plus 1 page per MiB of RAM for the P2M map, - * plus 1 page per MiB of RAM to shadow the resident processes. - */ - b_info->shadow_memkb = 4 * (256 * libxl_bitmap_count_set(&b_info->avail_vcpus) + - 2 * (b_info->max_memkb / 1024)); + /* Allow libxl to calculate shadow memory requirements */ + b_info->shadow_memkb = + libxl_get_required_shadow_memory(b_info->max_memkb, + b_info->max_vcpus); } else { /* * For compatibility with the legacy xen toolstack, default to pygrub

On 08/03/2016 03:51 AM, Joao Martins wrote:
On 08/03/2016 12:49 AM, Jim Fehlig wrote:
Long, long ago before libxl_get_required_shadow_memory() was made publicly available, its code was copied to the libxl driver for calculating shadow memory requirements of HVM domains.
Long ago, libxl_get_required_shadow_memory() was exported in libxl_utils.h and included in xen-devel packages everywhere.
Remove the copied code, which has become stale, and let libxl provode a proper shadow memory value.
Signed-off-by: Jim Fehlig <jfehlig@suse.com> ---
I ensured libxl_get_required_shadow_memory() was available as far back as Xen 4.4, which is the minimum version supported by the libxl driver. Cool, and FWIW, Looks good to me:
Acked-by: Joao Martins <joao.m.martins@oracle.com>
Thanks. It's an obvious improvement that should have been done long ago.
(Also tested an HVM guest in which codepath goes through):
Same here. And I ensured the calculation was the same compared to a VM started with xl. I've pushed the patch. Regards, Jim
participants (2)
-
Jim Fehlig
-
Joao Martins