Dynamic ddb commands

Sam Leffler sam at freebsd.org
Mon Feb 2 09:23:19 PST 2009


Matthew Fleming wrote:
>> In general it is far easier to just add sysinit's than to hack directly on the 
>> kernel linker.  There are very few ddb commands, so one extra pointer or two 
>> per command is not a lot of space.
>>     
>
> Respectfully, I disagree, for several reasons.
>
> First, in order to make sysinit and sysctl work, the kernel linker
> needed to know that there are a set of elf sections that have special
> meaning.  Yes, using sysinits means that there are still only two elf
> sections of interest.
>
> Second, as I mentioned before, having ddb commands added mixed in with
> sysinits means that, if I have a bug in my sysinit I may not be able to
> use some of my ddb commands to debug it.  Even if DB_*COMMAND used
> SI_ORDER_FIRST, any sysinit with the same priority may come first.
>
> Next, if you want commands sorted globally, it could be done with either
> implementation.  But I think that commands that are defined by a module
> should be listed with others from that module.
>
> Last, changing struct command introduces a binary compatibility issue.
> Any older driver that had a ddb command (even if they never realized
> they couldn't access it) would need to be recompiled.  I am not sure of
> FreeBSD's binary compatibility policy, though, and it would presumably
> be across a major OS revision number.  So this is not a very compelling
> argument.
>   
I'm not sure I buy any of these arguments (well maybe the 2nd one :)) 
but I'm still open to your changes.  I just haven't had time to look at 
your patch; hope to this week (I have several other patches in my q for 
review ahead of yours).

    Sam



More information about the freebsd-hackers mailing list