On Thu, 28 Jul 2011, a...@linux-foundation.org wrote:
> From: Hugh Dickins <hu...@google.com>
> 
> My load tests on PowerPC freeze within minutes in __slab_free().  I
> happened to try PPC first, didn't try without this fix on x86.
> 
> It looks as if the author was interrupted while devising the new
> cmpxchg_double_slab() version of __slab_free(): its decision to
> spin_lock_irqsave() depends on several uninitialized fields, and fixing
> that (by copying page to new) mostly fixes it.
> 
> But I didn't think about it very much, and this may well not be what the
> author intends; and I have seen a couple of much rarer freezes in
> __slab_free() on PPC (not yet on x86) even after applying this.
> 
> Signed-off-by: Hugh Dickins <hu...@google.com>
> Cc: Pekka Enberg <penb...@cs.helsinki.fi>
> Cc: Christoph Lameter <c...@linux.com>
> Cc: <sta...@kernel.org>
> Signed-off-by: Andrew Morton <a...@linux-foundation.org>

Sorry, no, I don't think this patch should be going anywhere now.

Certainly not to sta...@kernel.org: it was a patch to linux-next
and mmotm a couple of weeks ago, not to anything upstream.

Christoph refined his linux-next struct page unions, and added
some irq disabling in slub slow path, to fix the problem without
this hack of mine.

But I believe this is all in a branch of Pekka's tree which he
intends to invite Linus to pull, but may or may not make it
into 3.1 (it enlarges x86_64 struct page from 56 to 64 bytes).

Hugh

> ---
> 
>  mm/slub.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff -puN mm/slub.c~slub-partly-fix-freeze-in-__slab_free mm/slub.c
> --- a/mm/slub.c~slub-partly-fix-freeze-in-__slab_free
> +++ a/mm/slub.c
> @@ -2326,6 +2326,7 @@ static void __slab_free(struct kmem_cach
>               return;
>  
>       do {
> +             new = *page;
>               prior = page->freelist;
>               counters = page->counters;
>               set_freepointer(s, object, prior);
> _

_______________________________________________
stable mailing list
stable@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to