Re: [PATCH 1/2] mm: slab/slub: use page->list consistently instead of page->lru

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

 



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>




[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]