Re: [PATCH v3 0/2] Ajust lockdep static allocations for sparc

2016-11-29 Thread Peter Zijlstra
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

2016-11-29 Thread Geert Uytterhoeven
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

2016-11-29 Thread Peter Zijlstra
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

2016-11-29 Thread Geert Uytterhoeven
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

2016-11-29 Thread Peter Zijlstra
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

2016-11-29 Thread Peter Zijlstra
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

2016-11-29 Thread Geert Uytterhoeven
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

2016-11-29 Thread Peter Zijlstra
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

2016-11-29 Thread Geert Uytterhoeven
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

2016-11-20 Thread Ingo Molnar

* 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

2016-11-19 Thread Peter Zijlstra
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

2016-11-18 Thread David Miller
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

2016-09-27 Thread Babu Moger
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(-)