Re: [0/6] kgdb light

From: Jan Kiszka
Date: Sun Feb 10 2008 - 08:25:44 EST


Sam Ravnborg wrote:
> ...
> +extern int kgdb_may_fault;
> I searched but I could not find any places this
> variable were set to anuthing else than 0 neither where it was tested.

This is a leftover from the old jmp-on-fault logic that was missed by
this tree. I have a patch under test that kills this (and further 150
LOC) from the core.

>
> diff --git a/lib/Kconfig.kgdb b/lib/Kconfig.kgdb
> new file mode 100644
> index 0000000..00263c0
> --- /dev/null
> +++ b/lib/Kconfig.kgdb
> @@ -0,0 +1,37 @@
> +
> +menuconfig KGDB
> + bool "KGDB: kernel debugging with remote gdb"
> + select FRAME_POINTER
> + depends on HAVE_ARCH_KGDB
> + depends on DEBUG_KERNEL && EXPERIMENTAL
> + help
> + If you say Y here, it will be possible to remotely debug the
> + kernel using gdb. Documentation of kernel debugger is available
> + at http://kgdb.sourceforge.net as well as in DocBook form
> + in Documentation/DocBook/. If unsure, say N.
> +
> +config HAVE_ARCH_KGDB_SHADOW_INFO
> + bool
> +
>
> Please add:
> config HAVE_ARCH_KGDB
> bool
>
> So we later in x86/Kconfig can do:
> config X86
> select HAVE_ARCH_KGDB
>
> And we can get rid of (from x86/Kconfig):
> +config HAVE_ARCH_KGDB
> + def_bool y
>
>
> Back to Kconfig.kgdb:
>
> +config KGDBOC
> + tristate "KGDB: use kgdb over the serial console"
> + depends on KGDB
>
> Can we have a more descriptive name here.
> For example:
> config KGDB_SERIAL_CONSOLE
> It is only used in one place so there is no
> specific need for such a magic short name.
>

Is the patch below OK? I also added an "if KGB" to unbreak kgdb's
kconfig menu again and included two minor cleanups I posted yesterday.

Jan

PS: Ingo, kgdboc runtime re-configuration is broken as you dropped the
__init removal from uart_parse_options and uart_set_option (probably
due to the ifdef'ery). Better remove it unconditionally?

--------------

Refactor KGDB kbuild menu.

Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxx>

---
arch/x86/Kconfig | 4 +---
drivers/serial/Makefile | 2 +-
lib/Kconfig.kgdb | 15 ++++++++++-----
3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 85bcc23..5e0fab5 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -22,6 +22,7 @@ config X86
select HAVE_IDE
select HAVE_OPROFILE
select HAVE_KPROBES
+ select HAVE_ARCH_KGDB

config GENERIC_LOCKBREAK
def_bool n
@@ -144,9 +145,6 @@ config AUDIT_ARCH
config ARCH_SUPPORTS_AOUT
def_bool y

-config HAVE_ARCH_KGDB
- def_bool y
-
# Use the generic interrupt handling code in kernel/irq/:
config GENERIC_HARDIRQS
bool
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index 1d8ee05..dfd8e72 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -66,5 +66,5 @@ obj-$(CONFIG_SERIAL_UARTLITE) += uartlite.o
obj-$(CONFIG_SERIAL_NETX) += netx-serial.o
obj-$(CONFIG_SERIAL_OF_PLATFORM) += of_serial.o
obj-$(CONFIG_SERIAL_KS8695) += serial_ks8695.o
-obj-$(CONFIG_KGDBOC) += kgdboc.o
+obj-$(CONFIG_KGDB_IO_SERIAL_CONSOLE) += kgdboc.o
obj-$(CONFIG_SERIAL_QE) += ucc_uart.o
diff --git a/lib/Kconfig.kgdb b/lib/Kconfig.kgdb
index 00263c0..947c7f1 100644
--- a/lib/Kconfig.kgdb
+++ b/lib/Kconfig.kgdb
@@ -10,12 +10,16 @@ menuconfig KGDB
at http://kgdb.sourceforge.net as well as in DocBook form
in Documentation/DocBook/. If unsure, say N.

+if KGDB
+
+config HAVE_ARCH_KGDB
+ bool
+
config HAVE_ARCH_KGDB_SHADOW_INFO
bool

config KGDB_CONSOLE_OUTPUT
- bool "KGDB: Console messages through gdb"
- depends on KGDB
+ bool "Console messages through gdb"
help
If you say Y here, console messages will appear through gdb.
Other consoles such as tty or ttyS will continue to work as usual.
@@ -26,12 +30,13 @@ config KGDB_CONSOLE_OUTPUT
to use NETCONSOLE in conjunction with KGDBOE instead of
KGDB_CONSOLE.

-config KGDBOC
- tristate "KGDB: use kgdb over the serial console"
- depends on KGDB
+config KGDB_IO_SERIAL_CONSOLE
+ tristate "Use kgdb over the serial console"
select CONSOLE_POLL
select MAGIC_SYSRQ
default y
help
Share a serial console with kgdb. Sysrq-g must be used
to break in initially.
+
+endif
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/