[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] Rationalize max_grant_frames and max_maptrack_frames handling
> -----Original Message----- > From: Jan Beulich <jbeulich@xxxxxxxx> > Sent: 27 November 2019 15:56 > To: Durrant, Paul <pdurrant@xxxxxxxxxx>; George Dunlap > <george.dunlap@xxxxxxxxxx> > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Andrew Cooper > <andrew.cooper3@xxxxxxxxxx>; Anthony PERARD <anthony.perard@xxxxxxxxxx>; > Roger Pau Monné <roger.pau@xxxxxxxxxx>; Volodymyr Babchuk > <Volodymyr_Babchuk@xxxxxxxx>; George Dunlap <George.Dunlap@xxxxxxxxxxxxx>; > Ian Jackson <ian.jackson@xxxxxxxxxxxxx>; Marek Marczykowski-Górecki > <marmarek@xxxxxxxxxxxxxxxxxxxxxx>; Stefano Stabellini > <sstabellini@xxxxxxxxxx>; Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>; > Julien Grall <julien@xxxxxxx>; Wei Liu <wl@xxxxxxx> > Subject: Re: [PATCH v2] Rationalize max_grant_frames and > max_maptrack_frames handling > > On 27.11.2019 15:37, Paul Durrant wrote: > > --- a/xen/arch/arm/setup.c > > +++ b/xen/arch/arm/setup.c > > @@ -789,7 +789,7 @@ void __init start_xen(unsigned long > boot_phys_offset, > > .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap, > > .max_evtchn_port = -1, > > .max_grant_frames = gnttab_dom0_frames(), > > - .max_maptrack_frames = opt_max_maptrack_frames, > > + .max_maptrack_frames = -1, > > }; > > int rc; > > > > --- a/xen/arch/x86/setup.c > > +++ b/xen/arch/x86/setup.c > > @@ -697,8 +697,8 @@ void __init noreturn __start_xen(unsigned long > mbi_p) > > struct xen_domctl_createdomain dom0_cfg = { > > .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity > : 0, > > .max_evtchn_port = -1, > > - .max_grant_frames = opt_max_grant_frames, > > - .max_maptrack_frames = opt_max_maptrack_frames, > > + .max_grant_frames = -1, > > + .max_maptrack_frames = -1, > > }; > > With these there's no need anymore for opt_max_maptrack_frames to > be non-static. Sadly Arm still wants opt_max_grant_frames > accessible in gnttab_dom0_frames(). > Yes, I was about to make them static until I saw what the ARM code did. > > --- a/xen/common/grant_table.c > > +++ b/xen/common/grant_table.c > > @@ -1837,12 +1837,18 @@ active_alloc_failed: > > return -ENOMEM; > > } > > > > -int grant_table_init(struct domain *d, unsigned int max_grant_frames, > > - unsigned int max_maptrack_frames) > > +int grant_table_init(struct domain *d, int max_grant_frames, > > + int max_maptrack_frames) > > { > > struct grant_table *gt; > > int ret = -ENOMEM; > > > > + /* Default to maximum value if no value was specified */ > > + if ( max_grant_frames < 0 ) > > + max_grant_frames = opt_max_grant_frames; > > + if ( max_maptrack_frames < 0 ) > > + max_maptrack_frames = opt_max_maptrack_frames; > > + > > if ( max_grant_frames < INITIAL_NR_GRANT_FRAMES || > > I take it we don't expect people to specify 2^^31 or more > frames for either option. It looks like almost everything > here would cope, except for this very comparison. Nevertheless > I wonder whether you wouldn't better confine both values to > [0, INT_MAX] now, including when adjusted at runtime. I can certainly remove the 'U' from the definition of INITIAL_NR_GRANT_FRAMES, but do you want me to make opt_max_grant_frames and opt_max_maptrack_frames into signed ints and add signed parser code too? I also don't understand the 'adjusted at runtime' part. Paul > > Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |