[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 2/2] tools/ocaml: Fix stubs the introduction of domain_create.cpupool_id
> On 17 May 2022, at 20:41, Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx> wrote: > > Sadly, cpupool IDs are chosen by the caller, not assigned sequentially, so > this does need to have a full 32 bits of range. > > Also leave a BUILD_BUG_ON() to catch more obvious ABI changes in the future. > > Fixes: 92ea9c54fc81 ("arm/dom0less: assign dom0less guests to cpupools") > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Thanks for the fix. > --- > CC: Christian Lindig <christian.lindig@xxxxxxxxxx> > CC: Edwin Török <edvin.torok@xxxxxxxxxx> > CC: Luca Fancellu <luca.fancellu@xxxxxxx> > --- > tools/ocaml/libs/xc/xenctrl.ml | 1 + > tools/ocaml/libs/xc/xenctrl.mli | 1 + > tools/ocaml/libs/xc/xenctrl_stubs.c | 8 +++++++- > 3 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml > index 7503031d8f61..8eab6f60eb14 100644 > --- a/tools/ocaml/libs/xc/xenctrl.ml > +++ b/tools/ocaml/libs/xc/xenctrl.ml > @@ -85,6 +85,7 @@ type domctl_create_config = > max_grant_frames: int; > max_maptrack_frames: int; > max_grant_version: int; > + cpupool_id: int32; What are the valid values for a CPU pool id, in particular what value should be passed here to get back the behaviour prior to these changes in Xen? (i.e. would it be cpu pool id 0 or -1 if cpu pools aren't otherwise explicitly configured on the system) Thanks, --Edwin > arch: arch_domainconfig; > } > > diff --git a/tools/ocaml/libs/xc/xenctrl.mli b/tools/ocaml/libs/xc/xenctrl.mli > index d1d9c9247afc..d3014a2708d8 100644 > --- a/tools/ocaml/libs/xc/xenctrl.mli > +++ b/tools/ocaml/libs/xc/xenctrl.mli > @@ -77,6 +77,7 @@ type domctl_create_config = { > max_grant_frames: int; > max_maptrack_frames: int; > max_grant_version: int; > + cpupool_id: int32; > arch: arch_domainconfig; > } > > diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c > b/tools/ocaml/libs/xc/xenctrl_stubs.c > index 5b4fe72c8dec..513ee142d2a0 100644 > --- a/tools/ocaml/libs/xc/xenctrl_stubs.c > +++ b/tools/ocaml/libs/xc/xenctrl_stubs.c > @@ -189,7 +189,8 @@ CAMLprim value stub_xc_domain_create(value xch, value > wanted_domid, value config > #define VAL_MAX_GRANT_FRAMES Field(config, 6) > #define VAL_MAX_MAPTRACK_FRAMES Field(config, 7) > #define VAL_MAX_GRANT_VERSION Field(config, 8) > -#define VAL_ARCH Field(config, 9) > +#define VAL_CPUPOOL_ID Field(config, 9) > +#define VAL_ARCH Field(config, 10) > > uint32_t domid = Int_val(wanted_domid); > int result; > @@ -201,6 +202,7 @@ CAMLprim value stub_xc_domain_create(value xch, value > wanted_domid, value config > .max_maptrack_frames = Int_val(VAL_MAX_MAPTRACK_FRAMES), > .grant_opts = > XEN_DOMCTL_GRANT_version(Int_val(VAL_MAX_GRANT_VERSION)), > + .cpupool_id = Int32_val(VAL_CPUPOOL_ID), > }; > > domain_handle_of_uuid_string(cfg.handle, String_val(VAL_HANDLE)); > @@ -225,6 +227,9 @@ CAMLprim value stub_xc_domain_create(value xch, value > wanted_domid, value config > case 1: /* X86 - emulation flags in the block */ > #if defined(__i386__) || defined(__x86_64__) > > + /* Quick & dirty check for ABI changes. */ > + BUILD_BUG_ON(sizeof(cfg) != 64); > + > /* Mnemonics for the named fields inside xen_x86_arch_domainconfig */ > #define VAL_EMUL_FLAGS Field(arch_domconfig, 0) > > @@ -254,6 +259,7 @@ CAMLprim value stub_xc_domain_create(value xch, value > wanted_domid, value config > } > > #undef VAL_ARCH > +#undef VAL_CPUPOOL_ID > #undef VAL_MAX_GRANT_VERSION > #undef VAL_MAX_MAPTRACK_FRAMES > #undef VAL_MAX_GRANT_FRAMES > -- > 2.11.0 >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |