On Wed, 11 Dec 2013, Dave Hansen wrote: > From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> > > 'struct page' has two list_head fields: 'lru' and 'list'. > Conveniently, they are unioned together. This means that code > can use them interchangably, which gets horribly confusing like > with this nugget from slab.c: > > > list_del(&page->lru); > > if (page->active == cachep->num) > > list_add(&page->list, &n->slabs_full); > > This patch makes the slab and slub code use page->list > universally instead of mixing ->list and ->lru. > > It also adds some comments to attempt to keep new users from > picking up uses of ->list. > > So, the new rule is: page->list is what the slabs use. page->lru > is for everybody else. This is a pretty arbitrary rule, but we > need _something_. Maybe we should just axe the ->list one and > make the sl?bs use ->lru. > I'd recommend this suggestion, I don't see why the slab allocators can't use a page->lru field to maintain their lists of slab pages and it makes the code much cleaner. Anybody hacking thise code will know it's not really a lru and we're just reusing a field from struct page without adding unnecessary complexity. -- 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>