* [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
@ 2013-01-29 13:42 Mike Lykov
2013-01-29 15:33 ` Don Zickus
0 siblings, 1 reply; 14+ messages in thread
From: Mike Lykov @ 2013-01-29 13:42 UTC (permalink / raw)
To: Andrew Morton, Don Zickus, Ingo Molnar, Thomas Gleixner
Cc: linux-kernel, linux-watchdog, kirill
Hi all!
I have "embedded" computer, based on DM&P Vortex86DX (like
i486/FPU/600Mhz/256Mb RAM).
I boot it with own builded kernel & own compressed initramfs based on
ALTLinux. When I used initramfs compressed with gzip -9 it worked good.
But now I need downsize initramfs, and try to change gzip -9 to lzma -9,
and encounter a kernel BUG. Maybe it a false positive soft lockup detecting.
I compile kernel with this options:
CONFIG_LOCKUP_DETECTOR=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
gzip-compressed initramfs boot (~9 sec):
[ 0.344173] pci 0000:00:09.0: Firmware left e100 interrupts enabled;
disabling
[ 0.435551] Unpacking initramfs...
[ 8.927297] Freeing initrd memory: 22900k freed
[ 9.059939] platform rtc_cmos: registered platform RTC device (no PNP
device found)
lzma -3 initramfs compressed boot (~ 44 sec)
[ 0.344612] pci 0000:00:09.0: Firmware left e100 interrupts enabled;
disabling
[ 0.437119] Unpacking initramfs...
[ 5.030218] sched: RT throttling activated
[ 44.175427] Freeing initrd memory: 17580k freed
[ 44.278414] platform rtc_cmos: registered platform RTC device (no PNP
device found)
lzma -9 initramfs compressed boot (not finished)
[ 0.437111] Unpacking initramfs...
[ 28.056740] BUG: soft lockup - CPU#0 stuck for 23s! [swapper:1]
[ 28.056740]
[ 28.056740] Pid: 1, comm: swapper Not tainted 3.2.32VEP-01ML5-initramfs
0000017
[ 28.056740] EIP: 0060:[<c03abcbf>] EFLAGS: 00000202 CPU: 0
[ 28.056740] EIP is at unlzma+0x346/0xac0
[ 28.056740] EAX: 0000012f EBX: 00000007 ECX: d481ce6c EDX: 00f70012
[ 28.056740] ESI: 02796020 EDI: 00000100 EBP: ce827f80 ESP: ce827ee8
[ 28.056740] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 28.056740] Process swapper (pid: 1, ti=ce802000 task=ce80b410
task.ti=ce826000)
[ 28.056740] Stack:
[ 28.056740] 1144f698 d481c0a2 00000000 00000003 cf0eb000 000000e8
00000028 cf0eb000
[ 28.056740] 00000003 00000000 0adcda49 00004038 d481ce6c d481c000
d080a000 00000070
[ 28.056740] 00001f00 00000024 ffffffff c03ab896 cfbb37a4 cf0eb000
cffefa0b 00f04a0b
[ 28.056740] Call Trace:
[ 28.056740] [<c03ab896>] ? gunzip+0x25b/0x25b
[ 28.056740] [<c039ed46>] ? initrd_load+0x3b/0x3b
[ 28.056740] [<c03ab979>] ? rc_get_bit+0x7c/0x7c
[ 28.056740] [<c039f211>] unpack_to_rootfs+0x139/0x237
[ 28.056740] [<c039ef53>] ? write_buffer+0x2c/0x2c
[ 28.056740] [<c039ed46>] ? initrd_load+0x3b/0x3b
[ 28.056740] [<c039e791>] ? do_one_initcall+0x112/0x112
[ 28.056740] [<c039f9b4>] populate_rootfs+0x42/0x85
[ 28.056740] [<c039e6ef>] do_one_initcall+0x70/0x112
[ 28.056740] [<c039f972>] ? do_header+0x1d4/0x1d4
[ 28.056740] [<c039e791>] ? do_one_initcall+0x112/0x112
[ 28.056740] [<c039e810>] kernel_init+0x7f/0xf8
[ 28.056740] [<c02eb2b6>] kernel_thread_helper+0x6/0xd
[ 28.056740] Code: 2b 55 ac eb 02 01 c2 39 c2 73 fa 8b 7d a0 8a 04 17 0f
b6 c0 89 45 a8 d1 65 a8 8b 7d a8 8b 45 f0 8b 4d 98 81 e7 00 01 00 00 01
f8 <8d> 94 41 00 02 00 00 8d 4d f0 8d 45 b4 e8 2c fc ff ff 85 c0 74
I cannot find a method to change "watchdog_thresh" parameter
("compile-time initialized to 10 and configurable through sysctl of the
same name") at boot time ( commandline
initrd=initram-alt-p6rel2-9.cpio.lzma console=uart,io,0x240,115200n8
kernel.watchdog_thresh=20 NOT work) and I patch kernel/watchdog.c
directly (by idea of kirill@shutemov.name)
--- watchdog.c-orig 2012-10-17 06:50:15.000000000 +0400
+++ watchdog.c 2013-01-29 16:41:51.695990261 +0400
@@ -28,7 +28,7 @@
#include <linux/perf_event.h>
int watchdog_enabled = 1;
-int __read_mostly watchdog_thresh = 10;
+int __read_mostly watchdog_thresh = 30;
And it DID BOOT (lzma -9 initramfs on kernel with watchdog_thresh = 30):
[ 0.344345] pci 0000:00:09.0: Firmware left e100 interrupts enabled;
disabling
[ 0.436961] Unpacking initramfs...
[ 38.907093] sched: RT throttling activated
[ 41.206994] Freeing initrd memory: 15380k freed
[ 41.298015] platform rtc_cmos: registered platform RTC device (no PNP
device found)
So my questions:
1. Are there a BUG in soft lockup detection mechanizm? Changing
watchdog_thresh to 30 have a side effect in production - D-state
userspace processes will be detected slowly. Are there a need to
detecting soft lockups at boot time? Maybe it need after initramfs boot
only when userspace processes begin to work?
2. How to change watchdog_thresh parameter at boot without patching
sources? If it necessary (with it side effects) maybe implement it as
commandline parameter or config compile time parameter?
With best regards
--
Mike
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-29 13:42 [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu Mike Lykov
@ 2013-01-29 15:33 ` Don Zickus
2013-01-29 17:18 ` anish kumar
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Don Zickus @ 2013-01-29 15:33 UTC (permalink / raw)
To: Mike Lykov
Cc: Andrew Morton, Ingo Molnar, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
Hi Mike,
On Tue, Jan 29, 2013 at 05:42:43PM +0400, Mike Lykov wrote:
>
> So my questions:
>
> 1. Are there a BUG in soft lockup detection mechanizm? Changing
> watchdog_thresh to 30 have a side effect in production - D-state
> userspace processes will be detected slowly. Are there a need to
> detecting soft lockups at boot time? Maybe it need after initramfs
> boot only when userspace processes begin to work?
The softlockup mechanism works scheduling a high priority task that kicks
the softlockups. If the unzip thread is taking too long, it could
accidentally trip the detection.
Seeing that you are running on a 600 MHz machine, it could be possible.
Though I am not entirely sure how the scheduling works for decompressing
the initramfs. I wouldn't think it is that high of a priority.
>
> 2. How to change watchdog_thresh parameter at boot without patching
> sources? If it necessary (with it side effects) maybe implement it
> as commandline parameter or config compile time parameter?
I attached a patch below that allows you to set it a boot time. Let me
know if this works for you, then I can clean it up and post it properly.
Cheers,
Don
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 75a2ab3..e448d63 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -79,6 +79,14 @@ static int __init softlockup_panic_setup(char *str)
}
__setup("softlockup_panic=", softlockup_panic_setup);
+static int __init watchdog_thresh_setup(char *str)
+{
+ watchdog_thresh = simple_strtoul(str, NULL, 0);
+
+ return 1;
+}
+__setup("watchdog_thresh=", watchdog_thresh_setup);
+
static int __init nowatchdog_setup(char *str)
{
watchdog_enabled = 0;
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-29 15:33 ` Don Zickus
@ 2013-01-29 17:18 ` anish kumar
2013-01-30 15:51 ` Don Zickus
2013-01-29 23:59 ` Andrew Morton
2013-01-30 9:39 ` Mike Lykov
2 siblings, 1 reply; 14+ messages in thread
From: anish kumar @ 2013-01-29 17:18 UTC (permalink / raw)
To: Don Zickus
Cc: Mike Lykov, Andrew Morton, Ingo Molnar, Thomas Gleixner,
linux-kernel, linux-watchdog, kirill
On Tue, 2013-01-29 at 10:33 -0500, Don Zickus wrote:
> Hi Mike,
>
> On Tue, Jan 29, 2013 at 05:42:43PM +0400, Mike Lykov wrote:
> >
> > So my questions:
> >
> > 1. Are there a BUG in soft lockup detection mechanizm? Changing
> > watchdog_thresh to 30 have a side effect in production - D-state
> > userspace processes will be detected slowly. Are there a need to
> > detecting soft lockups at boot time? Maybe it need after initramfs
you want to disable it then you can do that with nosoftlockup parameter
in kernel-parameters.
> > boot only when userspace processes begin to work?
If my understanding is correct you can do this as well by enabling
watchdog using sysctl.
>
> The softlockup mechanism works scheduling a high priority task that kicks
> the softlockups. If the unzip thread is taking too long, it could
> accidentally trip the detection.
>
> Seeing that you are running on a 600 MHz machine, it could be possible.
> Though I am not entirely sure how the scheduling works for decompressing
> the initramfs. I wouldn't think it is that high of a priority.
>
> >
> > 2. How to change watchdog_thresh parameter at boot without patching
> > sources? If it necessary (with it side effects) maybe implement it
> > as commandline parameter or config compile time parameter?
>
> I attached a patch below that allows you to set it a boot time. Let me
> know if this works for you, then I can clean it up and post it properly.
>
> Cheers,
> Don
>
>
> diff --git a/kernel/watchdog.c b/kernel/watchdog.c
> index 75a2ab3..e448d63 100644
> --- a/kernel/watchdog.c
> +++ b/kernel/watchdog.c
> @@ -79,6 +79,14 @@ static int __init softlockup_panic_setup(char *str)
> }
> __setup("softlockup_panic=", softlockup_panic_setup);
>
> +static int __init watchdog_thresh_setup(char *str)
> +{
> + watchdog_thresh = simple_strtoul(str, NULL, 0);
> +
> + return 1;
> +}
> +__setup("watchdog_thresh=", watchdog_thresh_setup);
> +
> static int __init nowatchdog_setup(char *str)
> {
> watchdog_enabled = 0;
Sorry for digressing from the topic but I think there is something wrong
with my understanding or something wrong with the code.So I guess Don
can clarify this.
If I pass this below parameter during boot i.e. setting watchdog_enabled
to zero.
__setup("nowatchdog", nowatchdog_setup);
Now I use sysctl to enable the watchdog then wouldn't the below code
will hinder enabling the watchdog?
static void watchdog_enable_all_cpus(void)
{//snip
if (watchdog_disabled) { /* this is zero ?? */
watchdog_disabled = 0;
//snip
}
Should watchdog_disabled be set to 1?Or is it that we always disable the
watchdog and then enable it?
This code is used from long time and that is the reason I am puzzled as
to how it can be wrong?I think there is some missing piece which I am
not understanding.
> --
> 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/
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-29 15:33 ` Don Zickus
2013-01-29 17:18 ` anish kumar
@ 2013-01-29 23:59 ` Andrew Morton
2013-01-31 11:18 ` Ingo Molnar
2013-01-30 9:39 ` Mike Lykov
2 siblings, 1 reply; 14+ messages in thread
From: Andrew Morton @ 2013-01-29 23:59 UTC (permalink / raw)
To: Don Zickus
Cc: Mike Lykov, Ingo Molnar, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
On Tue, 29 Jan 2013 10:33:48 -0500
Don Zickus <dzickus@redhat.com> wrote:
> --- a/kernel/watchdog.c
> +++ b/kernel/watchdog.c
> @@ -79,6 +79,14 @@ static int __init softlockup_panic_setup(char *str)
> }
> __setup("softlockup_panic=", softlockup_panic_setup);
>
> +static int __init watchdog_thresh_setup(char *str)
> +{
> + watchdog_thresh = simple_strtoul(str, NULL, 0);
> +
> + return 1;
> +}
> +__setup("watchdog_thresh=", watchdog_thresh_setup);
I wonder if there's some magical way in which we can set any sysctl
from the kernel command line. Add sys.vm.min_free_kbytes=42 to the
command line, walk the hierarchy late in boot...
To address Mike's bug I suggest we poke a touch_softlockup_watchdog()
into the appropriate place. Presumably the loop in
lib/decompress_unlzma.c:unlzma(). The decompress code makes me cry.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-29 15:33 ` Don Zickus
2013-01-29 17:18 ` anish kumar
2013-01-29 23:59 ` Andrew Morton
@ 2013-01-30 9:39 ` Mike Lykov
2013-01-30 15:40 ` Don Zickus
2 siblings, 1 reply; 14+ messages in thread
From: Mike Lykov @ 2013-01-30 9:39 UTC (permalink / raw)
To: Don Zickus
Cc: Andrew Morton, Ingo Molnar, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
29.01.2013 19:33, Don Zickus пишет:
> The softlockup mechanism works scheduling a high priority task that kicks
> the softlockups. If the unzip thread is taking too long, it could
> accidentally trip the detection.
Inyerestingly, that a decompress of lzma -4 takes longer time than
decompress lzma -9, and it stated in man lzma(1):
" On the same hardware, the decompression speed is approximately a
constant number of bytes of compressed data per second. In other words,
the better the compression, the faster the decompression
will usually be. "
I tested it on target computer by hand:
lzma -4 compressed: time unlzma initram-alt-p6rel3-4.cpio.lzma
20.94user 1.47system 0:22:45elapsed 99%CPU (...19424maxresidents)k
lzma -9 compressed: time unlzma initram-alt-p6rel3-9.cpio.lzma
19.49user 1.92system 0:21:44elapsed 99%CPU (...241488maxresidents)k
So, it cannot "take too long" because not-working faster than working.
Apparently time not matter, but algorithm complexity?
>> 2. How to change watchdog_thresh parameter at boot without patching
>> sources? If it necessary (with it side effects) maybe implement it
>> as commandline parameter or config compile time parameter?
>
> I attached a patch below that allows you to set it a boot time. Let me
> know if this works for you, then I can clean it up and post it properly.
It not works for me. I apply this patch, build, use ("int __read_mostly
watchdog_thresh = 10;" as in original)
command line:
[ 0.000000] Kernel command line:
initrd=initram-alt-p6rel3-9.cpio.lzma console=uart,io,0x240,115200n8
kernel.watchdog_thresh=30 BOOT_IMAGE=bzImage-3232-ml5-fwinkrn-wtdg10cmd
Full list of panic:
[ 28.057086] BUG: soft lockup - CPU#0 stuck for 23s! [swapper:1]
[ 28.057086]
[ 28.057086] Pid: 1, comm: swapper Not tainted
3.2.32VEP-01ML5-initramfs #19
[ 28.057086] EIP: 0060:[<c03ab92f>] EFLAGS: 00000212 CPU: 0
[ 28.057086] EIP is at rc_get_bit+0x1a/0x7c
[ 28.057086] EAX: ce827f34 EBX: ce827f34 ECX: ce827f70 EDX: d481f926
[ 28.057086] ESI: d481f926 EDI: ce827f70 EBP: ce827ee0 ESP: ce827ed4
[ 28.057086] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 28.057086] Process swapper (pid: 1, ti=ce802000 task=ce80b410
task.ti=ce826000)
[ 28.057086] Stack:
[ 28.057086] 00000001 02857802 d481f86c ce827f80 c03abd13 0b60a3e6
d481c666 00000000
[ 28.057086] 00000003 cf0ea000 00000183 004f1e0a cf0ea000 00000003
00000000 00e584dd
[ 28.057086] 009c2509 d481f86c d481c000 d080a000 00000012 00000002
000003dd ffffffff
[ 28.057086] Call Trace:
[ 28.057086] [<c03abd13>] unlzma+0x382/0xac0
[ 28.057086] [<c03ab8ae>] ? gunzip+0x25b/0x25b
[ 28.057086] [<c039ed46>] ? initrd_load+0x3b/0x3b
[ 28.057086] [<c03ab991>] ? rc_get_bit+0x7c/0x7c
[ 28.057086] [<c039f211>] unpack_to_rootfs+0x139/0x237
[ 28.057086] [<c039ef53>] ? write_buffer+0x2c/0x2c
[ 28.057086] [<c039ed46>] ? initrd_load+0x3b/0x3b
[ 28.057086] [<c039e791>] ? do_one_initcall+0x112/0x112
[ 28.057086] [<c039f9b4>] populate_rootfs+0x42/0x85
[ 28.057086] [<c039e6ef>] do_one_initcall+0x70/0x112
[ 28.057086] [<c039f972>] ? do_header+0x1d4/0x1d4
[ 28.057086] [<c039e791>] ? do_one_initcall+0x112/0x112
[ 28.057086] [<c039e810>] kernel_init+0x7f/0xf8
[ 28.057086] [<c02eb2b6>] kernel_thread_helper+0x6/0xd
[ 28.057086] Code: b6 01 41 c1 e2 08 89 4b 04 09 d0 89 43 14 5b 5d c3
55 89 e5 57 89 cf 56 89 d6 53 89 c3 81 78 18 ff ff ff 00 77 05 e8 b5 ff
ff ff <8b> 4b 18 0f b7 06 89 ca c1 ea 0b 0f af c2 8b 53 14 39 c2 89 43
[ 28.057086] Call Trace:
[ 28.057086] [<c03abd13>] unlzma+0x382/0xac0
[ 28.057086] [<c03ab8ae>] ? gunzip+0x25b/0x25b
[ 28.057086] [<c039ed46>] ? initrd_load+0x3b/0x3b
[ 28.057086] [<c03ab991>] ? rc_get_bit+0x7c/0x7c
[ 28.057086] [<c039f211>] unpack_to_rootfs+0x139/0x237
[ 28.057086] [<c039ef53>] ? write_buffer+0x2c/0x2c
[ 28.057086] [<c039ed46>] ? initrd_load+0x3b/0x3b
[ 28.057086] [<c039e791>] ? do_one_initcall+0x112/0x112
[ 28.057086] [<c039f9b4>] populate_rootfs+0x42/0x85
[ 28.057086] [<c039e6ef>] do_one_initcall+0x70/0x112
[ 28.057086] [<c039f972>] ? do_header+0x1d4/0x1d4
[ 28.057086] [<c039e791>] ? do_one_initcall+0x112/0x112
[ 28.057086] [<c039e810>] kernel_init+0x7f/0xf8
[ 28.057086] [<c02eb2b6>] kernel_thread_helper+0x6/0xd
[ 28.057086] Kernel panic - not syncing: softlockup: hung tasks
[ 28.057086] Pid: 1, comm: swapper Not tainted
3.2.32VEP-01ML5-initramfs #19
[ 28.057086] Call Trace:
[ 28.057086] [<c02e91c4>] ? printk+0xf/0x11
[ 28.057086] [<c02e90c0>] panic+0x50/0x145
[ 28.057086] [<c012fa9b>] watchdog_timer_fn+0xf2/0x10f
[ 28.057086] [<c0124ae0>] hrtimer_run_queues+0x13d/0x1bc
[ 28.057086] [<c01193cf>] run_local_timers+0x8/0x14
[ 28.057086] [<c01193f6>] update_process_times+0x1b/0x4e
[ 28.057086] [<c012b6d2>] tick_periodic.clone.20+0x52/0x54
[ 28.057086] [<c012b6e1>] tick_handle_periodic+0xd/0x5b
[ 28.057086] [<c010339f>] timer_interrupt+0x13/0x1a
[ 28.057086] [<c013032b>] handle_irq_event_percpu+0x24/0xfb
[ 28.057086] [<c0131a80>] ? handle_simple_irq+0x3f/0x3f
[ 28.057086] [<c013041e>] handle_irq_event+0x1c/0x26
[ 28.057086] [<c0131aeb>] handle_level_irq+0x6b/0x75
[ 28.057086] <IRQ> [<c0102f62>] ? do_IRQ+0x34/0x74
[ 28.057086] [<c02eb2a9>] ? common_interrupt+0x29/0x30
[ 28.057086] [<c03ab92f>] ? rc_get_bit+0x1a/0x7c
[ 28.057086] [<c03abd13>] ? unlzma+0x382/0xac0
[ 28.057086] [<c03ab8ae>] ? gunzip+0x25b/0x25b
[ 28.057086] [<c039ed46>] ? initrd_load+0x3b/0x3b
[ 28.057086] [<c03ab991>] ? rc_get_bit+0x7c/0x7c
[ 28.057086] [<c039f211>] ? unpack_to_rootfs+0x139/0x237
[ 28.057086] [<c039ef53>] ? write_buffer+0x2c/0x2c
[ 28.057086] [<c039ed46>] ? initrd_load+0x3b/0x3b
[ 28.057086] [<c039e791>] ? do_one_initcall+0x112/0x112
[ 28.057086] [<c039f9b4>] ? populate_rootfs+0x42/0x85
[ 28.057086] [<c039e6ef>] ? do_one_initcall+0x70/0x112
[ 28.057086] [<c039f972>] ? do_header+0x1d4/0x1d4
[ 28.057086] [<c039e791>] ? do_one_initcall+0x112/0x112
[ 28.057086] [<c039e810>] ? kernel_init+0x7f/0xf8
[ 28.057086] [<c02eb2b6>] ? kernel_thread_helper+0x6/0xd
> diff --git a/kernel/watchdog.c b/kernel/watchdog.c
> index 75a2ab3..e448d63 100644
> --- a/kernel/watchdog.c
> +++ b/kernel/watchdog.c
> @@ -79,6 +79,14 @@ static int __init softlockup_panic_setup(char *str)
> }
> __setup("softlockup_panic=", softlockup_panic_setup);
>
> +static int __init watchdog_thresh_setup(char *str)
> +{
> + watchdog_thresh = simple_strtoul(str, NULL, 0);
> +
> + return 1;
> +}
> +__setup("watchdog_thresh=", watchdog_thresh_setup);
> +
> static int __init nowatchdog_setup(char *str)
> {
> watchdog_enabled = 0;
--
Mike
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-30 9:39 ` Mike Lykov
@ 2013-01-30 15:40 ` Don Zickus
2013-01-31 11:21 ` Mike Lykov
0 siblings, 1 reply; 14+ messages in thread
From: Don Zickus @ 2013-01-30 15:40 UTC (permalink / raw)
To: Mike Lykov
Cc: Andrew Morton, Ingo Molnar, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
On Wed, Jan 30, 2013 at 01:39:23PM +0400, Mike Lykov wrote:
> 29.01.2013 19:33, Don Zickus пишет:
>
> >The softlockup mechanism works scheduling a high priority task that kicks
> >the softlockups. If the unzip thread is taking too long, it could
> >accidentally trip the detection.
>
> Inyerestingly, that a decompress of lzma -4 takes longer time than
> decompress lzma -9, and it stated in man lzma(1):
> " On the same hardware, the decompression speed is approximately
> a constant number of bytes of compressed data per second. In other
> words, the better the compression, the faster the decompression
> will usually be. "
>
> I tested it on target computer by hand:
>
> lzma -4 compressed: time unlzma initram-alt-p6rel3-4.cpio.lzma
> 20.94user 1.47system 0:22:45elapsed 99%CPU (...19424maxresidents)k
>
> lzma -9 compressed: time unlzma initram-alt-p6rel3-9.cpio.lzma
> 19.49user 1.92system 0:21:44elapsed 99%CPU (...241488maxresidents)k
>
> So, it cannot "take too long" because not-working faster than working.
> Apparently time not matter, but algorithm complexity?
>
> >>2. How to change watchdog_thresh parameter at boot without patching
> >>sources? If it necessary (with it side effects) maybe implement it
> >>as commandline parameter or config compile time parameter?
> >
> >I attached a patch below that allows you to set it a boot time. Let me
> >know if this works for you, then I can clean it up and post it properly.
>
> It not works for me. I apply this patch, build, use ("int
> __read_mostly watchdog_thresh = 10;" as in original)
> command line:
>
> [ 0.000000] Kernel command line:
> initrd=initram-alt-p6rel3-9.cpio.lzma console=uart,io,0x240,115200n8
> kernel.watchdog_thresh=30
I have never seen usage like 'kernel.watchdog_thresh=30'. Could you try
'watchdog_thresh=30' instead?
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.
Cheers,
Don
diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
index 32adb73..313f4fa 100644
--- a/lib/decompress_unlzma.c
+++ b/lib/decompress_unlzma.c
@@ -36,6 +36,7 @@
#endif /* STATIC */
#include <linux/decompress/mm.h>
+#include <linux/nmi.h>
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
@@ -648,6 +649,7 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len,
}
if (rc.buffer_size <= 0)
goto exit_3;
+ touch_softlockup_watchdog();
}
if (posp)
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-29 17:18 ` anish kumar
@ 2013-01-30 15:51 ` Don Zickus
2013-01-30 15:59 ` anish kumar
0 siblings, 1 reply; 14+ messages in thread
From: Don Zickus @ 2013-01-30 15:51 UTC (permalink / raw)
To: anish kumar
Cc: Mike Lykov, Andrew Morton, Ingo Molnar, Thomas Gleixner,
linux-kernel, linux-watchdog, kirill
On Tue, Jan 29, 2013 at 10:48:27PM +0530, anish kumar wrote:
> Sorry for digressing from the topic but I think there is something wrong
> with my understanding or something wrong with the code.So I guess Don
> can clarify this.
> If I pass this below parameter during boot i.e. setting watchdog_enabled
> to zero.
> __setup("nowatchdog", nowatchdog_setup);
>
> Now I use sysctl to enable the watchdog then wouldn't the below code
> will hinder enabling the watchdog?
>
> static void watchdog_enable_all_cpus(void)
> {//snip
> if (watchdog_disabled) { /* this is zero ?? */
> watchdog_disabled = 0;
> //snip
> }
>
> Should watchdog_disabled be set to 1?Or is it that we always disable the
> watchdog and then enable it?
It seems like a bug, so does something like this fix it? There is
probably a better way to handle the internal representation of the
watchdog state (watchdog_disable) and the procfs version
(watchdog_enable), but I just can't think of something right now. :-(
Cheers,
Don
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 75a2ab3..d287726 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -82,6 +82,7 @@ __setup("softlockup_panic=", softlockup_panic_setup);
static int __init nowatchdog_setup(char *str)
{
watchdog_enabled = 0;
+ watchdog_disabled =1;
return 1;
}
__setup("nowatchdog", nowatchdog_setup);
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-30 15:51 ` Don Zickus
@ 2013-01-30 15:59 ` anish kumar
0 siblings, 0 replies; 14+ messages in thread
From: anish kumar @ 2013-01-30 15:59 UTC (permalink / raw)
To: Don Zickus
Cc: Mike Lykov, Andrew Morton, Ingo Molnar, Thomas Gleixner,
linux-kernel, linux-watchdog, kirill
On Wed, 2013-01-30 at 10:51 -0500, Don Zickus wrote:
> On Tue, Jan 29, 2013 at 10:48:27PM +0530, anish kumar wrote:
> > Sorry for digressing from the topic but I think there is something wrong
> > with my understanding or something wrong with the code.So I guess Don
> > can clarify this.
> > If I pass this below parameter during boot i.e. setting watchdog_enabled
> > to zero.
> > __setup("nowatchdog", nowatchdog_setup);
> >
> > Now I use sysctl to enable the watchdog then wouldn't the below code
> > will hinder enabling the watchdog?
> >
> > static void watchdog_enable_all_cpus(void)
> > {//snip
> > if (watchdog_disabled) { /* this is zero ?? */
> > watchdog_disabled = 0;
> > //snip
> > }
> >
> > Should watchdog_disabled be set to 1?Or is it that we always disable the
> > watchdog and then enable it?
>
> It seems like a bug, so does something like this fix it? There is
> probably a better way to handle the internal representation of the
> watchdog state (watchdog_disable) and the procfs version
> (watchdog_enable), but I just can't think of something right now. :-(
>
> Cheers,
> Don
>
>
> diff --git a/kernel/watchdog.c b/kernel/watchdog.c
> index 75a2ab3..d287726 100644
> --- a/kernel/watchdog.c
> +++ b/kernel/watchdog.c
> @@ -82,6 +82,7 @@ __setup("softlockup_panic=", softlockup_panic_setup);
> static int __init nowatchdog_setup(char *str)
> {
> watchdog_enabled = 0;
> + watchdog_disabled =1;
I don't know if this will work or not but while going through the code I
spotted this.I will think of something better if I couldn't think of
anything better than anyway we have this patch.
> return 1;
> }
> __setup("nowatchdog", nowatchdog_setup);
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-29 23:59 ` Andrew Morton
@ 2013-01-31 11:18 ` Ingo Molnar
0 siblings, 0 replies; 14+ messages in thread
From: Ingo Molnar @ 2013-01-31 11:18 UTC (permalink / raw)
To: Andrew Morton
Cc: Don Zickus, Mike Lykov, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
* Andrew Morton <akpm@linux-foundation.org> wrote:
> On Tue, 29 Jan 2013 10:33:48 -0500
> Don Zickus <dzickus@redhat.com> wrote:
>
> > --- a/kernel/watchdog.c
> > +++ b/kernel/watchdog.c
> > @@ -79,6 +79,14 @@ static int __init softlockup_panic_setup(char *str)
> > }
> > __setup("softlockup_panic=", softlockup_panic_setup);
> >
> > +static int __init watchdog_thresh_setup(char *str)
> > +{
> > + watchdog_thresh = simple_strtoul(str, NULL, 0);
> > +
> > + return 1;
> > +}
> > +__setup("watchdog_thresh=", watchdog_thresh_setup);
>
> I wonder if there's some magical way in which we can set any
> sysctl from the kernel command line. Add
> sys.vm.min_free_kbytes=42 to the command line, walk the
> hierarchy late in boot...
A facility like that would be totally awesome - we could remove
a lot of duplicated and outright inconsistent (often missing)
__setup() hackery that way.
Single source of information and all that.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-30 15:40 ` Don Zickus
@ 2013-01-31 11:21 ` Mike Lykov
2013-01-31 14:46 ` Don Zickus
0 siblings, 1 reply; 14+ messages in thread
From: Mike Lykov @ 2013-01-31 11:21 UTC (permalink / raw)
To: Don Zickus
Cc: Andrew Morton, Ingo Molnar, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
30.01.2013 19:40, Don Zickus пишет:
> I have never seen usage like 'kernel.watchdog_thresh=30'. Could you try
> 'watchdog_thresh=30' instead?
Ok. "kernel.watchdog_thresh=30" is a sysctl presentation, i mixed them
wrongly.
Your patch about cmd support for 'watchdog_thresh=30' working. I tested
it: parameter applies and lzma -9 initramfs loading successfully.
If I delete parameter from cmdline - same kernel not boot.
> 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'
---
Mike
>
> Cheers,
> Don
>
> diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
> index 32adb73..313f4fa 100644
> --- a/lib/decompress_unlzma.c
> +++ b/lib/decompress_unlzma.c
> @@ -36,6 +36,7 @@
> #endif /* STATIC */
>
> #include<linux/decompress/mm.h>
> +#include<linux/nmi.h>
>
> #define MIN(a, b) (((a)< (b)) ? (a) : (b))
>
> @@ -648,6 +649,7 @@ STATIC inline int INIT unlzma(unsigned char *buf,
int in_len,
> }
> if (rc.buffer_size<= 0)
> goto exit_3;
> + touch_softlockup_watchdog();
> }
>
> if (posp)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-31 11:21 ` Mike Lykov
@ 2013-01-31 14:46 ` Don Zickus
2013-02-01 10:44 ` Mike Lykov
0 siblings, 1 reply; 14+ messages in thread
From: Don Zickus @ 2013-01-31 14:46 UTC (permalink / raw)
To: Mike Lykov
Cc: Andrew Morton, Ingo Molnar, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
On Thu, Jan 31, 2013 at 03:21:02PM +0400, Mike Lykov wrote:
>
> 30.01.2013 19:40, Don Zickus пишет:
> > I have never seen usage like 'kernel.watchdog_thresh=30'. Could you try
> > 'watchdog_thresh=30' instead?
>
> Ok. "kernel.watchdog_thresh=30" is a sysctl presentation, i mixed
> them wrongly.
>
> Your patch about cmd support for 'watchdog_thresh=30' working. I
> tested it: parameter applies and lzma -9 initramfs loading
> successfully.
> If I delete parameter from cmdline - same kernel not boot.
Good to know.
>
> > 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.
Cheers,
Don
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-01-31 14:46 ` Don Zickus
@ 2013-02-01 10:44 ` Mike Lykov
2013-02-01 15:59 ` Don Zickus
0 siblings, 1 reply; 14+ messages in thread
From: Mike Lykov @ 2013-02-01 10:44 UTC (permalink / raw)
To: Don Zickus
Cc: Andrew Morton, Ingo Molnar, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
[-- Attachment #1: Type: text/plain, Size: 4105 bytes --]
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 #2: config.lzma --]
[-- Type: application/x-lzma, Size: 9636 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-02-01 10:44 ` Mike Lykov
@ 2013-02-01 15:59 ` Don Zickus
2013-02-01 16:43 ` Mike Lykov
0 siblings, 1 reply; 14+ messages in thread
From: Don Zickus @ 2013-02-01 15:59 UTC (permalink / raw)
To: Mike Lykov
Cc: Andrew Morton, Ingo Molnar, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
On Fri, Feb 01, 2013 at 02:44:43PM +0400, Mike Lykov wrote:
> 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;
Hmm, that seems to make sense. I was expecting that problem to pop up on
my end but didn't see. I just asusmed the boot code didn't use that
decompressor.
Though I am not sure why that is leading to your other PATA problems
below. Did you have similar problems when you used other decompression
levels? I am not sure how to explain the differences.
Cheers,
Don
>
> 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
>
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu
2013-02-01 15:59 ` Don Zickus
@ 2013-02-01 16:43 ` Mike Lykov
0 siblings, 0 replies; 14+ messages in thread
From: Mike Lykov @ 2013-02-01 16:43 UTC (permalink / raw)
To: Don Zickus
Cc: Andrew Morton, Ingo Molnar, Thomas Gleixner, linux-kernel,
linux-watchdog, kirill
01.02.2013 19:59, Don Zickus пишет:
> Hmm, that seems to make sense. I was expecting that problem to pop up on
> my end but didn't see. I just asusmed the boot code didn't use that
> decompressor.
Can you accumulate all our discussion and create one right-coded,
kernelcode-styled patch?
> Though I am not sure why that is leading to your other PATA problems
> below. Did you have similar problems when you used other decompression
> levels?
In past - no. But I not test this last kernel variant with other level.
> I am not sure how to explain the differences.
I think this is similar as decompress:
Kernel stop and wait next try in "default_idle()" for 20-30 sec, and in
this moment softlockup detector panics ;)
But without patch for touch_softlockup_watchdog in
decompress_unlzma+misc.c it works (try, fail, pause, try, fail, go on).
--
Mike
Sapienti sat.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-02-01 16:43 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-29 13:42 [BUG?] false positive in soft lockup detector while unlzma initramfs on slow cpu Mike Lykov
2013-01-29 15:33 ` Don Zickus
2013-01-29 17:18 ` anish kumar
2013-01-30 15:51 ` Don Zickus
2013-01-30 15:59 ` anish kumar
2013-01-29 23:59 ` Andrew Morton
2013-01-31 11:18 ` Ingo Molnar
2013-01-30 9:39 ` Mike Lykov
2013-01-30 15:40 ` Don Zickus
2013-01-31 11:21 ` Mike Lykov
2013-01-31 14:46 ` Don Zickus
2013-02-01 10:44 ` Mike Lykov
2013-02-01 15:59 ` Don Zickus
2013-02-01 16:43 ` Mike Lykov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).