|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 09/11] tools/libxl: add support for xenstore quota in domain_config
Add support for xenstore quota in the struct domain_config. Initially
it will be used only for migration of a domain.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
---
tools/golang/xenlight/helpers.gen.go | 6 ++++++
tools/golang/xenlight/types.gen.go | 1 +
tools/libs/light/libxl_dom.c | 8 ++++++++
tools/libs/light/libxl_domain.c | 10 ++++++++++
tools/libs/light/libxl_types.idl | 1 +
5 files changed, 26 insertions(+)
diff --git a/tools/golang/xenlight/helpers.gen.go
b/tools/golang/xenlight/helpers.gen.go
index 6c9af904c5..416c2d3e07 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -1286,6 +1286,9 @@ if err :=
x.TrapUnmappedAccesses.fromC(&xc.trap_unmapped_accesses);err != nil {
return fmt.Errorf("converting field TrapUnmappedAccesses: %v", err)
}
x.XenstoreFeatureMask = uint32(xc.xenstore_feature_mask)
+if err := x.XenstoreQuota.fromC(&xc.xenstore_quota);err != nil {
+return fmt.Errorf("converting field XenstoreQuota: %v", err)
+}
return nil}
@@ -1825,6 +1828,9 @@ if err :=
x.TrapUnmappedAccesses.toC(&xc.trap_unmapped_accesses); err != nil {
return fmt.Errorf("converting field TrapUnmappedAccesses: %v", err)
}
xc.xenstore_feature_mask = C.uint32_t(x.XenstoreFeatureMask)
+if err := x.XenstoreQuota.toC(&xc.xenstore_quota); err != nil {
+return fmt.Errorf("converting field XenstoreQuota: %v", err)
+}
return nil
}
diff --git a/tools/golang/xenlight/types.gen.go
b/tools/golang/xenlight/types.gen.go
index 5393277190..7e7292cf70 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -629,6 +629,7 @@ VmtraceBufKb int
Vpmu Defbool
TrapUnmappedAccesses Defbool
XenstoreFeatureMask uint32
+XenstoreQuota XsQuotaSet
}
type DomainBuildInfoTypeUnion interface {
diff --git a/tools/libs/light/libxl_dom.c b/tools/libs/light/libxl_dom.c
index 05ebc69534..1c0689d7ff 100644
--- a/tools/libs/light/libxl_dom.c
+++ b/tools/libs/light/libxl_dom.c
@@ -509,6 +509,14 @@ retry_transaction:
xs_introduce_domain(ctx->xsh, domid, state->store_mfn, state->store_port);
+ if (info->xenstore_quota.num_quota) {
+ rc = libxl_xsquota_domain_set(ctx, domid, &info->xenstore_quota);
+ if (rc) {
+ LOGED(ERROR, domid, "Failed to set Xenstore quota");
+ goto out;
+ }
+ }
+
out:
free(vm_path);
return rc;
diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domain.c
index 5be47f687f..86e43e7133 100644
--- a/tools/libs/light/libxl_domain.c
+++ b/tools/libs/light/libxl_domain.c
@@ -2533,6 +2533,16 @@ static void retrieve_domain_configuration_end(libxl__egc
*egc,
}
}
+ /* Xenstore quota */
+ {
+ libxl_xs_quota_set_dispose(&d_config->b_info.xenstore_quota);
+ rc = libxl_xsquota_domain_get(CTX, domid,
&d_config->b_info.xenstore_quota);
+ if (rc) {
+ LOGD(ERROR, domid, "Fail to get xenstore quota");
+ goto out;
+ }
+ }
+
/* Devices: disk, nic, vtpm, pcidev etc. */
/* The MERGE macro implements following logic:
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index c5ddc40f35..ee8f89e462 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -760,6 +760,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
("vpmu", libxl_defbool),
("trap_unmapped_accesses", libxl_defbool),
("xenstore_feature_mask", uint32, {'init_val': '~0U'}),
+ ("xenstore_quota", libxl_xs_quota_set),
], dir=DIR_IN,
copy_deprecated_fn="libxl__domain_build_info_copy_deprecated",
--
2.53.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |