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:
pgp8cPDUqWZsA.pgp
Description: PGP signature
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies