2016-10-04 00:17:24

by Jeffrey Merkey

[permalink] [raw]
Subject: [GIT PULL] MDB Linux Kernel Debugger v4.8 (for kbuild robot testing)

The following changes since commit c8d2bc9bc39ebea8437fd974fdbc21847bb897a3:

Linux 4.8 (2016-10-02 16:24:33 -0700)

are available in the git repository at:

https://github.com/jeffmerkey/linux.git mdb-v4.8

for you to fetch changes up to 8e3486647ebcef24e67fc2eebe49f3641a4ffc95:

Add MDB Debugger to Linux Kernel v4.8 (2016-10-02 20:33:55 -0600)

----------------------------------------------------------------
Jeffrey Merkey (1):
Add MDB Debugger to Linux Kernel v4.8

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 | 2 +
arch/x86/kernel/debug/mdb/Makefile | 6 +
arch/x86/kernel/debug/mdb/Makefile.local | 104 +
arch/x86/kernel/debug/mdb/mdb-base.c | 3297 +++++++++++++
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 | 22 +-
arch/x86/kernel/hw_breakpoint.c | 69 +-
arch/x86/kernel/reboot.c | 1 +
arch/x86/kernel/traps.c | 15 +
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, 23244 insertions(+), 20 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


2016-10-04 01:47:08

by Joe Perches

[permalink] [raw]
Subject: Re: [GIT PULL] MDB Linux Kernel Debugger v4.8 (for kbuild robot testing)

On Mon, 2016-10-03 at 18:17 -0600, Jeffrey Merkey wrote:
> The following changes since commit c8d2bc9bc39ebea8437fd974fdbc21847bb897a3:
>
> Linux 4.8 (2016-10-02 16:24:33 -0700)
>
> are available in the git repository at:
>
> https://github.com/jeffmerkey/linux.git mdb-v4.8
>
> for you to fetch changes up to 8e3486647ebcef24e67fc2eebe49f3641a4ffc95:
>
> Add MDB Debugger to Linux Kernel v4.8 (2016-10-02 20:33:55 -0600)

Stephen, can this tree be added to -next to get some
exposure for the next cycle?

2016-10-04 02:29:31

by Stephen Rothwell

[permalink] [raw]
Subject: Re: [GIT PULL] MDB Linux Kernel Debugger v4.8 (for kbuild robot testing)

Hi Joe,

On Mon, 03 Oct 2016 18:47:04 -0700 Joe Perches <[email protected]> wrote:
>
> On Mon, 2016-10-03 at 18:17 -0600, Jeffrey Merkey wrote:
> > The following changes since commit c8d2bc9bc39ebea8437fd974fdbc21847bb897a3:
> >
> > Linux 4.8 (2016-10-02 16:24:33 -0700)
> >
> > are available in the git repository at:
> >
> > https://github.com/jeffmerkey/linux.git mdb-v4.8
> >
> > for you to fetch changes up to 8e3486647ebcef24e67fc2eebe49f3641a4ffc95:
> >
> > Add MDB Debugger to Linux Kernel v4.8 (2016-10-02 20:33:55 -0600)
>
> Stephen, can this tree be added to -next to get some
> exposure for the next cycle?

I don't add trees during the merge window (unless they contain stuff
for the current merge window and, even then, only rarely). Also, I
only take requests from the maintainer/owner of the tree.

Has there been much recent discussion/review/testing of this tree? Is
it likely that Linus will merge it? (Just asking, I haven't been
following it.)
--
Cheers,
Stephen Rothwell

2016-10-04 02:42:55

by Joe Perches

[permalink] [raw]
Subject: Re: [GIT PULL] MDB Linux Kernel Debugger v4.8 (for kbuild robot testing)


On Tue, 2016-10-04 at 13:29 +1100, Stephen Rothwell wrote:
> Hi Joe,

Hi Stephen.

> On Mon, 03 Oct 2016 18:47:04 -0700 Joe Perches <[email protected]> wrote:
> >
> > On Mon, 2016-10-03 at 18:17 -0600, Jeffrey Merkey wrote:
> > > The following changes since commit c8d2bc9bc39ebea8437fd974fdbc21847bb897a3:
> > >
> > > Linux 4.8 (2016-10-02 16:24:33 -0700)
> > >
> > > are available in the git repository at:
> > >
> > > https://github.com/jeffmerkey/linux.git mdb-v4.8
> > >
> > > for you to fetch changes up to 8e3486647ebcef24e67fc2eebe49f3641a4ffc95:
> > >
> > > Add MDB Debugger to Linux Kernel v4.8 (2016-10-02 20:33:55 -0600)
> >
> >
> > Stephen, can this tree be added to -next to get some
> > exposure for the next cycle?
>
>
> I don't add trees during the merge window (unless they contain stuff
> for the current merge window and, even then, only rarely). Also, I
> only take requests from the maintainer/owner of the tree.

