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