Re: [PATCH 1/1] debugobjects: Allow bigger number of objects

From: Christian Borntraeger
Date: Wed Jan 27 2016 - 07:42:31 EST


On 01/26/2016 09:22 PM, Thomas Gleixner wrote:
> On Fri, 22 Jan 2016, Christian Borntraeger wrote:
>
>> On my bigger s390 systems I always get
>> "Out of memory. ODEBUG disabled". Since the number of objects
>> is needed at compile time in the code, let's provide a Kconfig
>> variable to increase the number of static objects.
>
> How many do you need on those big machines? Can't we scale that automagically
> with the number of cpus or such?

It seems to be 530 - actually pretty close.
Hmm, we could simply increase that to 1000, it is initdata anyway?

>
> Thanks,
>
> tglx
>
>> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
>> ---
>> lib/Kconfig.debug | 11 +++++++++++
>> lib/debugobjects.c | 2 +-
>> 2 files changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
>> index 8c15b29..dc44b6f 100644
>> --- a/lib/Kconfig.debug
>> +++ b/lib/Kconfig.debug
>> @@ -453,6 +453,17 @@ config DEBUG_OBJECTS_ENABLE_DEFAULT
>> help
>> Debug objects boot parameter default value
>>
>> +config DEBUG_OBJECTS_STATIC_ELEMENTS
>> + int "debug_objects static element buffer size (100-10000)"
>> + range 100 10000
>> + default "500"
>> + depends on DEBUG_OBJECTS
>> + help
>> + How many static objects can be stored at early boot time. If this
>> + value is exceeded object debugging will stop with an message
>> + "Out of memory. ODEBUG disabled". Higher values will allocate a
>> + bigger static buffer, but this buffer will be released later on.
>> +
>> config DEBUG_SLAB
>> bool "Debug slab memory allocations"
>> depends on DEBUG_KERNEL && SLAB && !KMEMCHECK
>> diff --git a/lib/debugobjects.c b/lib/debugobjects.c
>> index 547f7f9..fc4ae86 100644
>> --- a/lib/debugobjects.c
>> +++ b/lib/debugobjects.c
>> @@ -21,7 +21,7 @@
>> #define ODEBUG_HASH_BITS 14
>> #define ODEBUG_HASH_SIZE (1 << ODEBUG_HASH_BITS)
>>
>> -#define ODEBUG_POOL_SIZE 512
>> +#define ODEBUG_POOL_SIZE CONFIG_DEBUG_OBJECTS_STATIC_ELEMENTS
>> #define ODEBUG_POOL_MIN_LEVEL 256
>>
>> #define ODEBUG_CHUNK_SHIFT PAGE_SHIFT
>> --
>> 2.3.0
>>
>>
>