No worries, it's really a request for Jeff who doesn't seem
to know the process very well.

Jeff, you really should get this into -next before sending a
pull request to Linus for this large bit of code.

> Has there been much recent discussion/review/testing of this tree?

Not to my knowledge for about 6 months now.

> Is it likely that Linus will merge it? (Just asking, I haven't been
> following it.)

Dunno. I'd guess it will _not_ be merged without some time
in -next and a compelling reason to use it.

2016-10-04 02:54:14

by Jeffrey Merkey

[permalink] [raw]
Subject: Re: [GIT PULL] MDB Linux Kernel Debugger v4.8 (for kbuild robot testing)

On 10/3/16, Joe Perches <[email protected]> wrote:
>
> On Tue, 2016-10-04 at 13:29 +1100, Stephen Rothwell wrote:
>> Hi Joe,
>
> Hi Stephen.
>
>> On Mon, 03 Oct 2016 18:47:04 -0700 Joe Perches <[email protected]> wrote:
>> >
>> > On Mon, 2016-10-03 at 18:17 -0600, Jeffrey Merkey wrote:
>> > > The following changes since commit
>> > > c8d2bc9bc39ebea8437fd974fdbc21847bb897a3:
>> > >
>> > > Linux 4.8 (2016-10-02 16:24:33 -0700)
>> > >
>> > > are available in the git repository at:
>> > >
>> > > https://github.com/jeffmerkey/linux.git mdb-v4.8
>> > >
>> > > for you to fetch changes up to
>> > > 8e3486647ebcef24e67fc2eebe49f3641a4ffc95:
>> > >
>> > > Add MDB Debugger to Linux Kernel v4.8 (2016-10-02 20:33:55 -0600)
>> >
>> >
>> > Stephen, can this tree be added to -next to get some
>> > exposure for the next cycle?
>>
>>
>> I don't add trees during the merge window (unless they contain stuff
>> for the current merge window and, even then, only rarely). Also, I
>> only take requests from the maintainer/owner of the tree.
>
> No worries, it's really a request for Jeff who doesn't seem
> to know the process very well.
>
> Jeff, you really should get this into -next before sending a
> pull request to Linus for this large bit of code.
>
>> Has there been much recent discussion/review/testing of this tree?
>
> Not to my knowledge for about 6 months now.
>
>> Is it likely that Linus will merge it? (Just asking, I haven't been
>> following it.)
>
> Dunno. I'd guess it will _not_ be merged without some time
> in -next and a compelling reason to use it.
>
>

Hi Joe,
Hi Stephen,

I put it out as a pull request so the kbuild test robot can build it
against all sort of configs to make certain it runs across all
i386/x86_64 configs. If I recall correctly, Ingo Molnar stated he
would be interested in mdb being chopped up into pieces and possibly
integrated into kdb, since MDB has a very good disassembler and
conditional breakpoints which kdb lacks, if I understood what he said
last linux release when this came up.

Since I produce mdb for mostly my own internal use, I have not done
this integration work as of yet as I have been more a user of MDB than
the developer of late. That's not to say someone else could do what
Ingo suggested, and I have looked over KDB but to be honest, it would
require a whole lot of non-intrusive changes to kdb to pull it off --
not impossible but where I left it with Ingo is he would need to ask
and be specific about what changes or sections he would want in KDB.
Without specific guidance from him, I hesitate to work on it -- in
other words he needs to ask me exactly what he expects to be done
here. kdb is a very unstable tool from what limited testing I have
done and it's processor roundup for SMP systems is a very different
approach from mdb and is prone to crashes and lockups (particularly
when you are servicing multiple NMI interrupts and more then one of
the processors ends up in the INT1 exception handler).

MDB's plus to Linux is a working deferenced disassembler which kdb
lacks. Ingo did not like the fact the MDB is monolithic if I read
what he said correctly, and I can see his point, however, debuggers
are always tightly coupled with the underlying arch. kgdb is
interesting but is not a standalone debugger, requires two boxes, and
uses a cumbersome command syntax.

