pcmcia resume 60 second hang. Re: [patch 00/69] -stable review
- From: Pavel Machek <pavel@xxxxxx>
- Date: Thu, 24 May 2007 22:04:35 +0200
Hi!
Yeah, but the interesting one is this pair:
events/0 R running 0 4 1 (L-TLB)
sleep.sh D 0000014F 0 5798 5789 (NOTLB)
Call Trace:
[<c01d3c01>] kobject_uevent_env+0x3a1/0x4a0
[<c02d8509>] wait_for_completion+0x79/0xb0
[<c0116640>] default_wake_function+0x0/0x10
[<c0238a08>] _request_firmware+0x1c8/0x310
[<c0238bef>] request_firmware+0xf/0x20
[<e0a35d5d>] pcmcia_bus_match+0x28d/0x3c0 [pcmcia]
[<c02864a7>] netlink_broadcast+0x1f7/0x310
[<c0233d74>] driver_probe_device+0x34/0xc0
[<c02d79ee>] klist_next+0x4e/0xa0
[<c0233014>] bus_for_each_drv+0x44/0x70
[<c0233eba>] device_attach+0x7a/0x80
[<c0233e00>] __device_attach+0x0/0x10
[<c0232f56>] bus_attach_device+0x26/0x60
[<c0231d06>] device_add+0x5e6/0x6e0
[<c01d350f>] kobject_init+0x2f/0x50
[<e0a360f5>] pcmcia_device_add+0x185/0x220 [pcmcia]
[<e0a36261>] pcmcia_card_add+0xa1/0xc0 [pcmcia]
[<e0913900>] ti12xx_power_hook+0x180/0x1d0 [yenta_socket]
[<e0a36300>] ds_event+0x80/0xb0 [pcmcia]
[<e0967359>] send_event+0x39/0x70 [pcmcia_core]
[<e09677b6>] socket_insert+0x86/0xe0 [pcmcia_core]
[<e0967c2b>] pcmcia_socket_dev_resume+0x7b/0x90 [pcmcia_core]
[<c01e135f>] pci_device_resume+0x1f/0x60
[<c023815f>] resume_device+0x5f/0xf0
ie we have a deadlock because resume wants to do that firmware request,
but the event daemon is apparently spinning like mad.
And yes, request_firmware() has a "loading_timeout" in seconds. And
it's 60. So that explains your pause right there!
If someone does request_firmware from resume function... that's
bad. Resume function should be fixed. Pcmcia? ti12xx driver?
It might be some unfortunate interaction with process freezing (my
favorite whipping boy), but it could also be something else. I
suspect
Well. we'd like to present hardware in working state as soon as we
resume (if eth0 was there before resume, it should be there after
resume. not 3 seconds after resume); so if someone needs to load the
firmware, they should just store it in the kernel memory, and load it
during boot or during (very early) suspend.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: pcmcia resume 60 second hang. Re: [patch 00/69] -stable review
- From: Linus Torvalds
- Re: pcmcia resume 60 second hang. Re: [patch 00/69] -stable review
- References:
- [patch 00/69] -stable review
- From: Chris Wright
- Re: [patch 00/69] -stable review
- From: Chuck Ebbert
- Re: [patch 00/69] -stable review
- From: Linus Torvalds
- Re: [patch 00/69] -stable review
- From: Chris Wright
- Re: [patch 00/69] -stable review
- From: Linus Torvalds
- Re: [patch 00/69] -stable review
- From: Romano Giannetti
- Re: [patch 00/69] -stable review
- From: Linus Torvalds
- [patch 00/69] -stable review
- Prev by Date: Linker script cleanup / consolidation
- Next by Date: Re: msi_free_irqs #2
- Previous by thread: Re: [patch 00/69] -stable review
- Next by thread: Re: pcmcia resume 60 second hang. Re: [patch 00/69] -stable review
- Index(es):