From: David Miller <davem@xxxxxxxxxxxxx> Date: Mon, 05 May 2014 17:08:55 -0400 (EDT) > From: Sam Ravnborg <sam@xxxxxxxxxxxx> > Date: Mon, 5 May 2014 23:05:07 +0200 > >> On Mon, May 05, 2014 at 04:57:56PM -0400, David Miller wrote: >>> From: David Miller <davem@xxxxxxxxxxxxx> >>> Date: Mon, 05 May 2014 16:20:04 -0400 (EDT) >>> >>> > >>> > If freelist_idx_t is a byte, SLAB_OBJ_MAX_NUM should be 255 not 256, >>> > and likewise if freelist_idx_t is a short, then it should be 65535 not >>> > 65536. >>> > >>> > Fixes: a41adfa ("slab: introduce byte sized index for the freelist of a slab") >>> > Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> >>> > --- >>> > >>> > This was leading to all kinds of random crashes on sparc64 where PAGE_SIZE >>> > is 8192. One problem shown was that if spinlock debugging was enabled, >>> > we'd get deadlocks in copy_pte_range() or do_wp_page() with the same cpu >>> > already holding a lock it shouldn't hold, or the lock belonging to a >>> > completely unrelated process. >>> >>> It turns out that after some more testing, I'm still getting spinlock >>> debugging problems with this fix applied. >>> >>> The change is still very much correct I think, however. >> >> There is a related patch in this area which I think is not yet applied. >> >> See: https://lkml.org/lkml/2014/4/18/28 >> >> Maybe this is realted. > > Thanks, I'm testing with that patch added as well. I can confirm that this fixes my problems completely. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html