Messages in this thread | | | From | Keith Owens <> | Subject | SMP lockups - Integrated Kernel Debugging patch - 2.1.105 | Date | Thu, 11 Jun 1998 07:55:51 +1000 |
| |
ftp://ftp.ocs.com.au/pub/patch-ikd-2.1.105.gz - Integrated Kernel Debugging patch for 2.1.105. You might want to get make_System_map.pl.gz from the same directory.
This can help track down the SMP/CDrom lockups with a second machine. You can get a kernel trace dumped to another machine via a serial console. It is messy to get started but worth it.
Apply ikd patch.
Configure with serial console, SysRQ and kernel trace.
make dep clean [b]zImage modules debug
Pick a spare dumb serial port on the test machine, run a null modem to a second machine.
Update lilo.conf with append="console=tty0 console=ttySn,115200"
On the second machine, capture everything that comes down the null modem line. You might need to tweak the speed in lilo.conf to something the second machine can read without data loss, there is little or no flow control on kernel tracing. Speed is limited by the receiving UART.
Install test kernel, reboot.
make_System_map.pl /proc/ksyms /lib/modules/`uname -r`/System.map \ /lib/modules/`uname -r`/*/*.o > /tmp/map builds a map including modules currently loaded.
When it locks up, hit SysRQ-G and wait. This dumps the kernel log buffer and the kernel trace buffer to all consoles, including the serial console. You now have a trace captured on the second machine.
Reboot.
scripts/ktrace -m /tmp/map -d captured.tracefile > /tmp/lockup.trace decodes the captured kernel trace, converts addresses to function names and shows the path to the lockup.
Messy to set up the first time but very useful for this sort of problem. Additional reading, Documentation/{serial.console.txt, debugging.txt, ktrace.txt, xkdebug.txt}.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu
| |