lkml.org 
[lkml]   [2009]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectkmemleak: Early log buffer exceeded
Hello.
I can see on my both machines

[ 0.000135] kmemleak: Early log buffer exceeded
[ 0.000140] Pid: 0, comm: swapper Not tainted 2.6.30-dbginfo-nv-git19 #7
[ 0.000144] Call Trace:
[ 0.000153] [<c1418ecc>] ? printk+0x23/0x36
[ 0.000160] [<c10f7c12>] log_early+0xf2/0x110
[ 0.000165] [<c10f8788>] kmemleak_alloc+0x1f8/0x2c0
[ 0.000171] [<c10f28fb>] ? cache_alloc_debugcheck_after+0xeb/0x1e0
[ 0.000176] [<c10f496a>] ? __kmalloc+0xfa/0x240
[ 0.000182] [<c10761fc>] ? trace_hardirqs_on_caller+0x14c/0x1a0
[ 0.000187] [<c10f4a15>] __kmalloc+0x1a5/0x240
[ 0.000192] [<c10f4d8d>] ? alloc_arraycache+0x2d/0x80
[ 0.000198] [<c10f4d8d>] alloc_arraycache+0x2d/0x80
[ 0.000203] [<c10f4e7c>] do_tune_cpucache+0x9c/0x3a0
[ 0.000208] [<c10f5322>] enable_cpucache+0x42/0x110
[ 0.000215] [<c15ff7c4>] kmem_cache_init_late+0x32/0x82
[ 0.000221] [<c15e2995>] start_kernel+0x24c/0x366
[ 0.000226] [<c15e2517>] ? unknown_bootoption+0x0/0x1dd
[ 0.000231] [<c15e2088>] __init_begin+0x88/0xa1

mm/kmemleak.c
static struct early_log early_log[200];

static void log_early(int op_type, const void *ptr, size_t size,
int min_count, unsigned long offset, size_t length)
{
...
if (crt_early_log >= ARRAY_SIZE(early_log)) {
print Early log buffer exceeded;
call dump_stack, etc.

So, my questions are:
1. Is 200 really enough? Why 200 not 512, 1024 (for example)?
//If this has been already discussed - please point me.

2. When (crt_early_log >= ARRAY_SIZE(early_log)) == 1 we just can see stack.
Since we have "full" early_log maybe it'll be helpfull to see it?
//For example like at void __init kmemleak_init(void)

Sergey


\
 
 \ /
  Last update: 2009-06-24 00:29    [W:0.039 / U:8.508 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site