Message ID | alpine.LSU.2.00.1106121842250.31463@sister.anvils (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Sun, 12 Jun 2011, Hugh Dickins wrote: > 3.0-rc won't boot with SLUB on my PowerPC G5: kernel BUG at mm/slub.c:1950! > Bisected to 1759415e630e "slub: Remove CONFIG_CMPXCHG_LOCAL ifdeffery". > > After giving myself a medal for finding the BUG on line 1950 of mm/slub.c > (it's actually the > VM_BUG_ON((unsigned long)(&pcp1) % (2 * sizeof(pcp1))); > on line 268 of the morass that is include/linux/percpu.h) > I tried the following alignment patch and found it to work. Hmmm.. The allocpercpu in alloc_kmem_cache_cpus should take care of the alignment. Uhh.. I see that a patch that removes the #ifdef CMPXCHG_LOCAL was not applied? Pekka?
On Mon, 2011-06-13 at 12:59 -0500, Christoph Lameter wrote: > On Sun, 12 Jun 2011, Hugh Dickins wrote: > > > 3.0-rc won't boot with SLUB on my PowerPC G5: kernel BUG at mm/slub.c:1950! > > Bisected to 1759415e630e "slub: Remove CONFIG_CMPXCHG_LOCAL ifdeffery". > > > > After giving myself a medal for finding the BUG on line 1950 of mm/slub.c > > (it's actually the > > VM_BUG_ON((unsigned long)(&pcp1) % (2 * sizeof(pcp1))); > > on line 268 of the morass that is include/linux/percpu.h) > > I tried the following alignment patch and found it to work. > > Hmmm.. The allocpercpu in alloc_kmem_cache_cpus should take care of the > alignment. Uhh.. I see that a patch that removes the #ifdef CMPXCHG_LOCAL > was not applied? Pekka? This patch? http://git.kernel.org/?p=linux/kernel/git/penberg/slab-2.6.git;a=commitdiff;h=d4d84fef6d0366b585b7de13527a0faeca84d9ce It's queued and will be sent to Linus soon. Pekka
On Mon, 13 Jun 2011, Pekka Enberg wrote: > > Hmmm.. The allocpercpu in alloc_kmem_cache_cpus should take care of the > > alignment. Uhh.. I see that a patch that removes the #ifdef CMPXCHG_LOCAL > > was not applied? Pekka? > > This patch? > > http://git.kernel.org/?p=linux/kernel/git/penberg/slab-2.6.git;a=commitdiff;h=d4d84fef6d0366b585b7de13527a0faeca84d9ce > > It's queued and will be sent to Linus soon. Ok it will also fix Hugh's problem then.
On Mon, Jun 13, 2011 at 10:29 PM, Christoph Lameter <cl@linux.com> wrote: > On Mon, 13 Jun 2011, Pekka Enberg wrote: > >> > Hmmm.. The allocpercpu in alloc_kmem_cache_cpus should take care of the >> > alignment. Uhh.. I see that a patch that removes the #ifdef CMPXCHG_LOCAL >> > was not applied? Pekka? >> >> This patch? >> >> http://git.kernel.org/?p=linux/kernel/git/penberg/slab-2.6.git;a=commitdiff;h=d4d84fef6d0366b585b7de13527a0faeca84d9ce >> >> It's queued and will be sent to Linus soon. > > Ok it will also fix Hugh's problem then. It's in Linus' tree now. Hugh, can you please confirm it fixes your machine too?
On Mon, Jun 13, 2011 at 1:34 PM, Pekka Enberg <penberg@kernel.org> wrote: > On Mon, Jun 13, 2011 at 10:29 PM, Christoph Lameter <cl@linux.com> wrote: >> On Mon, 13 Jun 2011, Pekka Enberg wrote: >> >>> > Hmmm.. The allocpercpu in alloc_kmem_cache_cpus should take care of the >>> > alignment. Uhh.. I see that a patch that removes the #ifdef CMPXCHG_LOCAL >>> > was not applied? Pekka? >>> >>> This patch? >>> >>> http://git.kernel.org/?p=linux/kernel/git/penberg/slab-2.6.git;a=commitdiff;h=d4d84fef6d0366b585b7de13527a0faeca84d9ce >>> >>> It's queued and will be sent to Linus soon. >> >> Ok it will also fix Hugh's problem then. > > It's in Linus' tree now. Hugh, can you please confirm it fixes your machine too? I expect it to, thanks: I'll confirm tonight. Hugh
On Mon, 2011-06-13 at 14:00 -0700, Hugh Dickins wrote: > On Mon, Jun 13, 2011 at 1:34 PM, Pekka Enberg <penberg@kernel.org> wrote: > > On Mon, Jun 13, 2011 at 10:29 PM, Christoph Lameter <cl@linux.com> wrote: > >> On Mon, 13 Jun 2011, Pekka Enberg wrote: > >> > >>> > Hmmm.. The allocpercpu in alloc_kmem_cache_cpus should take care of the > >>> > alignment. Uhh.. I see that a patch that removes the #ifdef CMPXCHG_LOCAL > >>> > was not applied? Pekka? > >>> > >>> This patch? > >>> > >>> http://git.kernel.org/?p=linux/kernel/git/penberg/slab-2.6.git;a=commitdiff;h=d4d84fef6d0366b585b7de13527a0faeca84d9ce > >>> > >>> It's queued and will be sent to Linus soon. > >> > >> Ok it will also fix Hugh's problem then. > > > > It's in Linus' tree now. Hugh, can you please confirm it fixes your machine too? > > I expect it to, thanks: I'll confirm tonight. From report to resolution before I got to read the thread, that's how I like them ! Thanks guys :-) Cheers, Ben.
On Tue, 14 Jun 2011, Benjamin Herrenschmidt wrote: > On Mon, 2011-06-13 at 14:00 -0700, Hugh Dickins wrote: > > On Mon, Jun 13, 2011 at 1:34 PM, Pekka Enberg <penberg@kernel.org> wrote: > > > On Mon, Jun 13, 2011 at 10:29 PM, Christoph Lameter <cl@linux.com> wrote: > > >> On Mon, 13 Jun 2011, Pekka Enberg wrote: > > >> > > >>> > Hmmm.. The allocpercpu in alloc_kmem_cache_cpus should take care of the > > >>> > alignment. Uhh.. I see that a patch that removes the #ifdef CMPXCHG_LOCAL > > >>> > was not applied? Pekka? > > >>> > > >>> This patch? > > >>> > > >>> http://git.kernel.org/?p=linux/kernel/git/penberg/slab-2.6.git;a=commitdiff;h=d4d84fef6d0366b585b7de13527a0faeca84d9ce > > >>> > > >>> It's queued and will be sent to Linus soon. > > >> > > >> Ok it will also fix Hugh's problem then. > > > > > > It's in Linus' tree now. Hugh, can you please confirm it fixes your machine too? > > > > I expect it to, thanks: I'll confirm tonight. > > From report to resolution before I got to read the thread, that's how I > like them ! Thanks guys :-) Confirmed: fixed in 3.0-rc3 - thank you! Hugh
--- 3.0-rc2/include/linux/slub_def.h 2011-05-29 18:42:37.077880848 -0700 +++ linux/include/linux/slub_def.h 2011-06-12 17:17:51.000000000 -0700 @@ -43,7 +43,7 @@ struct kmem_cache_cpu { #ifdef CONFIG_SLUB_STATS unsigned stat[NR_SLUB_STAT_ITEMS]; #endif -}; +} __attribute__((aligned(2 * sizeof(long)))); struct kmem_cache_node { spinlock_t list_lock; /* Protect partial list and nr_partial */
3.0-rc won't boot with SLUB on my PowerPC G5: kernel BUG at mm/slub.c:1950! Bisected to 1759415e630e "slub: Remove CONFIG_CMPXCHG_LOCAL ifdeffery". After giving myself a medal for finding the BUG on line 1950 of mm/slub.c (it's actually the VM_BUG_ON((unsigned long)(&pcp1) % (2 * sizeof(pcp1))); on line 268 of the morass that is include/linux/percpu.h) I tried the following alignment patch and found it to work. Signed-off-by: Hugh Dickins <hughd@google.com> --- include/linux/slub_def.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)