Re: [BUG?] false positive in soft lockup detector while unlzma initramfson slow cpu

From: Mike Lykov
Date: Fri Feb 01 2013 - 05:52:37 EST


31.01.2013 18:46, Don Zickus ÐÐÑÐÑ:

I also attached another patch as suggested by Andrew to add a
touch_softlockup_watchdog in the unlzma routine. Probably makes things
run a little slower. Compiled tested only.

In my case (3.2.32) it cannot compile:

LD arch/x86/boot/compressed/vmlinux
arch/x86/boot/compressed/misc.o: In function `decompress_kernel':
misc.c:(.text+0x993): undefined reference to `touch_softlockup_watchdog'

I think Andrew's suggestion is a better approach which is add the
touch_softlockup_watchdog. So I would have to see you .config file to
understand the compile warning.

Attached lzma-compressed .config with this letter.

Kirill@ advices me to insert some stub to success compile:

--- arch/x86/boot/compressed/misc.c-orig 2013-01-30 15:23:41.639993355 +0400
+++ arch/x86/boot/compressed/misc.c 2013-01-30 15:09:24.647993671 +0400
@@ -147,6 +147,10 @@
#include "../../../../lib/decompress_unlzo.c"
#endif

+void touch_softlockup_watchdog()
+{
+}
+
static void scroll(void)
{
int i;

And then really compile and boot. But... another problem arises.
On that motherboard (http://www.fastwel.com/products/433089/433197/433198/433223.html), by accident, soldered NAND-flash module and kernel pata driver don't recognize it (and it not needed now).
(pata_rdc, needed to built-in IDE interface, and it works with IDE).

But it try to request it, wait for ~30sec, request again, fail, and go on further booting.
Looks like:
Apr 11 18:18:49 vep01 kernel: [ 9.515104] ata1.01: CFA: 1024MB ATA Flash Disk, ADBA408J, max MWDMA2
...
Apr 11 18:18:50 vep01 kernel: [ 9.673242] sd 0:0:1:0: [sdb] 2001888 512-byte logical blocks: (1.02 GB/977 MiB)
...
Apr 11 18:18:50 vep01 kernel: [ 40.058092] ata1: lost interrupt (Status 0x58)
Apr 11 18:18:50 vep01 kernel: [ 40.113062] ata1.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
Apr 11 18:18:50 vep01 kernel: [ 40.120401] ata1.01: failed command: READ DMA
Apr 11 18:18:50 vep01 kernel: [ 40.372722] ata1.01: device reported invalid CHS sector 0

And so.. if i not patch touch_softlockup_watchdog as above - it boot on this stage. If i patch it (your patch + as above to compile) - it catch softlockup at requesting that flash and waiting (request flash going after usb hid load usually)

[ 42.591095] input: HID 04f3:0103 as /devices/pci0000:00/0000:00:0a.0/usb3/3-2/3-2:1.1/input/input2
[ 42.601428] generic-usb 0003:04F3:0103.0002: input: USB HID v1.10 Device [HID 04f3:0103] on usb-0000:00:0a.0-2/input1
[ 68.064357] BUG: soft lockup - CPU#0 stuck for 22s! [swapper:0]
[ 68.064357]
[ 68.064357] Pid: 0, comm: swapper Not tainted 3.2.32VEP-01ML5-initramfs 0000020
[ 68.064357] EIP: 0060:[<c0106009>] EFLAGS: 00000246 CPU: 0
[ 68.064357] EIP is at default_idle+0x29/0x3e
[ 68.064357] EAX: 00000000 EBX: c03b9118 ECX: 00000000 EDX: c0380300
[ 68.064357] ESI: 0003e800 EDI: c037c000 EBP: c037bfc0 ESP: c037bfc0
[ 68.064357] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 68.064357] Process swapper (pid: 0, ti=ce802000 task=c0380300 task.ti=c037a000)
[ 68.064357] Stack:
[ 68.064357] c037bfc8 c0101413 c037bfd0 c02e385e c037bfe0 c039e67a c03b9118 0fff0000
[ 68.064357] c037bff8 c039e0b0 0f0ee000 00000000 00000000 0003e800 00605003 00000000
[ 68.064357] Call Trace:
[ 68.064357] [<c0101413>] cpu_idle+0x21/0x36
[ 68.064357] [<c02e385e>] rest_init+0x52/0x54
[ 68.064357] [<c039e67a>] start_kernel+0x26b/0x270
[ 68.064357] [<c039e0b0>] i386_start_kernel+0xb0/0xb7
[ 68.064357] Code: 5d c3 83 3d 98 b6 3c c0 00 55 89 e5 75 2d 80 3d c5 b3 39 c0 00 74 24 89 e0 25 00 e0 ff ff 83 60 0c fb 8b 40 08 a8 08 75 04 fb f4 <eb> 01 fb 89 e0 25 00 e0 ff ff 83 48 0c 04 eb 03 fb f3 90 5d c3
[ 68.064357] Call Trace:
[ 68.064357] [<c0101413>] cpu_idle+0x21/0x36
[ 68.064357] [<c02e385e>] rest_init+0x52/0x54
[ 68.064357] [<c039e67a>] start_kernel+0x26b/0x270
[ 68.064357] [<c039e0b0>] i386_start_kernel+0xb0/0xb7
[ 68.064357] Kernel panic - not syncing: softlockup: hung tasks


So I do not know to do with it, someone else will pay attention to it.



---
Mike



Attachment: config.lzma
Description: application/lzma