Linus,
while this is probably one of the last days of the merge window, please
still consider pulling the "kgdb light" git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-kgdb.git
See the shortlog below.
This is a slimmed-down and cleaned up version of KGDB that i've created
out of the original patches that we submitted two weeks ago. I went over
the kgdb patches with Thomas and we cut out everything that we did not
like, and cleaned up the result.
KGDB is still just as functional as it was before (i tested it on 32-bit
and 64-bit x86) - and any desired extra capability or complexity should
be added as a delta improvement, not in this initial merge.
The difference between the original kgdb submission and this submission
is best visible in the diffstat:
before: 41 files changed, 4007 insertions(+), 33 deletions(-)
after: 22 files changed, 3448 insertions(+), 2 deletions(-)
what got removed:
- removed _all_ critical path impact, even if KGDB is enabled and
active. The only notifier list it is registered in is the die
notifiers, but even there it has the minimum priority of -INT_MAX, to
be called as the last one of the die notifiers. I removed the 'early
trap hook', the trap handler tweaks, everything. KGDB's only impact
now are the arch details it implements in arch/x86/kernel/kgdb.c,
nothing else.
- removed all the lowlevel serial drivers. KGDB should not be in the
business of writing special-purpose Linux drivers. In fact i found a
testsystem where the KGDB 8250 driver would not work - it's simply
reimplementing the wheel that drivers/serial already implements, and
poorly so. Any "early debugging" functionality should be done via
extending the early-console concept, not via special-purpose KGDB
drivers.
- I have added a redesigned and cleaned up version of the "KGDB over
polled consoles" approach (KGDBOC) - i believe this should be the
only IO transport for KGD...