On Wed, 11 Dec 2013, Dave Hansen wrote: > From: Dave Hansen <dave.han...@linux.intel.com> > > '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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/