[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] xen/grants: repurpose command line max options
On Wed, Mar 15, 2023 at 06:40:57PM +0000, Andrew Cooper wrote: > On 14/03/2023 3:42 pm, Roger Pau Monné wrote: > > On Tue, Mar 14, 2023 at 03:59:22PM +0100, Jan Beulich wrote: > >> On 14.03.2023 15:45, Roger Pau Monne wrote: > >>> Slightly change the meaning of the command line > >>> gnttab_max_{maptrack_,}frames: do not use them as upper bounds for the > >>> passed values at domain creation, instead just use them as defaults > >>> in the absence of any provided value. > >>> > >>> It's not very useful for the options to be used both as defaults and > >>> as capping values for domain creation inputs. The defaults passed on > >>> the command line are used by dom0 which has a very different grant > >>> requirements than a regular domU. dom0 usually needs a bigger > >>> maptrack array, while domU usually require a bigger number of grant > >>> frames. > >>> > >>> The relaxation in the logic for the maximum size of the grant and > >>> maptrack table sizes doesn't change the fact that domain creation > >>> hypercall can cause resource exhausting, so disaggregated setups > >>> should take it into account. > >>> > >>> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > >> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> > >> albeit perhaps with yet one more wording change (which I'd be happy to > >> make while committing, provided you agree): > >> > >>> --- a/docs/misc/xen-command-line.pandoc > >>> +++ b/docs/misc/xen-command-line.pandoc > >>> @@ -1232,11 +1232,11 @@ The usage of gnttab v2 is not security supported > >>> on ARM platforms. > >>> > >>> > Can be modified at runtime > >>> > >>> -Specify the maximum number of frames which any domain may use as part > >>> -of its grant table. This value is an upper boundary of the per-domain > >>> -value settable via Xen tools. > >>> +Specify the default upper bound on the number of frames which any domain > >>> may > >>> +use as part of its grant table unless a different value is specified at > >>> domain > >>> +creation. > >>> > >>> -Dom0 is using this value for sizing its grant table. > >>> +Note this value is the effective upper bound for dom0. > >> DomU-s created during Xen boot are equally taking this as their effective > >> value, aiui. So I'd be inclined to amend this: "... for dom0, and for > >> any domU created in the course of Xen booting". > > Not really for domUs, as there's a way to pass a different value for > > both options in the dt, see create_domUs(). > > Correct. On the ARM side, this is configurable in the for all dom0less > VMs in the device tree. > > I've committed the patch as is, seeing as it's fixing a real bug we > currently have. > > > But, I'd like to point out that there are still some issues which want > fixing. > > The /* Apply defaults if no value was specified */ section is pointless > complication. All callers pass a real number of frames, except for the > dom0 construction paths which pass in -1. I'm afraid that's not accurate, xl still passes -1 if no value has been provided in the guest config file. And the python bindings (pyxc_domain_create()) do seem to also hardcode -1. Which is not to say it can't be done, but we would need to move the default from being a command line option to a toolstack option (an additional patch). > The logic gets smaller and easier to follow if each of the dom0's > dom_cfg's default to the appropriate opt_* value. Userspace which > really asks for -1 gets a large domain that actually honours the > uint32_t ABI presented. > > With that, the writeable hypfs nodes become useless, and can be dropped, > and the opt_* variables become __initdata. > > > Next, we need to do something about the fact that the number of maptrack > frames has no relationship to the number of entries. I don't know what, > but the status quo needs changing. > > Next we need to confirm that running guests with no maptrack is safe and > security supportable option. XSM_SILO + 0 maptrack blocks most of the > grant related XSAs we've had. I've given this a quick try and it seemed to at least boot fine, but haven't done any in depth audit. > And in some copious free time, we still need to get to a point where we > can construct a VM without a grant table at all (but this still looks > like a lot of work). Yes, that's likely more work. I did an attempt in the past by allowing to set grant table version = 0 (patch on the list somewhere). Thanks, Roger.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |