Re: [PATCH v2 13/15] slab: use struct page for slab management

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2013/10/18 Christoph Lameter <cl@xxxxxxxxx>:
> On Wed, 16 Oct 2013, Joonsoo Kim wrote:
>
>> -                                      * see PAGE_MAPPING_ANON below.
>> -                                      */
>> +     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.
>> +                                              */
>> +             void *s_mem;                    /* slab first object */
>> +     };
>
> The overloading of mapping has caused problems in the past since slab
> pages are (or are they no longer?) used for DMA to disk. At that point the
> I/O subsystem may be expecting a mapping in the page struct if this field
> is not NULL.

I search the history of struct page and find that the SLUB use mapping field
in past (2007 year). At that time, you inserted VM_BUG_ON(PageSlab(page))
('b5fab14') into page_mapping() function to find remaining use. Recently,
I never hear that this is triggered and 6 years have passed since inserting
VM_BUG_ON(), so I guess there is no problem to use it.
If this argument is reasonable, please give me an ACK :)

Thanks.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]