Bug 1171
Summary: | Boot hang - ThinkPad T40 | ||
---|---|---|---|
Product: | ACPI | Reporter: | Jon Lech Johansen (jon) |
Component: | Config-Other | Assignee: | Shaohua (shaohua.li) |
Status: | REJECTED DUPLICATE | ||
Severity: | blocking | CC: | acpi-bugzilla, anil.s.keshavamurthy, lenb, phillim2, shaohua.li |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.0-test4 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
kernel .config
My SMP config file without hang serial-line console capture of the failure GPE context error patch a proposed patch for this error patch for this error patch against 2.4 updated patch for 2.6 updated patch for 2.4 |
Description
Jon Lech Johansen
2003-09-01 11:26:47 UTC
After recompiling without CONFIG_X86_LOCAL_APIC and CONFIG_X86_IO_APIC, the system now boots successfully. Would you please post .config that was used for building kernel that exhibits hang problem? Created attachment 804 [details]
kernel .config
I test it. And find that system can boot with SMP off, regardless of LOCAL_APIC or IO_APIC option. This a UP, so I think the root reason is that your config file open SMP on. Created attachment 897 [details]
My SMP config file without hang
I tried your config with 2.6.0-test5 kernel on T23. Boot hang right after
message
"Linux Plug and Play Support v0.97 (c) Adam Belay". But the attached config
works for me on T23. Would you have it a try? I think it could be a config
problem. Thanks a lot.
Created attachment 913 [details]
serial-line console capture of the failure
Created attachment 914 [details]
GPE context error patch
Please try this workaround patch. With this patch my T40 can boot with SMP on.
I will continue to invistigate the problem and give a more reasonable solution.
The comment in the patch explaind what it did.
With Luming's config file, my T40 boots successfully. My T40 boots successfully with this config file as well: http://nanocrew.net/linux/t40/config2 However, if I enable CONFIG_ACPI_DEBUG in config2, the hang occurs. With Shaohua's workaround patch, the hang does not occur. Created attachment 1282 [details]
a proposed patch for this error
previous is error. and now the new patch has passed in IBM T40 and ASUS M2400.
please try it. it's against 2.6-test7. Thanks
Created attachment 1297 [details]
patch for this error
updated patch for the error.
Created attachment 1329 [details]
patch against 2.4
With the new patch, 2.6-test8 boots successfully. *** Bug 823 has been marked as a duplicate of this bug. *** *** Bug 1997 has been marked as a duplicate of this bug. *** hi with kernel-2.4.26-pre6 + acpi-20040326-2.4.26.diff.gz + this patch against 2.4 (http://bugme.osdl.org/show_bug.cgi?id=1171#c11) hangs my laptop after 5 minutes of up time. without this patch, laptop runs ok. thanks Created attachment 2447 [details]
updated patch for 2.6
Created attachment 2448 [details]
updated patch for 2.4
hi with kernel-2.4.26-pre6 + acpi-20040326-2.4.26.diff.gz + this updated patch against 2.4 laptop runs ok, at least fisrt 51 min :). btw with also patch from bug http://bugme.osdl.org/show_bug.cgi?id=1690 referenced by BERNARD S I was taking a look at the proposed patch and in acpi_os_wait_events_complete () function, if multiple threads call this function, then in each of those thread we try to execute acpi_do_task_queue() which in turn removes an item from the queue and starts executing. There are two problems doing this. 1) We are trying to execute the queued function from the thread which called acpi_os_wait_events_complete. This thread could be very well a user mode thread and we are trying to execute the queued function from this thread and not from keventd thread. This might have a bad behaviors. 2) Since multiple thread calling acpi_os_wait_events_complete() try to execute the queued function, if another thread calls acpi_os_wait_events_complete( *contxt), that context could be in the process of execution from another thread and we simply return without waiting for that function to complete there by violating what we were suppose to do, i.e wait till the context function completes. I would strongly suggest to take a look at this fix again. -Anil Anil, I just remembered that why I let 'acpi_os_wait_events_complete' executed not in keventd is the function may be called before keventd is initialized in 2.4 kernel. But if ACPI has itself queue as you did in Bug 2515, it will not occur. |