[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1245836105.16283.13.camel@pc1117.cambridge.arm.com>
Date: Wed, 24 Jun 2009 10:35:05 +0100
From: Catalin Marinas <catalin.marinas@....com>
To: Sergey Senozhatsky <sergey.senozhatsky@...l.by>
Cc: Pekka Enberg <penberg@...helsinki.fi>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org, linux-mm@...ck.org
Subject: Re: kmemleak: Early log buffer exceeded
On Tue, 2009-06-23 at 22:26 +0100, Sergey Senozhatsky wrote:
> I can see on my both machines
>
> [ 0.000135] kmemleak: Early log buffer exceeded
[...]
> 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)?
It seems that in your case it isn't. It is fine on the machines I tested
it on but choosing this figure wasn't too scientific.
I initially had it bigger and marked with the __init attribute to free
it after initialisation but this was causing (harmless) section mismatch
warnings.
What kind of hardware do you have?
> 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?
I recall allocating this dynamically didn't work properly but I'll give
it another try. Otherwise, I can make it configurable and print a better
message (probably without the stack dump).
--
Catalin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists