Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:olh:xen-4.16
libvirt-7.0.0
libvirt.0acd258e2e29f0d326d69fbc385c4989f9488d1...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File libvirt.0acd258e2e29f0d326d69fbc385c4989f9488d19.patch of Package libvirt-7.0.0
From: Olaf Hering <olaf@aepfle.de> Date: Thu, 25 Mar 2021 17:26:07 +0100 Subject: 0acd258e2e29f0d326d69fbc385c4989f9488d19 libxl: add API wrapper for libxl_domain_need_memory Upcoming changes will use different LIBXL_API_VERSION variants. Prepare libxl_domain_need_memory, which changed the storage size of "need_memkb" in Xen 4.8. With Xen 4.12 the libxl_domain_config parameter was changed No functional change intended. Signed-off-by: Olaf Hering <olaf@aepfle.de> Reviewed-by: Jim Fehlig <jfehlig@suse.com> --- src/libxl/libxl_api_wrapper.h | 24 ++++++++++++++++++++++++ src/libxl/libxl_domain.c | 4 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) --- a/src/libxl/libxl_api_wrapper.h +++ b/src/libxl/libxl_api_wrapper.h @@ -105,12 +105,36 @@ static inline int libxlDomainUnpauseWrapper(libxl_ctx *ctx, uint32_t domid) { int ret; #if LIBXL_API_VERSION < 0x041300 ret = libxl_domain_unpause(ctx, domid); #else ret = libxl_domain_unpause(ctx, domid, NULL); #endif return ret; } + +#define INVALID_DOMID ~0 +static inline int +libxlDomainNeedMemoryWrapper(libxl_ctx *ctx, + libxl_domain_config *d_config, + uint64_t *need_memkb) +{ + int ret; + +#if LIBXL_API_VERSION < 0x040800 + { + uint32_t val32 = 0; + + ret = libxl_domain_need_memory(ctx, &d_config->b_info, &val32); + *need_memkb = val32; + } +#elif LIBXL_API_VERSION < 0x041300 + ret = libxl_domain_need_memory(ctx, &d_config->b_info, need_memkb); +#else + ret = libxl_domain_need_memory(ctx, d_config, INVALID_DOMID, need_memkb); +#endif + + return ret; +} --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -1005,31 +1005,31 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm) } ret = 0; cleanup: libxl_bitmap_dispose(&map); return ret; } static int libxlDomainFreeMem(libxl_ctx *ctx, libxl_domain_config *d_config) { - uint32_t needed_mem; + uint64_t needed_mem; uint32_t free_mem; int32_t target_mem; int tries = 3; int wait_secs = 10; - if (libxl_domain_need_memory(ctx, &d_config->b_info, &needed_mem) < 0) + if (libxlDomainNeedMemoryWrapper(ctx, d_config, &needed_mem) < 0) goto error; do { if (libxl_get_free_memory(ctx, &free_mem) < 0) goto error; if (free_mem >= needed_mem) return 0; target_mem = free_mem - needed_mem; if (libxl_set_memory_target(ctx, 0, target_mem, /* relative */ 1, 0) < 0)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor