2004-06-25 10:47:47

by Matthew Garrett

[permalink] [raw]
Subject: No APIC interrupts after ACPI suspend

If I do an S3 suspend, my machine resumes correctly (Thinkpad X40,
acpi_sleep=s3_bios passed on the command line). If I have the ioapic
enabled, however, I get no interrupts after resume. Hacking in a call to
APIC_init_uniprocessor in the resume path improves things - I get edge
triggered interrupts, but anything flagged as level triggered doesn't
work. How can I get the ioapic fully initialised on resume?
--
Matthew Garrett | [email protected]


2004-06-26 00:05:56

by Hamie

[permalink] [raw]
Subject: Re: No APIC interrupts after ACPI suspend

Matthew Garrett wrote:

>If I do an S3 suspend, my machine resumes correctly (Thinkpad X40,
>acpi_sleep=s3_bios passed on the command line). If I have the ioapic
>enabled, however, I get no interrupts after resume. Hacking in a call to
>APIC_init_uniprocessor in the resume path improves things - I get edge
>triggered interrupts, but anything flagged as level triggered doesn't
>work. How can I get the ioapic fully initialised on resume?
>
>
I have an identical problem with an r50p. But I'm running PIC...
(Because the r50p doesn't seem to do APIC). Not sure if it's identical,
but after resuming, I get maybe 10 seconds of sound, OR 30 odd minutes
of networking (I know... Sounds strange)... Then neither...

H

2004-06-26 16:40:58

by David Eriksson

[permalink] [raw]
Subject: Re: [ACPI] No APIC interrupts after ACPI suspend

On Fri, 2004-06-25 at 12:48, Matthew Garrett wrote:
> If I do an S3 suspend, my machine resumes correctly (Thinkpad X40,
> acpi_sleep=s3_bios passed on the command line). If I have the ioapic
> enabled, however, I get no interrupts after resume. Hacking in a call to
> APIC_init_uniprocessor in the resume path improves things - I get edge
> triggered interrupts, but anything flagged as level triggered doesn't
> work. How can I get the ioapic fully initialised on resume?

Maybe you've found this bug?

http://bugme.osdl.org/show_bug.cgi?id=2643

--
-\- David Eriksson -/- http://www.2GooD.nu

"I personally refuse to use inferior tools because of ideology."
- Linus Torvalds

2004-06-26 18:04:07

by Hamie

[permalink] [raw]
Subject: Re: [ACPI] No APIC interrupts after ACPI suspend

David Eriksson wrote:

>On Fri, 2004-06-25 at 12:48, Matthew Garrett wrote:
>
>
>>If I do an S3 suspend, my machine resumes correctly (Thinkpad X40,
>>acpi_sleep=s3_bios passed on the command line). If I have the ioapic
>>enabled, however, I get no interrupts after resume. Hacking in a call to
>>APIC_init_uniprocessor in the resume path improves things - I get edge
>>triggered interrupts, but anything flagged as level triggered doesn't
>>work. How can I get the ioapic fully initialised on resume?
>>
>>
>
>Maybe you've found this bug?
>
>http://bugme.osdl.org/show_bug.cgi?id=2643
>
>
>
I think you're right... I've applied the patch to 2.6.7, and I'm still
running after a boot-suspend-resume cycle. Hopefully it isn't just a
fluke :)

The original patch seems to have been logged at the time of 2.6.6. Was
it just too late to make 2.6.7? Will it be fixed in 2.6.8?

Thanks.

Hamish.

2004-06-27 16:31:25

by Matthew Garrett

[permalink] [raw]
Subject: Re: [ACPI] No APIC interrupts after ACPI suspend

On Sat, 2004-06-26 at 18:42 +0200, David Eriksson wrote:

> Maybe you've found this bug?
>
> http://bugme.osdl.org/show_bug.cgi?id=2643

Yeah, that one was biting me, but it's not the one causing this bug.
cat /proc/interrupts shows that the ACPI interrupt is correctly set to
level triggered, but the ioapic isn't set up correctly so no interrupts
make it through. The same seems to be true for all other level-triggered
interrupts.

--
Matthew Garrett | [email protected]

2004-06-27 17:58:32

by Hamie

[permalink] [raw]
Subject: Re: [ACPI] No APIC interrupts after ACPI suspend

Hamie wrote:

> David Eriksson wrote:
>
>> On Fri, 2004-06-25 at 12:48, Matthew Garrett wrote:
>>
>>
>>> If I do an S3 suspend, my machine resumes correctly (Thinkpad X40,
>>> acpi_sleep=s3_bios passed on the command line). If I have the ioapic
>>> enabled, however, I get no interrupts after resume. Hacking in a
>>> call to
>>> APIC_init_uniprocessor in the resume path improves things - I get edge
>>> triggered interrupts, but anything flagged as level triggered doesn't
>>> work. How can I get the ioapic fully initialised on resume?
>>>
>>
>>
>> Maybe you've found this bug?
>>
>> http://bugme.osdl.org/show_bug.cgi?id=2643
>>
>>
>>
> I think you're right... I've applied the patch to 2.6.7, and I'm still
> running after a boot-suspend-resume cycle. Hopefully it isn't just a
> fluke :)
>

