|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8 14/15] xen: make grant table limits boot parameters dom0 only
On 20/09/17 14:07, Jan Beulich wrote:
>>>> On 20.09.17 at 08:34, <jgross@xxxxxxxx> wrote:
>> --- a/xen/arch/arm/domain_build.c
>> +++ b/xen/arch/arm/domain_build.c
>> @@ -2098,7 +2098,7 @@ static void __init find_gnttab_region(struct domain *d,
>> kinfo->gnttab_size = (_etext - _stext) & PAGE_MASK;
>>
>> /* Make sure the grant table will fit in the region */
>> - if ( (kinfo->gnttab_size >> PAGE_SHIFT) < max_grant_frames )
>> + if ( grant_table_verify_size(d, kinfo->gnttab_size >> PAGE_SHIFT) )
>> panic("Cannot find a space for the grant table region\n");
>
> I can see how this may cause complications with my alternative
> proposal for the meaning of the command line options, but that's
> solvable for sure.
>
>> @@ -3462,6 +3449,10 @@ grant_table_create(
>> struct domain *d)
>> {
>> struct grant_table *t;
>> + static unsigned int max_grant_frames;
>> + static unsigned int max_maptrack_frames;
>> + integer_param("gnttab_max_frames", max_grant_frames);
>> + integer_param("gnttab_max_maptrack_frames", max_maptrack_frames);
>>
>> if ( (t = xzalloc(struct grant_table)) == NULL )
>> return -ENOMEM;
>> @@ -3469,14 +3460,17 @@ grant_table_create(
>> /* Simple stuff. */
>> percpu_rwlock_resource_init(&t->lock, grant_rwlock);
>> spin_lock_init(&t->maptrack_lock);
>> - t->max_grant_frames = max_grant_frames;
>> - t->max_maptrack_frames = max_maptrack_frames;
>>
>> /* Okay, install the structure. */
>> d->grant_table = t;
>>
>> if ( d->domain_id == 0 )
>> + {
>> + t->max_grant_frames = max_grant_frames ? :
>> DEFAULT_MAX_NR_GRANT_FRAMES;
>> + t->max_maptrack_frames =
>> + max_maptrack_frames ? :
>> DEFAULT_MAX_MAPTRACK_FRAMES;
>> return grant_table_init(t);
>> + }
>
> The use here makes it that in effect the two variables could then
> become __initdata. Maybe their definition should then even move
> here (if the other proposal would be discarded).
Is it possible in the hypervisor to access __initdata variables from non
__init functions? In the Linux kernel this is forbidden.
>> +bool __init grant_table_verify_size(struct domain *d, unsigned int frames)
>
> const
Yes.
Juergen
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |