All of lore.kernel.org
 help / color / mirror / Atom feed
From: Louis Rilling <Louis.Rilling@kerlabs.com>
To: Jason Wessel <jason.wessel@windriver.com>
Cc: linux-kernel@vger.kernel.org,
	kgdb-bugreport@lists.sourceforge.net, kdb@oss.sgi.com
Subject: Re: [PATCH 0/13] RFC ONLY - kdb for kgdb
Date: Mon, 11 May 2009 11:15:39 +0200	[thread overview]
Message-ID: <20090511091539.GM25550@hawkmoon.kerlabs.com> (raw)
In-Reply-To: <1241817800-9320-1-git-send-email-jason.wessel@windriver.com>

[-- Attachment #1: Type: text/plain, Size: 9454 bytes --]

Hi Jason,

On 08/05/09 16:23 -0500, Jason Wessel wrote:
> This patch series is a request for comments on several levels.
> 
> 1) Do people find kdb useful? (See * and **)

Yes! Having a debugger on the main console is very handy, especially when
a) it is a pain, when it's possible (*), to setup a serial console, and
b) over ethernet, neither kgdb nor kdb is as reliable as kdb on tty0.

I won't answer the other questions since I'm definitely a user, not a developer
of kernel debugger.

(*) not everybody has IPMI 2 boards with serial over lan consoles.

> 2) Would kdb folks be willing to use it if it was a front end to kgdb?
> 3) Does kdb have a future in the mainline kernel?
> 4) Is this a reasonable approach to have some level of
>    unification to end up with a more robust kernel debugger?
> 
> * This is not meant to be a religious war
> 
> ** This will never replace printk :-)
> 
> What follows is a series of patches to the development kernel which
> enable kdb as a front end to kgdb for arm, mips, powerpc, and x86.
> This is a very raw prototype, but enough of it it works such that
> folks can try it out.
> 
> To get the most basic functionality, you only need the first 2 patches
> in the series.  The remainder of the patches go on to incrementally
> add back some of the functionality that was removed from kdb.  I made
> an attempt to try to make the first part just the generic set of
> changes required to get kdb working on 1 or more archs.

Do you intend to support kdb modules? If yes, in which extent should they be
adapted?

Thanks,

Louis

