Re: using BPF for driver memory leak detection

Krishna Chaitanya

On Mon, Aug 6, 2018 at 11:15 PM Y Song <ys114321@...> wrote:

On Mon, Aug 6, 2018 at 2:44 AM, Krishna Chaitanya
<chaitanya.mgit@...> wrote:
On Mon, Aug 6, 2018 at 3:12 PM Krishna Chaitanya
<chaitanya.mgit@...> wrote:


If we want to use BPF for memory leak for driver modules, we can only
print outstanding allocations which could potentially be freed at a
later time.

Is there a simple way we could pre-load BPF (before driver insertion)
and check for the outstanding entries after the driver removal, which
are confirmed leaks?

This is useful to debug memory allocations at insmod/rmmod.

Currently, without insmod, BPF compilation fails as tracepoints are
not installed. And also if tracing is active, rmmod fails with
"resource in use".
Which tracepoint you tried to attach? For kernel memory, a few kmem
tracepoints are attached in memleak. If you want to attach a tracepoint
only defined by the module, yes, you may have to wait until the module
is inserted into the kernel.
I have defined a new tracepoint in my module and tried to attach to it.
I am using the script as a reference and extended it to check
for leaks in my modules (using tracepoints defined by the module).

Ideally, I would like to run BPF and do rmmod, and check is there are
still outstanding entries and print out the call stack of the leaked allocation.

Join { to automatically receive all group messages.