Nope... A fluke... Mostly...

FWIW the sound & networking appear to run fine for a while after
resuming. But I just started a DVD. It ran fine for about 30 seconds and
then the sound went. About 30 seconds later the video froze and the app
(xine) has frozen also. (kill -9 time...).

restarting xine it runs the viodeo for about 10 secs before freezing
again... With no sound...

Checking /proc/interrupts with juk running (Supposedly playing music)

hamish@ballbreaker:~$ cat /proc/interrupts; sleep 10; cat /proc/interrupts
CPU0
0: 10175817 XT-PIC timer
1: 2077 XT-PIC i8042
2: 0 XT-PIC cascade
5: 169347 XT-PIC Intel 82801DB-ICH4, yenta
8: 4 XT-PIC rtc
9: 49257 XT-PIC acpi
11: 8852 XT-PIC yenta, uhci_hcd, uhci_hcd, uhci_hcd,
ehci_hcd, eth0
12: 110067 XT-PIC i8042
14: 63045 XT-PIC ide0
15: 38071 XT-PIC ide1
NMI: 0
ERR: 0
CPU0
0: 10185825 XT-PIC timer
1: 2077 XT-PIC i8042
2: 0 XT-PIC cascade
5: 169347 XT-PIC Intel 82801DB-ICH4, yenta
8: 4 XT-PIC rtc
9: 49301 XT-PIC acpi
11: 8857 XT-PIC yenta, uhci_hcd, uhci_hcd, uhci_hcd,
ehci_hcd, eth0
12: 110586 XT-PIC i8042
14: 63055 XT-PIC ide0
15: 38071 XT-PIC ide1
NMI: 0
ERR: 0
hamish@ballbreaker:~$ ping 192.158.254.254
PING 192.158.254.254 (192.158.254.254): 56 data bytes
64 bytes from 192.158.254.254: icmp_seq=0 ttl=239 time=191.1 ms
64 bytes from 192.158.254.254: icmp_seq=1 ttl=239 time=188.5 ms


The ethernet does still work though... Maybe it's fixed half the problem...

dmesg shows no errors...

radeonfb: suspending to state: 2...
PM: Entering state.
hwsleep-0304 [42487] acpi_enter_sleep_state: Entering sleep state [S3]
Back to C!
PM: Finishing up.
PCI: Setting latency timer of device 0000:00:1d.0 to 64
PCI: Setting latency timer of device 0000:00:1d.1 to 64
PCI: Setting latency timer of device 0000:00:1d.2 to 64
PCI: Setting latency timer of device 0000:00:1d.7 to 64
PCI: Setting latency timer of device 0000:00:1f.5 to 64
hStart = 1656, hEnd = 1848, hTotal = 2160
vStart = 1202, vEnd = 1205, vTotal = 1250
h_total_disp = 0xc7010d hsync_strt_wid = 0x180670
v_total_disp = 0x4af04e1 vsync_strt_wid = 0x304b1
pixclock = 6172
freq = 16202
lvds_gen_cntl: 000cffa5
radeonfb: resumed !
ACPI: IRQ9 SCI: Edge set to Level Trigger.
Restarting tasks... done
usbcore: registered new driver usbfs
usbcore: registered new driver hub
USB Universal Host Controller Interface driver v2.2
uhci_hcd 0000:00:1d.0: Intel Corp. 82801DB (ICH4) USB UHCI #1
PCI: Setting latency timer of device 0000:00:1d.0 to 64
uhci_hcd 0000:00:1d.0: irq 11, io base 00001800
uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
uhci_hcd 0000:00:1d.1: Intel Corp. 82801DB (ICH4) USB UHCI #2
PCI: Setting latency timer of device 0000:00:1d.1 to 64
uhci_hcd 0000:00:1d.1: irq 11, io base 00001820
uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
uhci_hcd 0000:00:1d.2: Intel Corp. 82801DB (ICH4) USB UHCI #3
PCI: Setting latency timer of device 0000:00:1d.2 to 64
uhci_hcd 0000:00:1d.2: irq 11, io base 00001840
uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
ehci_hcd 0000:00:1d.7: Intel Corp. 82801DB (ICH4) USB2 EHCI Controller
PCI: Setting latency timer of device 0000:00:1d.7 to 64
ehci_hcd 0000:00:1d.7: irq 11, pci mem e1908000
ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 4
PCI: cache line size of 32 is not supported by device 0000:00:1d.7
ehci_hcd 0000:00:1d.7: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 6 ports detected
hw_random: RNG not detected
e1000: Ignoring new-style parameters in presence of obsolete ones
Intel(R) PRO/1000 Network Driver - version 5.2.52-k4
Copyright (c) 1999-2004 Intel Corporation.
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex
hamish@ballbreaker:~$


2004-06-27 18:53:53

by Alexander Gran

[permalink] [raw]
Subject: Re: [ACPI] No APIC interrupts after ACPI suspend

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am Sonntag, 27. Juni 2004 19:57 schrieb Hamie:
> FWIW the sound & networking appear to run fine for a while after
> resuming. But I just started a DVD. It ran fine for about 30 seconds and
> then the sound went. About 30 seconds later the video froze and the app
> (xine) has frozen also. (kill -9 time...).

