pahole - Finding holes in kernel structs
Kostik Belousov
kostikbel at gmail.com
Thu Feb 12 06:13:19 PST 2009
On Thu, Feb 12, 2009 at 02:08:22PM +0000, Andrew Brampton wrote:
> I found this useful tool called pahole[1]. It basically finds holes
> within structs, so for example on my 64bit machine this struct:
>
> struct test {
> int foo;
> const char *bar;
> int blah;
> }
>
> Would have a hole between foo and bar of 4 bytes because both for and
> bar have been aligned on a 8 byte boundary, and the struct would also
> have 4 bytes of padding on the end. However, if I simply moved blah
> between foo and bar then the struct has shrunk by 8 bytes, which could
> be a good thing. This could also help keep structs within single cache
> lines, and just generally keep memory usage to a minimum when the
> struct is used many times (for example in an array).
>
> So I ran the tool pahole over a 7.1 FreeBSD Kernel, and found that
Did you ported it to FreeBSD, or run on the Linux host ?
> many of the struct had holes, and some of which could be rearranged to
> fill the gap. I've made the list available here[2]. So my questions
> are two fold:
>
> 1) Is it worth my time trying to rearrange structs? If so do you think
> many of my patches would be accepted?
>
> 2) Is there a way to find out the most heavily used structs? There are
> ~3600 structs, and ~2000 holes, it might be a waste of my time fixing
> the structs which are only used once.
>
> thanks
> Andrew
>
> [1] http://lwn.net/Articles/206805/
> [2] http://bramp.net/projects/kernel.pahole.bz2 (~260kB)
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20090212/cd45de8e/attachment.pgp
More information about the freebsd-hackers
mailing list