|
[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
On 27.11.2019 17:14, Durrant, Paul wrote:
>> From: Jan Beulich <jbeulich@xxxxxxxx>
>> Sent: 27 November 2019 15:56
>>
>> 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.
But the one that Arm doesn't need should become static now.
>>> --- 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,
Oh, I didn't pay attention that is has a U on it - in this case
the comparison above is fine.
> 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?
Definitely not. They should remain unsigned quantities, but their
values may need sanity checking now.
> I also don't understand the 'adjusted at runtime' part.
Well, for a command line drive value you could adjust an out of
bounds value in some __init function. But for runtime modifiable
settings you won't get away this easily.
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 |