* [git pull] m68k SLUB fix for 2.6.39
@ 2011-04-28 18:02 Geert Uytterhoeven
2011-04-28 21:25 ` David Rientjes
0 siblings, 1 reply; 14+ messages in thread
From: Geert Uytterhoeven @ 2011-04-28 18:02 UTC (permalink / raw)
To: Linus Torvalds
Cc: Andrew Morton, stable, David Rientjes, Linux/m68k,
Linux Kernel Development
Hi Linus,
This is the SLUB fix for m68k, which also applies to stable.
The following changes since commit 8e10cd74342c7f5ce259cceca36f6eba084f5d58:
Linus Torvalds (1):
Linux 2.6.39-rc5
are available in the git repository at:
master.kernel.org:/pub/scm/linux/kernel/git/geert/linux-m68k.git for-2.6.39
Michael Schmitz (1):
m68k/mm: Set all online nodes in N_NORMAL_MEMORY
arch/m68k/mm/motorola.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
Thanks for pulling!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [git pull] m68k SLUB fix for 2.6.39 2011-04-28 18:02 [git pull] m68k SLUB fix for 2.6.39 Geert Uytterhoeven @ 2011-04-28 21:25 ` David Rientjes 2011-04-28 21:34 ` James Bottomley 0 siblings, 1 reply; 14+ messages in thread From: David Rientjes @ 2011-04-28 21:25 UTC (permalink / raw) To: Geert Uytterhoeven Cc: Linus Torvalds, Andrew Morton, James Bottomley, linux-m68k, linux-kernel On Thu, 28 Apr 2011, Geert Uytterhoeven wrote: > Hi Linus, > > This is the SLUB fix for m68k, which also applies to stable. > > The following changes since commit 8e10cd74342c7f5ce259cceca36f6eba084f5d58: > Linus Torvalds (1): > Linux 2.6.39-rc5 > > are available in the git repository at: > > master.kernel.org:/pub/scm/linux/kernel/git/geert/linux-m68k.git for-2.6.39 > > Michael Schmitz (1): > m68k/mm: Set all online nodes in N_NORMAL_MEMORY > > arch/m68k/mm/motorola.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > Thanks for pushing this, Geert. Since 4a5fa3590f09 ([PARISC] slub: fix panic with DISCONTIGMEM) from 2.6.39-rc4, you can't actually select slub on m68k without CONFIG_ADVANCED and CONFIG_SINGLE_MEMORY_CHUNK because it otherwises defaults to discontigmem. James tested hppa64 with my N_NORMAL_MEMORY fix and found that it turned an SMP box into UP. If you've tested slub on m68k without regressions, then perhaps you'd like to add a "|| M68K" to CONFIG_SLUB? ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-04-28 21:25 ` David Rientjes @ 2011-04-28 21:34 ` James Bottomley 2011-04-28 21:41 ` David Rientjes 0 siblings, 1 reply; 14+ messages in thread From: James Bottomley @ 2011-04-28 21:34 UTC (permalink / raw) To: David Rientjes Cc: Geert Uytterhoeven, Linus Torvalds, Andrew Morton, linux-m68k, linux-kernel On Thu, 2011-04-28 at 14:25 -0700, David Rientjes wrote: > On Thu, 28 Apr 2011, Geert Uytterhoeven wrote: > > > Hi Linus, > > > > This is the SLUB fix for m68k, which also applies to stable. > > > > The following changes since commit 8e10cd74342c7f5ce259cceca36f6eba084f5d58: > > Linus Torvalds (1): > > Linux 2.6.39-rc5 > > > > are available in the git repository at: > > > > master.kernel.org:/pub/scm/linux/kernel/git/geert/linux-m68k.git for-2.6.39 > > > > Michael Schmitz (1): > > m68k/mm: Set all online nodes in N_NORMAL_MEMORY > > > > arch/m68k/mm/motorola.c | 2 ++ > > 1 files changed, 2 insertions(+), 0 deletions(-) > > > > Thanks for pushing this, Geert. > > Since 4a5fa3590f09 ([PARISC] slub: fix panic with DISCONTIGMEM) from > 2.6.39-rc4, you can't actually select slub on m68k without CONFIG_ADVANCED > and CONFIG_SINGLE_MEMORY_CHUNK because it otherwises defaults to > discontigmem. > > James tested hppa64 with my N_NORMAL_MEMORY fix and found that it turned > an SMP box into UP. If you've tested slub on m68k without regressions, > then perhaps you'd like to add a "|| M68K" to CONFIG_SLUB? To be honest, I really don't see that fixing it. As soon as you allocate memory beyond range zero, you move onto a non-zero node as far as slub is concerned, and that will oops. I think what the N_NORMAL_MEMORY patch did is just make it take a whiile before you start allocating from that range. Try executing a memory balloon on the platform; that was how we first demonstrated the problem on parisc. James ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-04-28 21:34 ` James Bottomley @ 2011-04-28 21:41 ` David Rientjes 2011-04-29 20:43 ` Geert Uytterhoeven 2011-05-04 15:02 ` James Bottomley 0 siblings, 2 replies; 14+ messages in thread From: David Rientjes @ 2011-04-28 21:41 UTC (permalink / raw) To: James Bottomley Cc: Geert Uytterhoeven, Linus Torvalds, Andrew Morton, Pekka Enberg, Christoph Lameter, linux-m68k, linux-kernel On Thu, 28 Apr 2011, James Bottomley wrote: > > Since 4a5fa3590f09 ([PARISC] slub: fix panic with DISCONTIGMEM) from > > 2.6.39-rc4, you can't actually select slub on m68k without CONFIG_ADVANCED > > and CONFIG_SINGLE_MEMORY_CHUNK because it otherwises defaults to > > discontigmem. > > > > James tested hppa64 with my N_NORMAL_MEMORY fix and found that it turned > > an SMP box into UP. If you've tested slub on m68k without regressions, > > then perhaps you'd like to add a "|| M68K" to CONFIG_SLUB? > > To be honest, I really don't see that fixing it. As soon as you > allocate memory beyond range zero, you move onto a non-zero node as far > as slub is concerned, and that will oops. > Possible nodes are represented in slub with N_NORMAL_MEMORY, so the kmem_cache_node structures are allocated and initialized based on this nodemask. As long as the memory ranges map to nodes set in the nodemask, this should be fine. > I think what the N_NORMAL_MEMORY patch did is just make it take a whiile > before you start allocating from that range. Try executing a memory > balloon on the platform; that was how we first demonstrated the problem > on parisc. > With parisc, you encountered an oops in add_partial() because the kmem_cache_node structure for the memory range returned by page_to_nid() was not allocated. init_kmem_cache_nodes() takes care of this for all memory ranges set in N_NORMAL_MEMORY. Adding Christoph and Pekka to the cc if there is additional concerns about slub on this architecture. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-04-28 21:41 ` David Rientjes @ 2011-04-29 20:43 ` Geert Uytterhoeven 2011-04-29 23:35 ` Michael Schmitz 2011-05-03 22:40 ` David Rientjes 2011-05-04 15:02 ` James Bottomley 1 sibling, 2 replies; 14+ messages in thread From: Geert Uytterhoeven @ 2011-04-29 20:43 UTC (permalink / raw) To: David Rientjes Cc: James Bottomley, Linus Torvalds, Andrew Morton, Pekka Enberg, Christoph Lameter, linux-m68k, linux-kernel On Thu, Apr 28, 2011 at 23:41, David Rientjes <rientjes@google.com> wrote: > On Thu, 28 Apr 2011, James Bottomley wrote: > >> > Since 4a5fa3590f09 ([PARISC] slub: fix panic with DISCONTIGMEM) from >> > 2.6.39-rc4, you can't actually select slub on m68k without CONFIG_ADVANCED >> > and CONFIG_SINGLE_MEMORY_CHUNK because it otherwises defaults to >> > discontigmem. >> > >> > James tested hppa64 with my N_NORMAL_MEMORY fix and found that it turned >> > an SMP box into UP. If you've tested slub on m68k without regressions, >> > then perhaps you'd like to add a "|| M68K" to CONFIG_SLUB? >> >> To be honest, I really don't see that fixing it. As soon as you >> allocate memory beyond range zero, you move onto a non-zero node as far >> as slub is concerned, and that will oops. >> > > Possible nodes are represented in slub with N_NORMAL_MEMORY, so the > kmem_cache_node structures are allocated and initialized based on this > nodemask. As long as the memory ranges map to nodes set in the nodemask, > this should be fine. > >> I think what the N_NORMAL_MEMORY patch did is just make it take a whiile >> before you start allocating from that range. Try executing a memory >> balloon on the platform; that was how we first demonstrated the problem >> on parisc. >> > > With parisc, you encountered an oops in add_partial() because the > kmem_cache_node structure for the memory range returned by page_to_nid() > was not allocated. init_kmem_cache_nodes() takes care of this for all > memory ranges set in N_NORMAL_MEMORY. > > Adding Christoph and Pekka to the cc if there is additional concerns about > slub on this architecture. My ARAnyM instance has System Memory: 276480K 14 MB at 0x00000000 (ST-RAM) 256 MB at 0x01000000 (alternate RAM) and 137800KIB of swap, and survived the following program just fine: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { size_t size = 1048576; size_t total = 0; void *p; while (size) { p = malloc(size); if (!p) { printf("Failed to allocate %zu bytes\n", size); size /= 2; } memset(p, 0xaa, size); total += size; printf("Using %zu / 0x%zx bytes of memory\n", total, total); } printf("Finished!\n"); return 0; } i.e. the OOM-killer just killed the program after it consumed all available virtual memory: Out of memory: Kill process 1727 (malloctest) score 854 or sacrifice child Killed process 1727 (malloctest) total-vm:361160kB, anon-rss:224164kB, file-rss:0kB malloctest: page allocation failure. order:0, mode:0x84d0 So SLUB really seems to work now. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-04-29 20:43 ` Geert Uytterhoeven @ 2011-04-29 23:35 ` Michael Schmitz 2011-05-03 22:40 ` David Rientjes 1 sibling, 0 replies; 14+ messages in thread From: Michael Schmitz @ 2011-04-29 23:35 UTC (permalink / raw) To: Geert Uytterhoeven Cc: David Rientjes, James Bottomley, Linus Torvalds, Andrew Morton, Pekka Enberg, Christoph Lameter, linux-m68k, linux-kernel Geert Uytterhoeven wrote: > On Thu, Apr 28, 2011 at 23:41, David Rientjes <rientjes@google.com> wrote: > >> On Thu, 28 Apr 2011, James Bottomley wrote: >> >> >> >>> I think what the N_NORMAL_MEMORY patch did is just make it take a whiile >>> before you start allocating from that range. Try executing a memory >>> balloon on the platform; that was how we first demonstrated the problem >>> on parisc. >>> >>> >> With parisc, you encountered an oops in add_partial() because the >> kmem_cache_node structure for the memory range returned by page_to_nid() >> was not allocated. init_kmem_cache_nodes() takes care of this for all >> memory ranges set in N_NORMAL_MEMORY. >> >> Adding Christoph and Pekka to the cc if there is additional concerns about >> slub on this architecture. >> > > My ARAnyM instance has > > System Memory: 276480K > 14 MB at 0x00000000 (ST-RAM) > 256 MB at 0x01000000 (alternate RAM) > > and 137800KIB of swap, and survived the following program just fine: > > #include <stdio.h> > #include <stdlib.h> > #include <string.h> > > int main(int argc, char *argv[]) > { > size_t size = 1048576; > size_t total = 0; > void *p; > > while (size) { > p = malloc(size); > if (!p) { > printf("Failed to allocate %zu bytes\n", size); > size /= 2; > } > memset(p, 0xaa, size); > total += size; > printf("Using %zu / 0x%zx bytes of memory\n", total, total); > } > > printf("Finished!\n"); > return 0; > } > > i.e. the OOM-killer just killed the program after it consumed all > available virtual > memory: > > Out of memory: Kill process 1727 (malloctest) score 854 or sacrifice child > Killed process 1727 (malloctest) total-vm:361160kB, anon-rss:224164kB, > file-rss:0kB > malloctest: page allocation failure. order:0, mode:0x84d0 > > So SLUB really seems to work now. > Forgot to mention what I did for tests, on all kernels that I could actually boot: I ran slabinfo -l and slabinfo -T (saved the output in case anyone wants to analyze that), any kernel that survived this was considered good in the original bisect. The current fix was also tested on the actual hardware. There were quite a few kernels that initially booted but died on the first slabinfo invocation. They invariably died at the e2fsck stage when rebooted after that. Using your test, ARAnyM, 14MB/128MB RAM and 134MB swap: Out of memory: Kill process 1376 (malloctest) score 944 or sacrifice child Killed process 1376 (malloctest) total-vm:272756kB, anon-rss:135232kB, file-rss:0kB Falcon CT60, 14MB/512MB no swap: Out of memory: Kill process 8644 (malloctest) score 967 or sacrifice child Killed process 8644 (malloctest) total-vm:512244kB, anon-rss:510088kB, file-rss:284kB HTH, Michael ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-04-29 20:43 ` Geert Uytterhoeven 2011-04-29 23:35 ` Michael Schmitz @ 2011-05-03 22:40 ` David Rientjes 2011-05-04 13:59 ` Christoph Lameter 1 sibling, 1 reply; 14+ messages in thread From: David Rientjes @ 2011-05-03 22:40 UTC (permalink / raw) To: Geert Uytterhoeven Cc: James Bottomley, Linus Torvalds, Andrew Morton, Pekka Enberg, Christoph Lameter, linux-m68k, linux-kernel On Fri, 29 Apr 2011, Geert Uytterhoeven wrote: > My ARAnyM instance has > > System Memory: 276480K > 14 MB at 0x00000000 (ST-RAM) > 256 MB at 0x01000000 (alternate RAM) > > and 137800KIB of swap, and survived the following program just fine: > > #include <stdio.h> > #include <stdlib.h> > #include <string.h> > > int main(int argc, char *argv[]) > { > size_t size = 1048576; > size_t total = 0; > void *p; > > while (size) { > p = malloc(size); > if (!p) { > printf("Failed to allocate %zu bytes\n", size); > size /= 2; > } > memset(p, 0xaa, size); > total += size; > printf("Using %zu / 0x%zx bytes of memory\n", total, total); > } > > printf("Finished!\n"); > return 0; > } > > i.e. the OOM-killer just killed the program after it consumed all > available virtual > memory: > > Out of memory: Kill process 1727 (malloctest) score 854 or sacrifice child > Killed process 1727 (malloctest) total-vm:361160kB, anon-rss:224164kB, > file-rss:0kB > malloctest: page allocation failure. order:0, mode:0x84d0 > > So SLUB really seems to work now. > So we're in the unfortunate position where slub works fine for some architectures with DISCONTIGMEM and not with others. It seems like the problems originating on James' hppa aren't related to slab allocation at all, though, so I'm wondering if we should rethink disallowing SLUB as it sits in Linus' tree right now for everything that uses DISCONTINGMEM without NUMA and not force them to enable CONFIG_BROKEN? Perhaps change the kconfig entry to only block slub for parisc instead? ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-05-03 22:40 ` David Rientjes @ 2011-05-04 13:59 ` Christoph Lameter 2011-05-04 19:03 ` David Rientjes 0 siblings, 1 reply; 14+ messages in thread From: Christoph Lameter @ 2011-05-04 13:59 UTC (permalink / raw) To: David Rientjes Cc: Geert Uytterhoeven, James Bottomley, Linus Torvalds, Andrew Morton, Pekka Enberg, linux-m68k, linux-kernel On Tue, 3 May 2011, David Rientjes wrote: > So we're in the unfortunate position where slub works fine for some > architectures with DISCONTIGMEM and not with others. It seems like the > problems originating on James' hppa aren't related to slab allocation at > all, though, so I'm wondering if we should rethink disallowing SLUB as it > sits in Linus' tree right now for everything that uses DISCONTINGMEM > without NUMA and not force them to enable CONFIG_BROKEN? > > Perhaps change the kconfig entry to only block slub for parisc instead? As i have explained multiple times before: This is a generic issue with a kernel configuration that has DISCONTIGMEM on and NUMA configured off. Core code in various subsystems makes various assumptions in the !NUMA case. F.e. page_to_nid(page) == 0. Slub is one of them. DISCONTIGMEM works fine on !NUMA if it just has a single node which is 0. But in James' hppa we have multiple nodes and thus a fundamental problem with node 1 existing in a non NUMA environment. We then have a strange mixture of NUMA nodes existing in DISCONTIGMEM code and the core code assuming there are none. This can lead to numerous weird problems. IMHO A config broken for DISCONTIG and !NUMA for arches that can actually use multiple DISCONTIG nodes would be the proper thing. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-05-04 13:59 ` Christoph Lameter @ 2011-05-04 19:03 ` David Rientjes 0 siblings, 0 replies; 14+ messages in thread From: David Rientjes @ 2011-05-04 19:03 UTC (permalink / raw) To: Christoph Lameter Cc: Geert Uytterhoeven, James Bottomley, Linus Torvalds, Andrew Morton, Pekka Enberg, linux-m68k, linux-kernel On Wed, 4 May 2011, Christoph Lameter wrote: > As i have explained multiple times before: This is a generic issue with a > kernel configuration that has DISCONTIGMEM on and NUMA configured off. > Core code in various subsystems makes various assumptions in the !NUMA > case. F.e. page_to_nid(page) == 0. Slub is one of them. > Agreed, but James is still reporting that there is a slub oops with at least parisc even with the N_NORMAL_MEMORY fix applied. He's currently retrying on a clean kernel with the latest git (and presumably CONFIG_BROKEN to enable CONFIG_SLUB). If he reports that slub is no longer an issue with such a configuration, then I agree that we can remove the Kconfig change for slub so it no longer forces CONFIG_NUMA for CONFIG_DISCONTIGMEM (or CONFIG_BROKEN). If that's the case, and we'll have to wait for James' report back first, then we can probably make adjustments in the per-arch Kconfigs that enable discontigmem without NUMA and then make it a strict requirement (or CONFIG_BROKEN) until the additional problems are solved in other places in the kernel. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-04-28 21:41 ` David Rientjes 2011-04-29 20:43 ` Geert Uytterhoeven @ 2011-05-04 15:02 ` James Bottomley 2011-05-04 19:07 ` David Rientjes 1 sibling, 1 reply; 14+ messages in thread From: James Bottomley @ 2011-05-04 15:02 UTC (permalink / raw) To: David Rientjes Cc: Geert Uytterhoeven, Linus Torvalds, Andrew Morton, Pekka Enberg, Christoph Lameter, linux-m68k, linux-kernel On Thu, 2011-04-28 at 14:41 -0700, David Rientjes wrote: > On Thu, 28 Apr 2011, James Bottomley wrote: > > > > Since 4a5fa3590f09 ([PARISC] slub: fix panic with DISCONTIGMEM) from > > > 2.6.39-rc4, you can't actually select slub on m68k without CONFIG_ADVANCED > > > and CONFIG_SINGLE_MEMORY_CHUNK because it otherwises defaults to > > > discontigmem. > > > > > > James tested hppa64 with my N_NORMAL_MEMORY fix and found that it turned > > > an SMP box into UP. If you've tested slub on m68k without regressions, > > > then perhaps you'd like to add a "|| M68K" to CONFIG_SLUB? > > > > To be honest, I really don't see that fixing it. As soon as you > > allocate memory beyond range zero, you move onto a non-zero node as far > > as slub is concerned, and that will oops. > > > > Possible nodes are represented in slub with N_NORMAL_MEMORY, so the > kmem_cache_node structures are allocated and initialized based on this > nodemask. As long as the memory ranges map to nodes set in the nodemask, > this should be fine. > > > I think what the N_NORMAL_MEMORY patch did is just make it take a whiile > > before you start allocating from that range. Try executing a memory > > balloon on the platform; that was how we first demonstrated the problem > > on parisc. > > > > With parisc, you encountered an oops in add_partial() because the > kmem_cache_node structure for the memory range returned by page_to_nid() > was not allocated. init_kmem_cache_nodes() takes care of this for all > memory ranges set in N_NORMAL_MEMORY. Yes, but I also encountered it after I applied you patch, which is why I still pushed the Kconfig patch. It's possible, since there were a huge number of patches flying around that the kernel base was contaminated, so I'll strip down to just linus HEAD + parisc coherence patches, reverting the Kconfig one and try again. James ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-05-04 15:02 ` James Bottomley @ 2011-05-04 19:07 ` David Rientjes 2011-05-09 22:24 ` James Bottomley 0 siblings, 1 reply; 14+ messages in thread From: David Rientjes @ 2011-05-04 19:07 UTC (permalink / raw) To: James Bottomley Cc: Geert Uytterhoeven, Linus Torvalds, Andrew Morton, Pekka Enberg, Christoph Lameter, linux-m68k, linux-kernel On Wed, 4 May 2011, James Bottomley wrote: > Yes, but I also encountered it after I applied you patch, which is why I > still pushed the Kconfig patch. It's possible, since there were a huge > number of patches flying around that the kernel base was contaminated, > so I'll strip down to just linus HEAD + parisc coherence patches, > reverting the Kconfig one and try again. > Great, and if that works out successfully this time around I think we'll either need to fix each individual arch Kconfig that we know doesn't work well (at least parisc because of the scheduling issue) so that it at least enables CONFIG_NUMA implicitly for discontigmem unless CONFIG_BROKEN is set. The ideal solution is probably to rely on CONFIG_NEED_MULTIPLE_NODES rather than CONFIG_NUMA, which is why it was introduced in the first place since it was duplicating data structures for both NUMA and discontigmem. That's apparently broken somewhere in the kernel that turned your SMP box into an UP. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [git pull] m68k SLUB fix for 2.6.39 2011-05-04 19:07 ` David Rientjes @ 2011-05-09 22:24 ` James Bottomley 2011-05-11 0:08 ` [patch] slub: Revert "[PARISC] slub: fix panic with DISCONTIGMEM" David Rientjes 0 siblings, 1 reply; 14+ messages in thread From: James Bottomley @ 2011-05-09 22:24 UTC (permalink / raw) To: David Rientjes Cc: Geert Uytterhoeven, Linus Torvalds, Andrew Morton, Pekka Enberg, Christoph Lameter, linux-m68k, linux-kernel On Wed, 2011-05-04 at 12:07 -0700, David Rientjes wrote: > On Wed, 4 May 2011, James Bottomley wrote: > > > Yes, but I also encountered it after I applied you patch, which is why I > > still pushed the Kconfig patch. It's possible, since there were a huge > > number of patches flying around that the kernel base was contaminated, > > so I'll strip down to just linus HEAD + parisc coherence patches, > > reverting the Kconfig one and try again. > > > > Great, and if that works out successfully this time around I think we'll > either need to fix each individual arch Kconfig that we know doesn't work > well (at least parisc because of the scheduling issue) so that it at least > enables CONFIG_NUMA implicitly for discontigmem unless CONFIG_BROKEN is > set. OK, I confirm that the N_NORMAL_MEMORY patch on its own fixes slub for us. We can revert the mark slub BROKEN in DISCONTIGMEM && !NUMA patch. > The ideal solution is probably to rely on CONFIG_NEED_MULTIPLE_NODES > rather than CONFIG_NUMA, which is why it was introduced in the first place > since it was duplicating data structures for both NUMA and discontigmem. > That's apparently broken somewhere in the kernel that turned your SMP box > into an UP. Sure ... either that or accelerate a conversion to something like SPARSEMEM. James ^ permalink raw reply [flat|nested] 14+ messages in thread
* [patch] slub: Revert "[PARISC] slub: fix panic with DISCONTIGMEM" 2011-05-09 22:24 ` James Bottomley @ 2011-05-11 0:08 ` David Rientjes 2011-05-11 7:27 ` Geert Uytterhoeven 0 siblings, 1 reply; 14+ messages in thread From: David Rientjes @ 2011-05-11 0:08 UTC (permalink / raw) To: James Bottomley, Pekka Enberg, Greg Kroah-Hartman, Linus Torvalds Cc: Geert Uytterhoeven, Andrew Morton, Christoph Lameter, stable, linux-m68k, linux-kernel On Mon, 9 May 2011, James Bottomley wrote: > > Great, and if that works out successfully this time around I think we'll > > either need to fix each individual arch Kconfig that we know doesn't work > > well (at least parisc because of the scheduling issue) so that it at least > > enables CONFIG_NUMA implicitly for discontigmem unless CONFIG_BROKEN is > > set. > > OK, I confirm that the N_NORMAL_MEMORY patch on its own fixes slub for > us. We can revert the mark slub BROKEN in DISCONTIGMEM && !NUMA patch. > Ok, so we need to revert 4a5fa3590f09 ([PARISC] slub: fix panic with DISCONTIGMEM) that did not allow CONFIG_SLUB to be set for architectures that use DISCONTIGMEM without NUMA support unless they have CONFIG_BROKEN set from Linus' tree _and_ from the stable trees. slub: Revert "[PARISC] slub: fix panic with DISCONTIGMEM" 4a5fa3590f09 ([PARISC] slub: fix panic with DISCONTIGMEM) did not allow SLUB to be used on architectures that use DISCONTIGMEM without compiling NUMA support without CONFIG_BROKEN also set. The slub panic that it was intended to prevent is addressed by d9b41e0b54fd ([PARISC] set memory ranges in N_NORMAL_MEMORY when onlined) on parisc so there is no further slub issues with such a configuration. This reverts the former commit so that SLUB may now be used on such architectures since there haven't been any reports of additional errors. Cc: James Bottomley <James.Bottomley@suse.de> Signed-off-by: David Rientjes <rientjes@google.com> --- init/Kconfig | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/init/Kconfig b/init/Kconfig --- a/init/Kconfig +++ b/init/Kconfig @@ -1226,7 +1226,6 @@ config SLAB per cpu and per node queues. config SLUB - depends on BROKEN || NUMA || !DISCONTIGMEM bool "SLUB (Unqueued Allocator)" help SLUB is a slab allocator that minimizes cache line usage ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [patch] slub: Revert "[PARISC] slub: fix panic with DISCONTIGMEM" 2011-05-11 0:08 ` [patch] slub: Revert "[PARISC] slub: fix panic with DISCONTIGMEM" David Rientjes @ 2011-05-11 7:27 ` Geert Uytterhoeven 0 siblings, 0 replies; 14+ messages in thread From: Geert Uytterhoeven @ 2011-05-11 7:27 UTC (permalink / raw) To: David Rientjes Cc: James Bottomley, Pekka Enberg, Greg Kroah-Hartman, Linus Torvalds, Andrew Morton, Christoph Lameter, stable, linux-m68k, linux-kernel On Wed, May 11, 2011 at 02:08, David Rientjes <rientjes@google.com> wrote: > On Mon, 9 May 2011, James Bottomley wrote: >> > Great, and if that works out successfully this time around I think we'll >> > either need to fix each individual arch Kconfig that we know doesn't work >> > well (at least parisc because of the scheduling issue) so that it at least >> > enables CONFIG_NUMA implicitly for discontigmem unless CONFIG_BROKEN is >> > set. >> >> OK, I confirm that the N_NORMAL_MEMORY patch on its own fixes slub for >> us. We can revert the mark slub BROKEN in DISCONTIGMEM && !NUMA patch. >> > > Ok, so we need to revert 4a5fa3590f09 ([PARISC] slub: fix panic with > DISCONTIGMEM) that did not allow CONFIG_SLUB to be set for architectures > that use DISCONTIGMEM without NUMA support unless they have CONFIG_BROKEN > set from Linus' tree _and_ from the stable trees. > > > > slub: Revert "[PARISC] slub: fix panic with DISCONTIGMEM" > > 4a5fa3590f09 ([PARISC] slub: fix panic with DISCONTIGMEM) did not allow > SLUB to be used on architectures that use DISCONTIGMEM without compiling > NUMA support without CONFIG_BROKEN also set. > > The slub panic that it was intended to prevent is addressed by > d9b41e0b54fd ([PARISC] set memory ranges in N_NORMAL_MEMORY when onlined) > on parisc so there is no further slub issues with such a configuration. Please also refer to the N_NORMAL_MEMORY fixes for the other arches, esp. for stable. > This reverts the former commit so that SLUB may now be used on such > architectures since there haven't been any reports of additional errors. > > Cc: James Bottomley <James.Bottomley@suse.de> > Signed-off-by: David Rientjes <rientjes@google.com> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Cc: stable@kernel.org > --- > init/Kconfig | 1 - > 1 files changed, 0 insertions(+), 1 deletions(-) > > diff --git a/init/Kconfig b/init/Kconfig > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -1226,7 +1226,6 @@ config SLAB > per cpu and per node queues. > > config SLUB > - depends on BROKEN || NUMA || !DISCONTIGMEM > bool "SLUB (Unqueued Allocator)" > help > SLUB is a slab allocator that minimizes cache line usage Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2011-05-11 16:33 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-04-28 18:02 [git pull] m68k SLUB fix for 2.6.39 Geert Uytterhoeven 2011-04-28 21:25 ` David Rientjes 2011-04-28 21:34 ` James Bottomley 2011-04-28 21:41 ` David Rientjes 2011-04-29 20:43 ` Geert Uytterhoeven 2011-04-29 23:35 ` Michael Schmitz 2011-05-03 22:40 ` David Rientjes 2011-05-04 13:59 ` Christoph Lameter 2011-05-04 19:03 ` David Rientjes 2011-05-04 15:02 ` James Bottomley 2011-05-04 19:07 ` David Rientjes 2011-05-09 22:24 ` James Bottomley 2011-05-11 0:08 ` [patch] slub: Revert "[PARISC] slub: fix panic with DISCONTIGMEM" David Rientjes 2011-05-11 7:27 ` Geert Uytterhoeven
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox