Re: [RFC][Patch v11 1/2] mm: page_hinting: core infrastructure

From: Nitesh Narayan Lal
Date: Thu Jul 11 2019 - 12:52:37 EST



On 7/11/19 12:45 PM, Dave Hansen wrote:
> On 7/11/19 9:36 AM, Nitesh Narayan Lal wrote:
>>>>>> +struct zone_free_area {
>>>>>> + unsigned long *bitmap;
>>>>>> + unsigned long base_pfn;
>>>>>> + unsigned long end_pfn;
>>>>>> + atomic_t free_pages;
>>>>>> + unsigned long nbits;
>>>>>> +} free_area[MAX_NR_ZONES];
>>>>> Why do we need an extra data structure. What's wrong with putting
>>>>> per-zone data in ... 'struct zone'?
>>>> Will it be acceptable to add fields in struct zone, when they will only
>>>> be used by page hinting?
>>> Wait a sec... MAX_NR_ZONES the number of zone types not the maximum
>>> number of *zones* in the system.
>>>
>>> Did you test this on a NUMA system?
>> Yes, I tested it with a guest having 2 and 3 NUMA nodes.
> How can this *possibly* have worked?
>
> Won't each same-typed zone just use the same free_area[] entry since
> zone_idx(zone1)==zone_idx(zone2) if zone1 and zone2 are (for example)
> both ZONE_NORMAL?
Yes. However, the base_pfn and end_pfn will be updated with the zone1's
base and zone2s end_pfn value from page_hinting_enable(). Isn't?

--
Thanks
Nitesh