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

From: JoonSoo Kim
Date: Fri Oct 18 2013 - 11:05:21 EST


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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/