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

From: Thomas Gleixner
Date: Tue Jan 26 2016 - 15:23:21 EST


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?

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
>
>