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.

Signed-off-by: Christian Borntraeger <[email protected]>
---
 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

Reply via email to