lkml.org 
[lkml]   [2013]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/2] mm: slab/slub: use page->list consistently instead of page->lru
On Wed, 11 Dec 2013, Dave Hansen wrote:

> From: Dave Hansen <dave.hansen@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.


\
 
 \ /
  Last update: 2013-12-12 00:01    [W:0.073 / U:0.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site