Messages in this thread Patch in this message | | | Date | Thu, 13 Jul 2006 17:35:55 +0100 | From | "Catalin Marinas" <> | Subject | Re: [PATCH 00/10] Kernel memory leak detector 0.8 |
| |
On 12/07/06, Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote: > I have tried > #define SCAN_BLOCK_SIZE 2048 > and > #define SCAN_BLOCK_SIZE 1024 > Unfortunately it doesn't change anything.
I realised that this only reduces the time running with interrupts disabled but won't solve the soft lockup.
> Please try something like this > on tty1 > isic -s rand -d your ip (http://www.packetfactory.net/Projects/ISIC/) > on tty2 > kml_collector (http://www.stardust.webpages.pl/files/o_bugs/kml/ml/kml_collector.sh) > > (I have tried to read random files from /sys on vanilla kernel, but I > can't reproduce that lockup)
Couldn't get it on my (embedded) platform but I think that's because there are only a few reports in the memleak file. You have thousands of reports and I think reading the memleak file is causing the soft lockup.
Until we identify the leak (or false positive), you can use the attached patch to supress the reports for context_struct_to_string. Hopefully, this should eliminate the soft lockup as well.
-- Catalin Ignore the (real) leak report in context_struct_to_string
From: Catalin Marinas <catalin.marinas@arm.com>
This might be a real leak but, because of the amount of information kmemleak reports, we ignore it for now to allow testing of other parts of kmemleak.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> ---
security/selinux/ss/services.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index d2e80e6..f8cf098 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c @@ -548,6 +548,9 @@ static int context_struct_to_string(stru /* Allocate space for the context; caller must free this space. */ scontextp = kmalloc(*scontext_len, GFP_ATOMIC); + /* This might be a real leak but we ignore it for now to allow + * testing other parts of kmemleak */ + memleak_not_leak(scontextp); if (!scontextp) { return -ENOMEM; } | |