> 
> The kdb front end works a little differently than if you were to take
> the original kdb patch set from:
> 
> ftp://oss.sgi.com/projects/kdb/download/v4.4/
> 
> In the kernel .config you should enable the following options:
> 
> CONFIG_KGDB=y
> CONFIG_KGDB_SERIAL_CONSOLE=y
> CONFIG_KGDB_LOW_LEVEL_TRAP=y
> CONFIG_KGDB_KDB=y
> CONFIG_KGDB_KDB_PRIMARY=y
> CONFIG_KDB_KEYBOARD=y
> CONFIG_KDB_USB=y
> 
> If you were using the serial port with kdb before, now you just use
> the kgdboc mechanism with no differences at all.  IE use you kernel
> command line with:
> 
>    console=ttyS0,115200 kgdboc=ttyS0 kgdbwait
> 
> That will get you access to kdb just after the console has been
> registered.  If you want to use the keyboard, you could use:
> 
>    console=tty0 kgdboc=kdb kgdbwait
> 
> You can also use the keyboard and or serial console:
> 
>    console=ttyS0,115200 console=tty0 kgdboc=kdb,ttyS0
> 
> 
> In terms of breaking into the debugger after the system is up, you
> must use the sysrq-g sequence.  That means you could run:
>    echo g > /proc/sysrq-trigger
> 
> Or you can use the SysRq key on your key board.  On a typical laptop
> you might have to do the following:
> 
> press and hold ALT    -- You will be holding this the whole time
> press and hold FN
> press and release the key with the SysRq label
> release FN
> press and release g
> release ALT
> 
> I have also found on some PS/2 keyboards you have press alt again
> after resuming the system because the key up event got lost somewhere.
> 
> Once you are in kdb you can run help to see a limited list of
> commands.
> 
> You can also still connect gdb or re-enter kdb without leaving the
> exception state.  To get out of kgdb mode you can type "$3#33", or to
> get into kgdb mode from kdb, you can type "kgdb".  Also from gdb you
> can issue commands to the kdb front end, via gdb's montior command.
> For instance you could issue "monitor lsmod".  Allowing the gdb
> monitor extension was certainly another motivation behind the
> prototype.
> 
> From here it is a matter of deciding if it is worth continuing down
> this route.
> 
> The evaulation of this project will definitely cause some further
> cleanup and improvement to kgdb, regardless of if this effort is
> carried forward.  Two of the patches in this series are patches likely
> to get integrated into kgdb's code base and do not bear the "RFC ONLY"
> indication.
> 
> Thanks,
> Jason.
> 
> You can find the development branch for this here:
> 
> http://git.kernel.org/?p=linux/kernel/git/jwessel/linux-2.6-kgdb.git;a=shortlog;h=kdb_prototype
> 
> or grab a static version of the patches here:
> 
> http://kernel.org/pub/linux/kernel/people/jwessel/branches/kdb_prototype.tar.bz2
> 
> short log info follows:
> 
> Jason Wessel (13):
>       RFC ONLY - kdb: core for kgdb backend
>       RFC ONLY - kgdb: core changes to support kdb
>       RFC ONLY - kgdb,8250,pl011: Return immediately from console poll
>       RFC ONLY - kgdb: gdb "monitor" -> kdb passthrough
>       RFC ONLY - kgdboc,keyboard: Keyboard driver for kdb with kgdb
>       kgdb: remove post_primary_code references
>       RFC ONLY - x86,kgdb: Add low level debug hook
>       RFC ONLY - arm,kgdb: Add hook to catch an oops with debugger
>       RFC ONLY - powerpc,kgdb: Introduce low level trap catching
>       RFC ONLY - mips,kgdb: kdb low level trap catch and stack trace
>       kgdb: Add the ability to schedule a breakpoint via a tasklet
>       RFC ONLY - kgdb,kdb: use async breakpoint for sysrq for usb
>       RFC ONLY - usb,keyboard: uchi, echi, and ochi polling keyboard urbs
> 
>  Makefile                              |    1 +
>  arch/arm/include/asm/kgdb.h           |    2 +
>  arch/arm/include/asm/kmap_types.h     |    1 +
>  arch/arm/kernel/kgdb.c                |   13 +
>  arch/arm/kernel/traps.c               |    5 +
>  arch/mips/include/asm/kgdb.h          |    2 +
>  arch/mips/include/asm/kmap_types.h    |    3 +-
>  arch/mips/kernel/kgdb.c               |   27 +-
>  arch/mips/kernel/traps.c              |   14 +
>  arch/powerpc/include/asm/kmap_types.h |    1 +
>  arch/powerpc/kernel/kgdb.c            |   12 +-
>  arch/powerpc/kernel/traps.c           |    7 +
>  arch/x86/include/asm/kgdb.h           |    3 +
>  arch/x86/include/asm/kmap_types.h     |    3 +-
>  arch/x86/kernel/kgdb.c                |   56 +-
>  arch/x86/kernel/traps.c               |    6 +
>  drivers/char/Makefile                 |    1 +
>  drivers/char/kdb_keyboard.c           |  407 ++++
>  drivers/char/kdb_keyboard.h           |  143 ++
>  drivers/hid/usbhid/hid-core.c         |   26 +
>  drivers/hid/usbhid/usbkbd.c           |   13 +
>  drivers/serial/8250.c                 |    4 +-
>  drivers/serial/amba-pl011.c           |    6 +-
>  drivers/serial/kgdboc.c               |   80 +-
>  drivers/usb/core/hcd.c                |   14 +
>  drivers/usb/core/hcd.h                |    4 +
>  drivers/usb/host/ehci-hcd.c           |   42 +
>  drivers/usb/host/ehci-pci.c           |    6 +
>  drivers/usb/host/ehci-q.c             |  225 ++
>  drivers/usb/host/ohci-hcd.c           |   66 +
>  drivers/usb/host/ohci-pci.c           |    6 +-
>  drivers/usb/host/ohci-q.c             |   63 +
>  drivers/usb/host/uhci-hcd.c           |   36 +
>  drivers/usb/host/uhci-q.c             |   51 +
>  fs/proc/meminfo.c                     |  145 ++
>  fs/proc/mmu.c                         |   16 +-
>  include/linux/kdb.h                   |  172 ++
>  include/linux/kdbprivate.h            |  611 ++++++
>  include/linux/keyboard.h              |    2 +
>  include/linux/kgdb.h                  |   25 +-
>  include/linux/serial_core.h           |    1 +
>  init/main.c                           |   26 +
>  kdb/.gitignore                        |    1 +
>  kdb/Makefile                          |   48 +
>  kdb/kdb_bp.c                          |  863 ++++++++
>  kdb/kdb_bt.c                          |  209 ++
>  kdb/kdb_cmds                          |   32 +
>  kdb/kdb_io.c                          |  895 ++++++++
>  kdb/kdbmain.c                         | 3669 +++++++++++++++++++++++++++++++++
>  kdb/kdbsupport.c                      | 1120 ++++++++++
>  kernel/kallsyms.c                     |   22 +
>  kernel/kgdb.c                         |  321 +++-
>  kernel/module.c                       |   19 +-
>  kernel/panic.c                        |    6 +
>  kernel/printk.c                       |   14 +
>  kernel/sched.c                        |   93 +-
>  kernel/signal.c                       |   49 +
>  lib/Kconfig.kgdb                      |   37 +
>  mm/hugetlb.c                          |   22 +
>  mm/swapfile.c                         |   22 +
>  60 files changed, 9697 insertions(+), 92 deletions(-)
>  create mode 100644 drivers/char/kdb_keyboard.c
>  create mode 100644 drivers/char/kdb_keyboard.h
>  create mode 100644 include/linux/kdb.h
>  create mode 100644 include/linux/kdbprivate.h
>  create mode 100644 kdb/.gitignore
>  create mode 100644 kdb/Makefile
>  create mode 100644 kdb/kdb_bp.c
>  create mode 100644 kdb/kdb_bt.c
>  create mode 100644 kdb/kdb_cmds
>  create mode 100644 kdb/kdb_io.c
>  create mode 100644 kdb/kdbmain.c
>  create mode 100644 kdb/kdbsupport.c
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
Dr Louis Rilling			Kerlabs
Skype: louis.rilling			Batiment Germanium
Phone: (+33|0) 6 80 89 08 23		80 avenue des Buttes de Coesmes
http://www.kerlabs.com/			35700 Rennes

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2009-05-11  9:15 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-08 21:23 [PATCH 0/13] RFC ONLY - kdb for kgdb Jason Wessel
2009-05-08 21:23 ` [PATCH 01/13] RFC ONLY - kdb: core for kgdb back end Jason Wessel
2009-05-08 21:23   ` [PATCH 02/13] RFC ONLY - kgdb: core changes to support kdb Jason Wessel
2009-05-08 21:23     ` [PATCH 03/13] RFC ONLY - kgdb,8250,pl011: Return immediately from console poll Jason Wessel
2009-05-08 21:23       ` [PATCH 04/13] RFC ONLY - kgdb: gdb "monitor" -> kdb passthrough Jason Wessel
2009-05-08 21:23         ` [PATCH 05/13] RFC ONLY - kgdboc,keyboard: Keyboard driver for kdb with kgdb Jason Wessel
2009-05-08 21:23           ` [PATCH 06/13] kgdb: remove post_primary_code references Jason Wessel
2009-05-08 21:23             ` [PATCH 07/13] RFC ONLY - x86,kgdb: Add low level debug hook Jason Wessel
2009-05-08 21:23               ` [PATCH 08/13] RFC ONLY - arm,kgdb: Add hook to catch an oops with debugger Jason Wessel
2009-05-08 21:23                 ` [PATCH 09/13] RFC ONLY - powerpc,kgdb: Introduce low level trap catching Jason Wessel
2009-05-08 21:23                   ` [PATCH 10/13] RFC ONLY - mips,kgdb: kdb low level trap catch and stack trace Jason Wessel
2009-05-08 21:23                     ` [PATCH 11/13] kgdb: Add the ability to schedule a breakpoint via a tasklet Jason Wessel
2009-05-08 21:23                       ` [PATCH 12/13] RFC ONLY - kgdb,kdb: use async breakpoint for sysrq for usb Jason Wessel
2009-05-08 21:23                         ` [PATCH 13/13] RFC ONLY - usb,keyboard: uchi, echi, and ochi polling keyboard urbs Jason Wessel
2009-05-09  4:09   ` [PATCH 01/13] RFC ONLY - kdb: core for kgdb back end Ingo Molnar
2009-05-19 18:22     ` Jason Wessel
2009-05-08 21:49 ` [PATCH 0/13] RFC ONLY - kdb for kgdb Maxim Levitsky
2009-05-11  9:15 ` Louis Rilling [this message]
2009-05-11  9:23   ` Christoph Hellwig
2009-05-11  9:51     ` Louis Rilling
2009-05-11  9:22 ` [kdb] " Christoph Hellwig
2009-05-11 12:57   ` Martin Hicks

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090511091539.GM25550@hawkmoon.kerlabs.com \
    --to=louis.rilling@kerlabs.com \
    --cc=jason.wessel@windriver.com \
    --cc=kdb@oss.sgi.com \
    --cc=kgdb-bugreport@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.