I can confirm that here:
after resuming, network completely works (yeah!).
Sound doesn't.
unloading/reloading the sound driver does not help.
USB works jumpy (perhaps 5-10hz)
Reloading does the trick for usb.

regards
Alex

- --
Encrypted Mails welcome.
PGP-Key at http://zodiac.dnsalias.org/misc/pgpkey.asc | Key-ID: 0x6D7DD291
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFA3xd5/aHb+2190pERAmTsAJ0Q9iFLAGC6pbMZgTMjlv0BpmSALgCfTOmS
Ye+xHeQfxA/qrcUroQmdmJw=
=oyv2
-----END PGP SIGNATURE-----

2004-06-27 19:17:16

by Hamie

[permalink] [raw]
Subject: Re: [ACPI] No APIC interrupts after ACPI suspend

Alexander Gran wrote:

>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>Am Sonntag, 27. Juni 2004 19:57 schrieb Hamie:
>
>
>>FWIW the sound & networking appear to run fine for a while after
>>resuming. But I just started a DVD. It ran fine for about 30 seconds and
>>then the sound went. About 30 seconds later the video froze and the app
>>(xine) has frozen also. (kill -9 time...).
>>
>>
> <>
> I can confirm that here:
> after resuming, network completely works (yeah!).
> Sound doesn't.
> unloading/reloading the sound driver does not help.
> USB works jumpy (perhaps 5-10hz)
> Reloading does the trick for usb.
>

Since it sounds like a different bug to 2643, (Similiar but the patch
that fixes the ethernet doesn't appear to doa lot for the sound). I've
opened a new one... #2965.

2004-06-27 19:21:25

by Alexander Gran

[permalink] [raw]
Subject: Re: [ACPI] No APIC interrupts after ACPI suspend

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am Sonntag, 27. Juni 2004 20:52 schrieb Alexander Gran:
> Sound doesn't.
> unloading/reloading the sound driver does not help.
> USB works jumpy (perhaps 5-10hz)
> Reloading does the trick for usb.

Oh, sorry. That one was incorrect.
reloading the usb drivers does only help on 2.6.7-mm2 without bk-acpi.patch.

regards
Alex

- --
Encrypted Mails welcome.
PGP-Key at http://zodiac.dnsalias.org/misc/pgpkey.asc | Key-ID: 0x6D7DD291
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFA3x6E/aHb+2190pERAiwgAJ93jDFzhcTUy3MR0M4kHuqvXxIL9gCeIkUt
KGA555USeLuPnYTVKjQJAzk=
=nA8V
-----END PGP SIGNATURE-----

2004-06-27 20:27:32

by Hamie

[permalink] [raw]
Subject: Re: [ACPI] No APIC interrupts after ACPI suspend

Hamie wrote:

> Alexander Gran wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Am Sonntag, 27. Juni 2004 19:57 schrieb Hamie:
>>
>>
>>> FWIW the sound & networking appear to run fine for a while after
>>> resuming. But I just started a DVD. It ran fine for about 30 seconds
>>> and
>>> then the sound went. About 30 seconds later the video froze and the app
>>> (xine) has frozen also. (kill -9 time...).
>>>
>>
>> <>
>> I can confirm that here:
>> after resuming, network completely works (yeah!).
>> Sound doesn't.
>> unloading/reloading the sound driver does not help.
>> USB works jumpy (perhaps 5-10hz)
>> Reloading does the trick for usb.
>>
>
> Since it sounds like a different bug to 2643, (Similiar but the patch
> that fixes the ethernet doesn't appear to doa lot for the sound).
> I've opened a new one... #2965.
>

Seeing as sound was on IRQ5 and the patch for 2643 fixed the ethernet, I added a
(big hack here :) call to

acpi_pic_sci_set_trigger(5, acpi_sci_flags.trigger);

in acpi_pm_finish(u32 state); just after the call to set the IRQ trigger for
the acpi irq...

Results in (kern.log)

Jun 27 21:15:28 ballbreaker kernel: ACPI: IRQ9 SCI: Edge set to Level Trigger.
Jun 27 21:15:28 ballbreaker kernel: ACPI: IRQ5 SCI: Edge set to Level Trigger.


and then sound works after resume... Obviously not a very good fix as it won't
fix anything that uses somethign other than IRQ5.

So... What should the correct fix be? Obviously some IRQ's triggers aren't
surviving the resume... But why... The timer (IRQ 0) obviously does...


2004-06-27 22:06:35

by Karol Kozimor

[permalink] [raw]
Subject: Re: [ACPI] No APIC interrupts after ACPI suspend

Thus wrote Hamie:
> Since it sounds like a different bug to 2643, (Similiar but the patch
> that fixes the ethernet doesn't appear to doa lot for the sound). I've
> opened a new one... #2965.

... which might be similar to http://bugme.osdl.org/show_bug.cgi?id=2752,
except that I don't have the IO-APIC running.

Best regards,

--
Karol 'sziwan' Kozimor
[email protected]