Re: [PATCH] Cpuset: rcu optimization of page alloc hook

Andrew Morton
2005-12-12T09:12:15Z

Nick Piggin <nickpiggin@yahoo.com.au> wrote:
>
> Eric Dumazet wrote:
> > Paul Jackson a écrit :
> >
> >> +
> >> +static kmem_cache_t *cpuset_cache;
> >> +
> >
> >
> > Hi Paul
> >
> > Please do use __read_mostly for new kmem_cache :
> >
> > static kmem_cache_t *cpuset_cache __read_mostly;
> >
> > If not, the pointer can sit in the midle of a highly modified cache
> > line, and multiple CPUS will have memory cache misses to access the
> > cpuset_cache, while slab code/data layout itself is very NUMA/SMP friendly.
> >
>
> Is it a good idea for all kmem_cache_t? If so, can we move
> __read_mostly to the type definition?
>

Yes, I suppose that's worthwhile.

We've been shuffling towards removing kmem_cache_t in favour of `struct
kmem_cache', but this is an argument against doing that.

If we can work out how:

void foo()
{
kmem_cache_t *p;
}

That'll barf.