On Sun, 09 Mar 2014 22:14:24 -0700, m silverstri said:

> I am developing a kernel driver. What should I test to make sure my
> kernel driver is not leaking memory?

1) The brute force method - just add lots of printk's that have
"allocating 25-byte frobozz struct" and "freeing 25-byte frobozz struct"
and make sure they match up.

2) kmemleak.

> 1. under normal operation (when applications open and close my driver 
> properly)
> 2. in error situation (when application open my driver and then it
> crashes without close my driver property)

Case (2) shouldn't happen, as even if a program crashes the kernel *should*
be invoking the cleanup of open files at process termination.

A more common cause of memory leaks is for an open() or read/write/ioctl()
path to allocate N chunks of memory, hit an error, and return after having
cleaned up only N-1 of the chunks.  This is part of why most kernel code
uses a 'goto error' structure with only one return; at the end of the function.

Attachment: pgpXDk8WMFJrj.pgp
Description: PGP signature

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to