Re: [PATCH] slub - Use local_t protection

Mathieu Desnoyers
2007-09-05T13:03:44Z

* Christoph Lameter (clameter@sgi.com) wrote:
> On Tue, 4 Sep 2007, Mathieu Desnoyers wrote:
>
> > @@ -1566,12 +1565,13 @@ redo:
> > object[c->offset]) != object))
> > goto redo;
> >
> > - put_cpu();
> > + local_exit(flags);
> > if (unlikely((gfpflags & __GFP_ZERO)))
> > memset(object, 0, c->objsize);
> >
> > return object;
> > slow:
> > + local_exit(flags);
>
> Here we can be rescheduled to another processors.
>
> > return __slab_alloc(s, gfpflags, node, addr, c)
>
> c may point to the wrong processor.

Good point. the current CPU is not updated at the beginning of the
slow path.

I'll post the updated patchset. Comments are welcome, especially about
the naming scheme which is currently awkward.

Mathieu