lkml.org 
[lkml]   [2011]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH next/mmotm] slub: partly fix freeze in __slab_free
    From
    Date
    Le lundi 11 juillet 2011 à 11:58 -0700, Hugh Dickins a écrit :
    > 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 <hughd@google.com>
    > ---
    > mm/slub.c | 1 +
    > 1 file changed, 1 insertion(+)
    >
    > --- mmotm/mm/slub.c 2011-07-08 18:59:44.135443127 -0700
    > +++ linux/mm/slub.c 2011-07-10 05:07:08.000000000 -0700
    > @@ -2217,6 +2217,7 @@ static void __slab_free(struct kmem_cach
    > return;
    >
    > do {
    > + new = *page;
    > prior = page->freelist;
    > counters = page->counters;
    > set_freepointer(s, object, prior);
    > --

    I suspect you hit the bug on 32bit arch ?

    What about following patch instead ?

    diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
    index 3d76a43..1351d28 100644
    --- a/include/linux/mm_types.h
    +++ b/include/linux/mm_types.h
    @@ -62,7 +62,7 @@ struct page {
    struct { /* SLUB cmpxchg_double area */
    void *freelist;
    union {
    - unsigned long counters;
    + u64 counters;
    struct {
    unsigned inuse:16;
    unsigned objects:15;

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2011-07-11 21:41    [W:0.025 / U:23.292 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site