[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] common/gnttab: Introduce command line feature controls
On 24/08/17 17:16, Andrew Cooper wrote: > On 24/08/17 16:01, Juergen Gross wrote: >> On 24/08/17 16:50, Andrew Cooper wrote: >>> This patch was originally a workaround for XSA-226. Since then, transitive >>> grants are believed to be functioning properly, and the defaults have >>> changed >>> appropriately. >>> >>> However, for those people who chose to use the workaround (especially from >>> an >>> attack surface mitigation point of view), retain the ability for the host >>> administrator to choose. >>> >>> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> >>> --- >>> CC: Jan Beulich <JBeulich@xxxxxxxx> >>> CC: George Dunlap <George.Dunlap@xxxxxxxxxxxxx> >>> CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> >>> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> >>> CC: Tim Deegan <tim@xxxxxxx> >>> CC: Wei Liu <wei.liu2@xxxxxxxxxx> >>> --- >>> docs/misc/xen-command-line.markdown | 13 +++++++++++ >>> xen/common/grant_table.c | 44 >>> +++++++++++++++++++++++++++++++++++-- >>> 2 files changed, 55 insertions(+), 2 deletions(-) >>> >>> diff --git a/docs/misc/xen-command-line.markdown >>> b/docs/misc/xen-command-line.markdown >>> index 4002eab..78c7b51 100644 >>> --- a/docs/misc/xen-command-line.markdown >>> +++ b/docs/misc/xen-command-line.markdown >>> @@ -868,6 +868,19 @@ Controls EPT related features. >>> >>> Specify which console gdbstub should use. See **console**. >>> >>> +### gnttab >>> +> `= List of [ max_ver:<integer>, transitive ]` >>> + >>> +> Default: `gnttab=max_ver:2,transitive` >>> + >>> +Control various aspects of the grant table behaviour available to guests. >>> + >>> +* `max_ver` Select the maximum grant table version to offer to guests. >>> Valid >>> +version are 1 and 2. >>> +* `transitive` Permit or disallow the use of transitive grants. Note that >>> the >>> +use of grant table v2 without transitive grants is an ABI breakage from the >>> +guests point of view. >> So shouldn't there be a way for the guest to query the support of >> transient grants? > > Ideally yes, but how do you suggest doing this in a compatible way? An ELF note in the guest kernel indicating it is aware of that possibility in order to allow v2 grants for that guest without transient grants? > All Xen downstreams which haven't backported the eventual transitive > fixes will have this clobber in place, without any query-ability. So the only really compatible way would be to disallow v2 grants. OTOH I guess there aren't so many guests using v2 right now... > The reason this workaround was so effective, and why several large users > still wish to clobber them, is because nothing uses transitive grants. Right. And only very few guests use v2 grants. > >> >>> + >>> ### gnttab\_max\_frames >>> > `= <integer>` >>> >>> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c >>> index 36895aa..f9c313d 100644 >>> --- a/xen/common/grant_table.c >>> +++ b/xen/common/grant_table.c >>> @@ -50,6 +50,42 @@ integer_param("gnttab_max_nr_frames", >>> max_nr_grant_frames); >>> unsigned int __read_mostly max_grant_frames; >>> integer_param("gnttab_max_frames", max_grant_frames); >>> >>> +static unsigned int __read_mostly opt_gnttab_max_version = 2; >>> +static bool __read_mostly opt_transitive_grants = true; >>> + >>> +static void __init parse_gnttab(char *s) >> Do you mind using: >> >> static int __init parse_gnttab(const char *s) >> >> in order to comply with my runtime parameter series? > > If the result will still compile. What should the semantics be? (I've > had a quick look through your series, but I can't see the semantics > stated anywhere obvious) The parsing routine must not change the parameter string and should return an error (e.g. -EINVAL) in case of an illegal parameter. Juergen _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |