On 04/08/17 11:12, Michal Hocko wrote:
> On Fri 04-08-17 11:02:46, Igor Stoppa wrote:

[...]

>> struct page {
>>   /* First double word block */
>>   unsigned long flags;               /* Atomic flags, some possibly
>>                               * updated asynchronously */
>> union {
>>      struct address_space *mapping;  /* If low bit clear, points to
>>                                       * inode address_space, or NULL.
>>                                       * If page mapped as anonymous
>>                                       * memory, low bit is set, and
>>                                       * it points to anon_vma object:
>>                                       * see PAGE_MAPPING_ANON below.
>>                                       */
>> ...
>> }
>>
>> mapping seems to be used exclusively in 2 ways, based on the value of
>> its lower bit.
> 
> Not really. The above applies to LRU pages. Please note that Slab pages
> use s_mem and huge pages use compound_mapcount. If vmalloc pages are
> using none of those already you can add a new field there.

Yes, both from reading the code and some experimentation, it seems that
vmalloc is not using either field.

I'll add a vm_area field as you advised.

Is this something I could send as standalone patch?

--
thank you, igor

Reply via email to