That being said, Ingo will need to ask me to do the work then be a
little more forthright about his interest -- if any -- and provide
some guidance. If Linus wants to pull it be my guest. It's always
out there for him or anyone else who needs it.

:-)

Jeff

2016-10-04 03:14:24

by Jeffrey Merkey

[permalink] [raw]
Subject: Re: [GIT PULL] MDB Linux Kernel Debugger v4.8 (for kbuild robot testing)

On 10/3/16, Jeffrey Merkey <[email protected]> wrote:
> On 10/3/16, Joe Perches <[email protected]> wrote:
>>
>> On Tue, 2016-10-04 at 13:29 +1100, Stephen Rothwell wrote:
>>> Hi Joe,
>>
>> Hi Stephen.
>>
>>> On Mon, 03 Oct 2016 18:47:04 -0700 Joe Perches <[email protected]> wrote:
>>> >
>>> > On Mon, 2016-10-03 at 18:17 -0600, Jeffrey Merkey wrote:
>>> > > The following changes since commit
>>> > > c8d2bc9bc39ebea8437fd974fdbc21847bb897a3:
>>> > >
>>> > > Linux 4.8 (2016-10-02 16:24:33 -0700)
>>> > >
>>> > > are available in the git repository at:
>>> > >
>>> > > https://github.com/jeffmerkey/linux.git mdb-v4.8
>>> > >
>>> > > for you to fetch changes up to
>>> > > 8e3486647ebcef24e67fc2eebe49f3641a4ffc95:
>>> > >
>>> > > Add MDB Debugger to Linux Kernel v4.8 (2016-10-02 20:33:55 -0600)
>>> >
>>> >
>>> > Stephen, can this tree be added to -next to get some
>>> > exposure for the next cycle?
>>>
>>>
>>> I don't add trees during the merge window (unless they contain stuff
>>> for the current merge window and, even then, only rarely). Also, I
>>> only take requests from the maintainer/owner of the tree.
>>
>> No worries, it's really a request for Jeff who doesn't seem
>> to know the process very well.
>>
>> Jeff, you really should get this into -next before sending a
>> pull request to Linus for this large bit of code.
>>
>>> Has there been much recent discussion/review/testing of this tree?
>>
>> Not to my knowledge for about 6 months now.
>>
>>> Is it likely that Linus will merge it? (Just asking, I haven't been
>>> following it.)
>>
>> Dunno. I'd guess it will _not_ be merged without some time
>> in -next and a compelling reason to use it.
>>
>>
>
> Hi Joe,
> Hi Stephen,
>
> I put it out as a pull request so the kbuild test robot can build it
> against all sort of configs to make certain it runs across all
> i386/x86_64 configs. If I recall correctly, Ingo Molnar stated he
> would be interested in mdb being chopped up into pieces and possibly
> integrated into kdb, since MDB has a very good disassembler and
> conditional breakpoints which kdb lacks, if I understood what he said
> last linux release when this came up.
>
> Since I produce mdb for mostly my own internal use, I have not done
> this integration work as of yet as I have been more a user of MDB than
> the developer of late. That's not to say someone else could do what
> Ingo suggested, and I have looked over KDB but to be honest, it would
> require a whole lot of non-intrusive changes to kdb to pull it off --
> not impossible but where I left it with Ingo is he would need to ask
> and be specific about what changes or sections he would want in KDB.
> Without specific guidance from him, I hesitate to work on it -- in
> other words he needs to ask me exactly what he expects to be done
> here. kdb is a very unstable tool from what limited testing I have
> done and it's processor roundup for SMP systems is a very different
> approach from mdb and is prone to crashes and lockups (particularly
> when you are servicing multiple NMI interrupts and more then one of
> the processors ends up in the INT1 exception handler).
>
> MDB's plus to Linux is a working deferenced disassembler which kdb
> lacks. Ingo did not like the fact the MDB is monolithic if I read
> what he said correctly, and I can see his point, however, debuggers
> are always tightly coupled with the underlying arch. kgdb is
> interesting but is not a standalone debugger, requires two boxes, and
> uses a cumbersome command syntax.
>
> That being said, Ingo will need to ask me to do the work then be a
> little more forthright about his interest -- if any -- and provide
> some guidance. If Linus wants to pull it be my guest. It's always
> out there for him or anyone else who needs it.
>
> :-)
>
> Jeff
>

The mdb disassembler also supports multiple disassembly options 16
bit, 32 bit, 64 bit, intel and GNU formats all interchangable with
simple commands which is something even kgdb does not support.


Jeff