Re: How to check if my kernel driver is leaking memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux