kgdb Bad IO access (was: 2.6.22-rc6-mm1)

From: Tilman Schmidt
Date: Fri Jul 06 2007 - 10:03:35 EST


Andrew Morton schrieb:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
>
> - Added the kgdb tree, as git-kgdb.patch (Jason Wessel
> <jason.wessel@xxxxxxxxxxxxx>)
>
> This is a large patch which unifies all the various kgdb stubs lying
> around various architectures and extends kgdb support to other
> architectures. Supported architectures are at present arm, i386, ia64,
> mips, ppc32, ppc64, sh, and x86_64.
>
> Subject to review, we're aiming this at 2.6.24.

Built a kernel with this just for fun on a Pentium D 940 system running
a 32 bit install of SuSE 10.2. It complained thusly relatively early
during startup:

--------8<--------8<--------8<--------8<--------8<--------8<--------8<
Bad IO access at port 10000 (outb(val,port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[iowrite8+52/54] iowrite8+0x34/0x36
[kgdb8250_uart_init+164/609] kgdb8250_uart_init+0xa4/0x261
[kgdb_init_io+172/200] kgdb_init_io+0xac/0xc8
[kgdb_late_entry+54/164] kgdb_late_entry+0x36/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (return inb(port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[ioread8+40/47] ioread8+0x28/0x2f
[kgdb8250_uart_init+334/609] kgdb8250_uart_init+0x14e/0x261
[kgdb_init_io+172/200] kgdb_init_io+0xac/0xc8
input: AT Translated Set 2 keyboard as /class/input/input1
[kgdb_late_entry+54/164] kgdb_late_entry+0x36/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (outb(val,port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[iowrite8+52/54] iowrite8+0x34/0x36
[kgdb8250_uart_init+164/609] kgdb8250_uart_init+0xa4/0x261
[kgdb8250_late_init+32/153] kgdb8250_late_init+0x20/0x99
[kgdb_late_entry+136/164] kgdb_late_entry+0x88/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (return inb(port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[ioread8+40/47] ioread8+0x28/0x2f
[kgdb8250_uart_init+334/609] kgdb8250_uart_init+0x14e/0x261
[kgdb8250_late_init+32/153] kgdb8250_late_init+0x20/0x99
[kgdb_late_entry+136/164] kgdb_late_entry+0x88/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
KGDB failed to request the serial IRQ (0)
registered taskstats version 1
Freeing unused kernel memory: 236k freed
--------8<--------8<--------8<--------8<--------8<--------8<--------8<

Apart from that, the kernel runs fine, though its subjectively a bit
sluggish compared to 2.6.22-rc6-mm1 without kgdb. Its uname -a is:
Linux xenon 2.6.22-rc6-mm1-test4 #10 SMP PREEMPT Thu Jul 5 23:41:32 CEST 2007 i686 i686 i386 GNU/Linux
I didn't even try to actually do anything with kgdb, though.

The .config delta is:

--- good.config-3 2007-07-05 22:35:30.000000000 +0200
+++ .config 2007-07-05 23:23:09.000000000 +0200
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22-rc6-mm1
-# Thu Jul 5 22:05:32 2007
+# Thu Jul 5 23:23:09 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -35,7 +35,7 @@
#
# General setup
#
-CONFIG_LOCALVERSION="-test3"
+CONFIG_LOCALVERSION="-test4"
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SWAP_PREFETCH=y
@@ -2529,8 +2529,24 @@
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
-# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
-# CONFIG_KGDB is not set
+CONFIG_WANT_EXTRA_DEBUG_INFORMATION=y
+CONFIG_KGDB=y
+# CONFIG_KGDB_CONSOLE is not set
+# CONFIG_KGDB_ONLY_MODULES is not set
+CONFIG_KGDB_8250_NOMODULE=y
+# CONFIG_KGDBOE_NOMODULE is not set
+# CONFIG_KGDB_MPSC is not set
+# CONFIG_KGDB_CPM_UART is not set
+# CONFIG_KGDB_SIBYTE is not set
+# CONFIG_KGDB_TXX9 is not set
+# CONFIG_KGDB_SH_SCI is not set
+# CONFIG_KGDB_AMBA_PL011 is not set
+# CONFIG_KGDB_PXA_SERIAL is not set
+# CONFIG_KGDBOE is not set
+CONFIG_KGDB_8250=y
+CONFIG_KGDB_SIMPLE_SERIAL=y
+CONFIG_KGDB_BAUDRATE=115200
+CONFIG_KGDB_PORT_NUM=1
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y


HTH
T.

--
Tilman Schmidt E-Mail: tilman@xxxxxxx
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Ungeöffnet mindestens haltbar bis: (siehe Rückseite)

Attachment: signature.asc
Description: OpenPGP digital signature