Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
On Tue, Nov 29, 2016 at 02:39:20PM +0100, Geert Uytterhoeven wrote: > > Not understanding, why would a user ever need it? The platform knows if > > its has funny boot image size limits, no? > > The boot loader does not come with the kernel, so the platform cannot > know for sure. Why would anybody use a bootloader that imposes weird restrictions on their platform? That is, isn't that simply a broken bootloader?
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
Hi Peter, On Tue, Nov 29, 2016 at 2:31 PM, Peter Zijlstra wrote: > On Tue, Nov 29, 2016 at 02:26:47PM +0100, Geert Uytterhoeven wrote: >> On Tue, Nov 29, 2016 at 1:29 PM, Peter Zijlstra wrote: >> > On Tue, Nov 29, 2016 at 12:52:04PM +0100, Geert Uytterhoeven wrote: > >> >> Not because of platforms with not limited memory, but because of platforms >> >> with boot loaders that have silly kernel size limitations, and start >> >> scribbling over the DTB or even theirselves when copying a large kernel >> >> image. >> > >> > Right, that's the weird platforms clause above, and those can select the >> > option. >> >> Their Kconfig files can select it. The users can't. >> What about making it visible depending on EXPERT? > > Not understanding, why would a user ever need it? The platform knows if > its has funny boot image size limits, no? The boot loader does not come with the kernel, so the platform cannot know for sure. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@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
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
On Tue, Nov 29, 2016 at 02:26:47PM +0100, Geert Uytterhoeven wrote: > On Tue, Nov 29, 2016 at 1:29 PM, Peter Zijlstra wrote: > > On Tue, Nov 29, 2016 at 12:52:04PM +0100, Geert Uytterhoeven wrote: > >> Not because of platforms with not limited memory, but because of platforms > >> with boot loaders that have silly kernel size limitations, and start > >> scribbling over the DTB or even theirselves when copying a large kernel > >> image. > > > > Right, that's the weird platforms clause above, and those can select the > > option. > > Their Kconfig files can select it. The users can't. > What about making it visible depending on EXPERT? Not understanding, why would a user ever need it? The platform knows if its has funny boot image size limits, no?
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
On Tue, Nov 29, 2016 at 1:29 PM, Peter Zijlstra wrote: > On Tue, Nov 29, 2016 at 12:52:04PM +0100, Geert Uytterhoeven wrote: >> > Nah, users don't need more senseless options. This is really only useful >> > for dinky platforms or platforms with limited static image size (like >> > sparc64). >> > >> > If you make this user selectable, someone will do, and then an endless >> > stream of table not big enough warnings will be posted. >> > >> > Also, its only 4MB (IIRC), so who cares. >> >> I care :-) >> >> Not because of platforms with not limited memory, but because of platforms >> with boot loaders that have silly kernel size limitations, and start >> scribbling over the DTB or even theirselves when copying a large kernel >> image. > > Right, that's the weird platforms clause above, and those can select the > option. Their Kconfig files can select it. The users can't. What about making it visible depending on EXPERT? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@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
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
On Tue, Nov 29, 2016 at 01:29:07PM +0100, Peter Zijlstra wrote: > > BTW, is there any particular reason these huge arrays are in BSS, and not > > allocated dynamically? That would solve my problems as well... > > Is there a memory allocator available before _any_ locks are used, and > that itself also doesn't use locks? And if that is, the platform could use that to allocate .bss, no?
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
On Tue, Nov 29, 2016 at 12:52:04PM +0100, Geert Uytterhoeven wrote: > > Nah, users don't need more senseless options. This is really only useful > > for dinky platforms or platforms with limited static image size (like > > sparc64). > > > > If you make this user selectable, someone will do, and then an endless > > stream of table not big enough warnings will be posted. > > > > Also, its only 4MB (IIRC), so who cares. > > I care :-) > > Not because of platforms with not limited memory, but because of platforms > with boot loaders that have silly kernel size limitations, and start > scribbling over the DTB or even theirselves when copying a large kernel image. Right, that's the weird platforms clause above, and those can select the option. > BTW, is there any particular reason these huge arrays are in BSS, and not > allocated dynamically? That would solve my problems as well... Is there a memory allocator available before _any_ locks are used, and that itself also doesn't use locks?
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
Hi Peter, On Tue, Nov 29, 2016 at 12:41 PM, Peter Zijlstra wrote: > On Tue, Nov 29, 2016 at 12:14:48PM +0100, Geert Uytterhoeven wrote: >> CC linux-renesas-soc >> >> On Tue, Sep 27, 2016 at 9:33 PM, Babu Moger wrote: >> > These patches limit the static allocations for lockdep data structures >> > used for debugging locking correctness. For sparc, all the kernel's code, >> > data, and bss, must have locked translations in the TLB so that we don't >> > get TLB misses on kernel code and data. Current sparc chips have 8 TLB >> > entries available that may be locked down, and with a 4mb page size, >> > this gives a maximum of 32MB. With PROVE_LOCKING we could go over this >> > limit and cause system boot-up problems. These patches limit the static >> > allocations so that everything fits in current required size limit. >> > >> > patch 1 : Adds new config parameter CONFIG_PROVE_LOCKING_SMALL >> > Patch 2 : Adjusts the sizes based on the new config parameter >> >> Cool, this is also useful on other platforms! >> E.g. on r8a7791/koelsch, I cannot boot an shmobile_defconfig plus >> CONFIG_PROVE_LOCKING kernel. >> Forcing CONFIG_PROVE_LOCKING_SMALL=y in Kconfig fixes that. >> >> Should it become a user-selectable symbol? > > Nah, users don't need more senseless options. This is really only useful > for dinky platforms or platforms with limited static image size (like > sparc64). > > If you make this user selectable, someone will do, and then an endless > stream of table not big enough warnings will be posted. > > Also, its only 4MB (IIRC), so who cares. I care :-) Not because of platforms with not limited memory, but because of platforms with boot loaders that have silly kernel size limitations, and start scribbling over the DTB or even theirselves when copying a large kernel image. BTW, is there any particular reason these huge arrays are in BSS, and not allocated dynamically? That would solve my problems as well... Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@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
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
On Tue, Nov 29, 2016 at 12:14:48PM +0100, Geert Uytterhoeven wrote: > CC linux-renesas-soc > > On Tue, Sep 27, 2016 at 9:33 PM, Babu Moger wrote: > > These patches limit the static allocations for lockdep data structures > > used for debugging locking correctness. For sparc, all the kernel's code, > > data, and bss, must have locked translations in the TLB so that we don't > > get TLB misses on kernel code and data. Current sparc chips have 8 TLB > > entries available that may be locked down, and with a 4mb page size, > > this gives a maximum of 32MB. With PROVE_LOCKING we could go over this > > limit and cause system boot-up problems. These patches limit the static > > allocations so that everything fits in current required size limit. > > > > patch 1 : Adds new config parameter CONFIG_PROVE_LOCKING_SMALL > > Patch 2 : Adjusts the sizes based on the new config parameter > > Cool, this is also useful on other platforms! > E.g. on r8a7791/koelsch, I cannot boot an shmobile_defconfig plus > CONFIG_PROVE_LOCKING kernel. > Forcing CONFIG_PROVE_LOCKING_SMALL=y in Kconfig fixes that. > > Should it become a user-selectable symbol? Nah, users don't need more senseless options. This is really only useful for dinky platforms or platforms with limited static image size (like sparc64). If you make this user selectable, someone will do, and then an endless stream of table not big enough warnings will be posted. Also, its only 4MB (IIRC), so who cares.
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
CC linux-renesas-soc On Tue, Sep 27, 2016 at 9:33 PM, Babu Moger wrote: > These patches limit the static allocations for lockdep data structures > used for debugging locking correctness. For sparc, all the kernel's code, > data, and bss, must have locked translations in the TLB so that we don't > get TLB misses on kernel code and data. Current sparc chips have 8 TLB > entries available that may be locked down, and with a 4mb page size, > this gives a maximum of 32MB. With PROVE_LOCKING we could go over this > limit and cause system boot-up problems. These patches limit the static > allocations so that everything fits in current required size limit. > > patch 1 : Adds new config parameter CONFIG_PROVE_LOCKING_SMALL > Patch 2 : Adjusts the sizes based on the new config parameter Cool, this is also useful on other platforms! E.g. on r8a7791/koelsch, I cannot boot an shmobile_defconfig plus CONFIG_PROVE_LOCKING kernel. Forcing CONFIG_PROVE_LOCKING_SMALL=y in Kconfig fixes that. Should it become a user-selectable symbol? > v2-> v3: >Some more comments from Sam Ravnborg and Peter Zijlstra. >Defined PROVE_LOCKING_SMALL as invisible and moved the selection to >arch/sparc/Kconfig. > > v1-> v2: >As suggested by Peter Zijlstra, keeping the default as is. >Introduced new config variable CONFIG_PROVE_LOCKING_SMALL >to handle sparc specific case. > > v0: >Initial revision. > > Babu Moger (2): > config: Adding the new config parameter CONFIG_PROVE_LOCKING_SMALL > for sparc > lockdep: Limit static allocations if PROVE_LOCKING_SMALL is defined > > arch/sparc/Kconfig |1 + > kernel/locking/lockdep_internals.h | 20 +--- > lib/Kconfig.debug |3 +++ > 3 files changed, 21 insertions(+), 3 deletions(-) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@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
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
* Peter Zijlstra wrote: > On Fri, Nov 18, 2016 at 02:34:07PM -0500, David Miller wrote: > > From: Babu Moger > > Date: Tue, 27 Sep 2016 12:33:26 -0700 > > > > > These patches limit the static allocations for lockdep data structures > > > used for debugging locking correctness. For sparc, all the kernel's code, > > > data, and bss, must have locked translations in the TLB so that we don't > > > get TLB misses on kernel code and data. Current sparc chips have 8 TLB > > > entries available that may be locked down, and with a 4mb page size, > > > this gives a maximum of 32MB. With PROVE_LOCKING we could go over this > > > limit and cause system boot-up problems. These patches limit the static > > > allocations so that everything fits in current required size limit. > > > > > > patch 1 : Adds new config parameter CONFIG_PROVE_LOCKING_SMALL > > > Patch 2 : Adjusts the sizes based on the new config parameter > > > > > > v2-> v3: > > >Some more comments from Sam Ravnborg and Peter Zijlstra. > > >Defined PROVE_LOCKING_SMALL as invisible and moved the selection to > > >arch/sparc/Kconfig. > > > > > > v1-> v2: > > >As suggested by Peter Zijlstra, keeping the default as is. > > >Introduced new config variable CONFIG_PROVE_LOCKING_SMALL > > >to handle sparc specific case. > > > > > > v0: > > >Initial revision. > > > > Series applied, thanks. > > Heh, I was only waiting for an ACK from you, but this works too :-) Works for me too - as usual davem is fantastic in terms of efficient patch flow :) Thanks, Ingo
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
On Fri, Nov 18, 2016 at 02:34:07PM -0500, David Miller wrote: > From: Babu Moger > Date: Tue, 27 Sep 2016 12:33:26 -0700 > > > These patches limit the static allocations for lockdep data structures > > used for debugging locking correctness. For sparc, all the kernel's code, > > data, and bss, must have locked translations in the TLB so that we don't > > get TLB misses on kernel code and data. Current sparc chips have 8 TLB > > entries available that may be locked down, and with a 4mb page size, > > this gives a maximum of 32MB. With PROVE_LOCKING we could go over this > > limit and cause system boot-up problems. These patches limit the static > > allocations so that everything fits in current required size limit. > > > > patch 1 : Adds new config parameter CONFIG_PROVE_LOCKING_SMALL > > Patch 2 : Adjusts the sizes based on the new config parameter > > > > v2-> v3: > >Some more comments from Sam Ravnborg and Peter Zijlstra. > >Defined PROVE_LOCKING_SMALL as invisible and moved the selection to > >arch/sparc/Kconfig. > > > > v1-> v2: > >As suggested by Peter Zijlstra, keeping the default as is. > >Introduced new config variable CONFIG_PROVE_LOCKING_SMALL > >to handle sparc specific case. > > > > v0: > >Initial revision. > > Series applied, thanks. Heh, I was only waiting for an ACK from you, but this works too :-)
Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc
From: Babu Moger Date: Tue, 27 Sep 2016 12:33:26 -0700 > These patches limit the static allocations for lockdep data structures > used for debugging locking correctness. For sparc, all the kernel's code, > data, and bss, must have locked translations in the TLB so that we don't > get TLB misses on kernel code and data. Current sparc chips have 8 TLB > entries available that may be locked down, and with a 4mb page size, > this gives a maximum of 32MB. With PROVE_LOCKING we could go over this > limit and cause system boot-up problems. These patches limit the static > allocations so that everything fits in current required size limit. > > patch 1 : Adds new config parameter CONFIG_PROVE_LOCKING_SMALL > Patch 2 : Adjusts the sizes based on the new config parameter > > v2-> v3: >Some more comments from Sam Ravnborg and Peter Zijlstra. >Defined PROVE_LOCKING_SMALL as invisible and moved the selection to >arch/sparc/Kconfig. > > v1-> v2: >As suggested by Peter Zijlstra, keeping the default as is. >Introduced new config variable CONFIG_PROVE_LOCKING_SMALL >to handle sparc specific case. > > v0: >Initial revision. Series applied, thanks.
[PATCH v3 0/2] Ajust lockdep static allocations for sparc
These patches limit the static allocations for lockdep data structures used for debugging locking correctness. For sparc, all the kernel's code, data, and bss, must have locked translations in the TLB so that we don't get TLB misses on kernel code and data. Current sparc chips have 8 TLB entries available that may be locked down, and with a 4mb page size, this gives a maximum of 32MB. With PROVE_LOCKING we could go over this limit and cause system boot-up problems. These patches limit the static allocations so that everything fits in current required size limit. patch 1 : Adds new config parameter CONFIG_PROVE_LOCKING_SMALL Patch 2 : Adjusts the sizes based on the new config parameter v2-> v3: Some more comments from Sam Ravnborg and Peter Zijlstra. Defined PROVE_LOCKING_SMALL as invisible and moved the selection to arch/sparc/Kconfig. v1-> v2: As suggested by Peter Zijlstra, keeping the default as is. Introduced new config variable CONFIG_PROVE_LOCKING_SMALL to handle sparc specific case. v0: Initial revision. Babu Moger (2): config: Adding the new config parameter CONFIG_PROVE_LOCKING_SMALL for sparc lockdep: Limit static allocations if PROVE_LOCKING_SMALL is defined arch/sparc/Kconfig |1 + kernel/locking/lockdep_internals.h | 20 +--- lib/Kconfig.debug |3 +++ 3 files changed, 21 insertions(+), 3 deletions(-)