Using Instruction Pointer address in debug interfaces [Was: Re:
vm_page_t related KBI [Was: Re: panic at vm_page_wire with FreeBSD
9.0 Beta 3]]
Julian Elischer
julian at freebsd.org
Wed Nov 9 00:08:26 UTC 2011
On 11/8/11 10:49 AM, Arnaud Lacombe wrote:
> Hi,
> To avoid future complaints about the fact that I would be only "talk"
> without "action", I did implement what I suggested above. As it is
> quite a large patch-set, I will not post it directly here, however, it
> is available on github:
>
> https://github.com/lacombar/freebsd/tree/master/topic/kern-lock-debug
>
> It convert a bunch of debug interface to use the caller instruction
> pointer, as well as a proof-of-concept teaching printf(9) to convert
> IP to symbol_name+offset.
>
> It translates in a direct saving of about +250kB on i386's GENERIC,
> just in kernel text size. Even the worst case, ie LOCK_DEBUG == 0,
> translates to a save of +80kB.
>
> Please note that this is still WIP code.
A couple of comments.
Firstly, the idea of a printf method to print the IP as symbol+offset
is an interesting idea
that should be followed up in its own right.
However, (comment 2) I would much rather file+line in this case.
I don't want to have the tools to decode the offset into a location in
sources.
We have both systems in operation art work and I far prefer the latter.
More information about the freebsd-current
mailing list