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
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"