cvs commit: src/sys/sys ktr.h
Nate Lawson
nate at root.org
Wed Dec 29 16:51:40 PST 2004
Jeff Roberson wrote:
> On Wed, 29 Dec 2004, Nate Lawson wrote:
>>>>Isn't there a way to dynamically allocate ids, like sysctl does for oid?
>>>
>>>They need to be static at compile time or they always produce massive
>>>bloat in the kernel.
>>
>>Right, I thought we did something like that for other subsystems. I'm
>>very fuzzy on the current best approach but in the past we used linker
>>sets to gather a class of data at link time (including mod load). If
>>the linker set was an id placeholder for a particular type of debug
>>data, the kernel could overwrite this with the actual runtime id.
>
>
> We already have a runtime mechanism for disabling a particular class that
> could tolerate dynamic class ids. That's KTR_MASK. The issue I'm talking
> about, is the ability to compile it out. Since gcc's dead code eliminator
> doesn't run after link time, all ktrs would forever be compiled into the
> kernel.
Ok. It might be possible to mark such code with __init and KTR ids with
__initdata. Then the linker can discard them if not using KTR. This is
the approach Linux takes to reclaim memory from code/data that only
needs to be accessed once, at boot.
--
Nate
More information about the cvs-src
mailing list