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>