[GIT PULL v4.6] Add MDB Kernel Debugger to Linux Kernel v4.6
From: Jeffrey Merkey
Date: Mon Feb 29 2016 - 16:57:02 EST
The following changes since commit 45ba5b3e8f91384e652e8c61572bbe06b44a502a:
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux (2016-02-28 13:57:50 -0700)
are available in the git repository at:
https://github.com/jeffmerkey/linux.git tags/mdb-v4.5-rc6
for you to fetch changes up to 690db267b161b4cdb67950e5600d9190d2e7a2f3:
Add kbuild-test-robot fixes for CONFIG_VT (2016-02-29 14:09:38 -0700)
----------------------------------------------------------------
Hi Linus,
Please consider one in-kernel debugger for 4.6 with full disassembler
for x86/x86_64 architectures systems. This code is fully checkpatch.pl
compliant and is essentially a complete rewrite of the eariler
version of this debugger. The code conforms to Linux coding standards
and these commits have been digitally signed with my published
GPG key.
I have added myself as MAINTAINER for this code but that's not to say
I don't want someone to help with this. I would like to see Intel
or AMD savy kernel folks possibly being interested in taking over this
debugger for Linux at some point. There are a quite a few x86 folks
who may want to help out with it and would be welcome.
I have maintained mdb for my own personal development and use. I wrote this
back in 1998 in the good old days when Linux had no debugger to support
my own development. Over the years thousands of people have used
it and continue to since I started distributing it in the early 2000's.
It's been around a long time and if you decide not to include it I
will continue to maintain it and publish it to those folks who find it
useful to help their development. If it gets taken by you then
other folks like Intel or AMD may want to get involved. Intel has
been testing my trees on the test robot which has been invaluable.
None of the other in-kernel debuggers allow disassembly on a live
system without two machines and a serial link, so this is a handy tool
since its a module that can be loaded and unloaded when not needed.
I want to thank Joe Perches for the amazing tools he sent me that
essentially rewrote this code to comply with checkpatch. I also
thank Intel for the testing and get mdb to run across all Linux
x86 and x86_64 configs.
Checkpatch results:
./scripts/checkpatch.pl --file --strict arch/x86/kernel/debug/mdb/*.[ch]
------------------------------------
arch/x86/kernel/debug/mdb/mdb-base.c
------------------------------------
total: 0 errors, 0 warnings, 0 checks, 3293 lines checked
arch/x86/kernel/debug/mdb/mdb-base.c has no obvious style problems and is ready for submission.
------------------------------------
arch/x86/kernel/debug/mdb/mdb-base.h
------------------------------------
total: 0 errors, 0 warnings, 0 checks, 447 lines checked
arch/x86/kernel/debug/mdb/mdb-base.h has no obvious style problems and is ready for submission.
-------------------------------
arch/x86/kernel/debug/mdb/mdb.h
-------------------------------
total: 0 errors, 0 warnings, 0 checks, 40 lines checked
arch/x86/kernel/debug/mdb/mdb.h has no obvious style problems and is ready for submission.
---------------------------------------
arch/x86/kernel/debug/mdb/mdb-ia-apic.c
---------------------------------------
total: 0 errors, 0 warnings, 0 checks, 243 lines checked
arch/x86/kernel/debug/mdb/mdb-ia-apic.c has no obvious style problems and is ready for submission.
----------------------------------
arch/x86/kernel/debug/mdb/mdb-ia.c
----------------------------------
total: 0 errors, 0 warnings, 0 checks, 6887 lines checked
arch/x86/kernel/debug/mdb/mdb-ia.c has no obvious style problems and is ready for submission.
----------------------------------
arch/x86/kernel/debug/mdb/mdb-ia.h
----------------------------------
total: 0 errors, 0 warnings, 0 checks, 209 lines checked
arch/x86/kernel/debug/mdb/mdb-ia.h has no obvious style problems and is ready for submission.
---------------------------------------
arch/x86/kernel/debug/mdb/mdb-ia-proc.h
---------------------------------------
total: 0 errors, 0 warnings, 0 checks, 819 lines checked
arch/x86/kernel/debug/mdb/mdb-ia-proc.h has no obvious style problems and is ready for submission.
------------------------------------------
arch/x86/kernel/debug/mdb/mdb-ia-support.c
------------------------------------------
total: 0 errors, 0 warnings, 0 checks, 5342 lines checked
arch/x86/kernel/debug/mdb/mdb-ia-support.c has no obvious style problems and is ready for submission.
------------------------------------------
arch/x86/kernel/debug/mdb/mdb-ia-support.h
------------------------------------------
total: 0 errors, 0 warnings, 0 checks, 76 lines checked
arch/x86/kernel/debug/mdb/mdb-ia-support.h has no obvious style problems and is ready for submission.
----------------------------------------
arch/x86/kernel/debug/mdb/mdb-keyboard.h
----------------------------------------
total: 0 errors, 0 warnings, 0 checks, 127 lines checked
arch/x86/kernel/debug/mdb/mdb-keyboard.h has no obvious style problems and is ready for submission.
------------------------------------
arch/x86/kernel/debug/mdb/mdb-list.c
------------------------------------
total: 0 errors, 0 warnings, 0 checks, 534 lines checked
arch/x86/kernel/debug/mdb/mdb-list.c has no obvious style problems and is ready for submission.
------------------------------------
arch/x86/kernel/debug/mdb/mdb-list.h
------------------------------------
total: 0 errors, 0 warnings, 0 checks, 96 lines checked
arch/x86/kernel/debug/mdb/mdb-list.h has no obvious style problems and is ready for submission.
-------------------------------------
arch/x86/kernel/debug/mdb/mdb-logic.c
-------------------------------------
total: 0 errors, 0 warnings, 0 checks, 2118 lines checked
arch/x86/kernel/debug/mdb/mdb-logic.c has no obvious style problems and is ready for submission.
------------------------------------
arch/x86/kernel/debug/mdb/mdb-main.c
------------------------------------
total: 0 errors, 0 warnings, 0 checks, 786 lines checked
arch/x86/kernel/debug/mdb/mdb-main.c has no obvious style problems and is ready for submission.
-----------------------------------
arch/x86/kernel/debug/mdb/mdb.mod.c
-----------------------------------
total: 0 errors, 0 warnings, 0 checks, 23 lines checked
arch/x86/kernel/debug/mdb/mdb.mod.c has no obvious style problems and is ready for submission.
----------------------------------
arch/x86/kernel/debug/mdb/mdb-os.c
----------------------------------
total: 0 errors, 0 warnings, 0 checks, 1474 lines checked
arch/x86/kernel/debug/mdb/mdb-os.c has no obvious style problems and is ready for submission.
----------------------------------
arch/x86/kernel/debug/mdb/mdb-os.h
----------------------------------
total: 0 errors, 0 warnings, 0 checks, 141 lines checked
arch/x86/kernel/debug/mdb/mdb-os.h has no obvious style problems and is ready for submission.
------------------------------------
arch/x86/kernel/debug/mdb/mdb-proc.h
------------------------------------
total: 0 errors, 0 warnings, 0 checks, 179 lines checked
arch/x86/kernel/debug/mdb/mdb-proc.h has no obvious style problems and is ready for submission.
----------------------------------------------------------------
Jeffrey Merkey (3):
Add MDB Kernel Debugger for Linux to Linus' Tree
Add Kconfig.debug options for build
Add kbuild-test-robot fixes for CONFIG_VT
Documentation/sysrq.txt | 2 +-
MAINTAINERS | 6 +
arch/x86/include/asm/bug.h | 9 +-
arch/x86/include/uapi/asm/debugreg.h | 1 +
arch/x86/kernel/Makefile | 1 +
arch/x86/kernel/apic/io_apic.c | 2 +
arch/x86/kernel/debug/Makefile | 3 +
arch/x86/kernel/debug/mdb/Makefile | 6 +
arch/x86/kernel/debug/mdb/Makefile.local | 106 +
arch/x86/kernel/debug/mdb/mdb-base.c | 3293 +++++++++++++
arch/x86/kernel/debug/mdb/mdb-base.h | 447 ++
arch/x86/kernel/debug/mdb/mdb-ia-apic.c | 243 +
arch/x86/kernel/debug/mdb/mdb-ia-proc.h | 819 ++++
arch/x86/kernel/debug/mdb/mdb-ia-support.c | 5342 +++++++++++++++++++++
arch/x86/kernel/debug/mdb/mdb-ia-support.h | 76 +
arch/x86/kernel/debug/mdb/mdb-ia.c | 6887 ++++++++++++++++++++++++++++
arch/x86/kernel/debug/mdb/mdb-ia.h | 209 +
arch/x86/kernel/debug/mdb/mdb-keyboard.h | 127 +
arch/x86/kernel/debug/mdb/mdb-list.c | 534 +++
arch/x86/kernel/debug/mdb/mdb-list.h | 96 +
arch/x86/kernel/debug/mdb/mdb-logic.c | 2118 +++++++++
arch/x86/kernel/debug/mdb/mdb-main.c | 786 ++++
arch/x86/kernel/debug/mdb/mdb-os.c | 1474 ++++++
arch/x86/kernel/debug/mdb/mdb-os.h | 141 +
arch/x86/kernel/debug/mdb/mdb-proc.h | 179 +
arch/x86/kernel/debug/mdb/mdb.h | 40 +
arch/x86/kernel/dumpstack_32.c | 6 +-
arch/x86/kernel/dumpstack_64.c | 18 +
arch/x86/kernel/hw_breakpoint.c | 69 +-
arch/x86/kernel/reboot.c | 1 +
arch/x86/kernel/traps.c | 14 +
drivers/tty/vt/vt.c | 4 +
include/asm-generic/bug.h | 4 +
include/linux/console.h | 4 +
kernel/debug/kdb/kdb_debugger.c | 2 +-
kernel/events/hw_breakpoint.c | 2 +
kernel/extable.c | 1 +
kernel/kallsyms.c | 45 +
kernel/module.c | 43 +
kernel/rcu/tree.c | 1 +
kernel/sched/core.c | 13 +-
kernel/time/clocksource.c | 1 +
kernel/watchdog.c | 17 +-
lib/Kconfig.debug | 66 +
44 files changed, 23240 insertions(+), 18 deletions(-)
create mode 100644 arch/x86/kernel/debug/Makefile
create mode 100644 arch/x86/kernel/debug/mdb/Makefile
create mode 100644 arch/x86/kernel/debug/mdb/Makefile.local
create mode 100644 arch/x86/kernel/debug/mdb/mdb-base.c
create mode 100644 arch/x86/kernel/debug/mdb/mdb-base.h
create mode 100644 arch/x86/kernel/debug/mdb/mdb-ia-apic.c
create mode 100644 arch/x86/kernel/debug/mdb/mdb-ia-proc.h
create mode 100644 arch/x86/kernel/debug/mdb/mdb-ia-support.c
create mode 100644 arch/x86/kernel/debug/mdb/mdb-ia-support.h
create mode 100644 arch/x86/kernel/debug/mdb/mdb-ia.c
create mode 100644 arch/x86/kernel/debug/mdb/mdb-ia.h
create mode 100644 arch/x86/kernel/debug/mdb/mdb-keyboard.h
create mode 100644 arch/x86/kernel/debug/mdb/mdb-list.c
create mode 100644 arch/x86/kernel/debug/mdb/mdb-list.h
create mode 100644 arch/x86/kernel/debug/mdb/mdb-logic.c
create mode 100644 arch/x86/kernel/debug/mdb/mdb-main.c
create mode 100644 arch/x86/kernel/debug/mdb/mdb-os.c
create mode 100644 arch/x86/kernel/debug/mdb/mdb-os.h
create mode 100644 arch/x86/kernel/debug/mdb/mdb-proc.h
create mode 100644 arch/x86/kernel/debug/mdb/mdb.h