|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen stable-4.14] libxl/x86: check return value of SHADOW_OP_SET_ALLOCATION domctl
commit 61f28060d5b899c502e2b3bf45a39b1dd2a1224c
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Mon Jul 19 12:28:09 2021 +0200
Commit: Ian Jackson <iwj@xxxxxxxxxxxxxx>
CommitDate: Thu Aug 19 17:47:20 2021 +0100
libxl/x86: check return value of SHADOW_OP_SET_ALLOCATION domctl
The hypervisor may not have enough memory to satisfy the request. While
there, make the unit of the value clear by renaming the local variable.
Requested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
backport-requested-by: Jan Beulich <jbeulich@xxxxxxxx>
(cherry picked from commit 0be5a00af590c97ea553aadb60f1e0b3af53d8f6)
(cherry picked from commit 6bbdcefd205903b2181b3b4fdc9503709ecdb7c4)
---
tools/libxl/libxl_x86.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/tools/libxl/libxl_x86.c b/tools/libxl/libxl_x86.c
index e57f63282e..07c7b05e0d 100644
--- a/tools/libxl/libxl_x86.c
+++ b/tools/libxl/libxl_x86.c
@@ -516,10 +516,20 @@ int libxl__arch_domain_create(libxl__gc *gc,
libxl_domain_config *d_config,
xc_domain_set_time_offset(ctx->xch, domid, rtc_timeoffset);
if (d_config->b_info.type != LIBXL_DOMAIN_TYPE_PV) {
- unsigned long shadow = DIV_ROUNDUP(d_config->b_info.shadow_memkb,
- 1024);
- xc_shadow_control(ctx->xch, domid, XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION,
- NULL, 0, &shadow, 0, NULL);
+ unsigned long shadow_mb = DIV_ROUNDUP(d_config->b_info.shadow_memkb,
+ 1024);
+ int r = xc_shadow_control(ctx->xch, domid,
+ XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION,
+ NULL, 0, &shadow_mb, 0, NULL);
+
+ if (r) {
+ LOGED(ERROR, domid,
+ "Failed to set %lu MiB %s allocation",
+ shadow_mb,
+ libxl_defbool_val(d_config->c_info.hap) ? "HAP" : "shadow");
+ ret = ERROR_FAIL;
+ goto out;
+ }
}
if (d_config->c_info.type == LIBXL_DOMAIN_TYPE_PV &&
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.14
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |