From: Vaneet Narang <v.narang@samsung.com>
To: Miroslav Benes <mbenes@suse.cz>, Michal Hocko <mhocko@kernel.org>
Cc: "Maninder Singh" <maninder1.s@samsung.com>,
"jeyu@redhat.com" <jeyu@redhat.com>,
"rusty@rustcorp.com.au" <rusty@rustcorp.com.au>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"chris@chris-wilson.co.uk" <chris@chris-wilson.co.uk>,
"aryabinin@virtuozzo.com" <aryabinin@virtuozzo.com>,
"joonas.lahtinen@linux.intel.com"
<joonas.lahtinen@linux.intel.com>,
"keescook@chromium.org" <keescook@chromium.org>,
"pavel@ucw.cz" <pavel@ucw.cz>,
"jinb.park7@gmail.com" <jinb.park7@gmail.com>,
"anisse@astier.eu" <anisse@astier.eu>,
"rafael.j.wysocki@intel.com" <rafael.j.wysocki@intel.com>,
"zijun_hu@htc.com" <zijun_hu@htc.com>,
"mingo@kernel.org" <mingo@kernel.org>,
"mawilcox@microsoft.com" <mawilcox@microsoft.com>,
"thgarnie@google.com" <thgarnie@google.com>,
"joelaf@google.com" <joelaf@google.com>,
"kirill.shutemov@linux.intel.com"
<kirill.shutemov@linux.intel.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"PANKAJ MISHRA" <pankaj.m@samsung.com>,
"Ajeet Kumar Yadav" <ajeet.y@samsung.com>,
이학봉 <hakbong5.lee@samsung.com>,
"AMIT SAHRAWAT" <a.sahrawat@samsung.com>,
랄릿 <lalit.mohan@samsung.com>, CPGS <cpgs@samsung.com>
Subject: Re: [PATCH v2] module: check if memory leak by module.
Date: Wed, 29 Mar 2017 09:23:32 +0000 [thread overview]
Message-ID: <20170329092332epcms5p10ae8263c6e3ef14eac40e08a09eff9e6@epcms5p1> (raw)
In-Reply-To: <alpine.LSU.2.20.1703290958390.4250@pobox.suse.cz>
[-- Attachment #1: Type: text/plain, Size: 1899 bytes --]
Hi,
>> Hmm, how can you track _all_ vmalloc allocations done on behalf of the
>> module? It is quite some time since I've checked kernel/module.c but
>> from my vague understading your check is basically only about statically
>> vmalloced areas by module loader. Is that correct? If yes then is this
>> actually useful? Were there any bugs in the loader code recently? What
>> led you to prepare this patch? All this should be part of the changelog!
First of all there is no issue in kernel/module.c. This patch add functionality
to detect scenario where some kernel module does some memory allocation but gets
unloaded without doing vfree. For example
static int kernel_init(void)
{
char * ptr = vmalloc(400 * 1024);
return 0;
}
static void kernel_exit(void)
{
}
Now in this case if we do rmmod then memory allocated by kernel_init
will not be freed but this patch will detect such kind of bugs in kernel module
code.
Also We have seen bugs in some kernel modules where they allocate some memory and
gets removed without freeing them and if new module gets loaded in place
of removed module then /proc/vmallocinfo shows wrong information. vmalloc info will
show pages getting allocated by new module. So these logs will help in detecting
such issues.
> > static void free_module(struct module *mod)
> > {
> > + check_memory_leak(mod);
> > +
>Of course, vfree() has not been called yet. It is the beginning of
>free_module(). vfree() is one of the last things you need to do. See
>module_memfree(). If I am not missing something, you get pr_err()
>everytime a module is unloaded.
This patch is not to detect memory allocated by kernel. module_memfree
will allocated by kernel for kernel modules but our intent is to detect
memory allocated directly by kernel modules and not getting freed.
Regards,
Vaneet Narang
next prev parent reply other threads:[~2017-03-29 10:28 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20170329060315epcas5p1c6f7ce3aca1b2770c5e1d9aaeb1a27e1@epcas5p1.samsung.com>
2017-03-29 6:02 ` Maninder Singh
2017-03-29 7:45 ` Michal Hocko
2017-03-29 8:02 ` Miroslav Benes
[not found] ` <CGME20170329060315epcas5p1c6f7ce3aca1b2770c5e1d9aaeb1a27e1@epcms5p1>
2017-03-29 9:23 ` Vaneet Narang [this message]
2017-03-29 10:43 ` Michal Hocko
2017-03-31 6:49 ` Joel Fernandes
2017-03-31 8:00 ` Michal Hocko
2017-03-31 17:05 ` Joel Fernandes
2017-04-03 7:24 ` Michal Hocko
2017-03-31 22:18 ` Jessica Yu
2017-03-29 11:05 ` Andrey Ryabinin
2017-03-30 13:37 ` Pavel Machek
2017-03-30 14:31 ` Andrey Ryabinin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170329092332epcms5p10ae8263c6e3ef14eac40e08a09eff9e6@epcms5p1 \
--to=v.narang@samsung.com \
--cc=a.sahrawat@samsung.com \
--cc=ajeet.y@samsung.com \
--cc=akpm@linux-foundation.org \
--cc=anisse@astier.eu \
--cc=aryabinin@virtuozzo.com \
--cc=chris@chris-wilson.co.uk \
--cc=cpgs@samsung.com \
--cc=hakbong5.lee@samsung.com \
--cc=jeyu@redhat.com \
--cc=jinb.park7@gmail.com \
--cc=joelaf@google.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=keescook@chromium.org \
--cc=kirill.shutemov@linux.intel.com \
--cc=lalit.mohan@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=maninder1.s@samsung.com \
--cc=mawilcox@microsoft.com \
--cc=mbenes@suse.cz \
--cc=mhocko@kernel.org \
--cc=mingo@kernel.org \
--cc=pankaj.m@samsung.com \
--cc=pavel@ucw.cz \
--cc=rafael.j.wysocki@intel.com \
--cc=rusty@rustcorp.com.au \
--cc=thgarnie@google.com \
--cc=zijun_hu@htc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox