Bug 7077

Summary: SIS630: Old IDE driver does not support swsusp
Product: Power Management Reporter: Patrizio Bassi (patrizio.bassi)
Component: Hibernation/SuspendAssignee: Rafael J. Wysocki (rjwysocki)
Status: CLOSED CODE_FIX    
Severity: normal CC: bzolnier, lenb, pavel, protasnb, rjwysocki, rui.zhang, vojtech, yakui.zhao
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.21.x Subsystem:
Regression: No Bisected commit-id:
Bug Depends on:    
Bug Blocks: 7216    
Attachments: the kernel panic with 2.6.18-rc5-git1
config file
sis5513-add-proper-pci-pm-support.patch

Description Patrizio Bassi 2006-08-30 02:55:54 UTC
when i try to suspend my notebook i have problems with ide controller.
the copy lasts a lot and i get oops with 2.6.17 kernel.


Stopping tasks: ==========================================|
Shrinking memory... done (22776 pages freed)
pnp: Device 00:08 disabled.
swsusp: Need to copy 30898 pages
ACPI: PCI Interrupt 0000:00:00.1[A]: no GSI - using IRQ 14
eth0: Media Link Off
ACPI: PCI Interrupt 0000:00: 01.2[D] -> Link [LNKD] -> GSI 5 (level,
low) -> IRQ 5
ACPI: PCI Interrupt 0000:00:01.3[D] -> Link [LNKD] -> GSI 5 (level,
low) -> IRQ 5
ACPI: PCI Interrupt 0000:00:01.4[B] -> Link [LNKB] -> GSI 5 (level,
low) -> IRQ 5
ACPI: PCI Interrupt 0000:00:01.6[B] -> Link [LNKB] -> GSI 5 (level,
low) -> IRQ 5
PCI: Setting latency timer of device 0000:00:02.0 to 64
PM: Writing back config space on device 0000:00:0a.0 at offset 1 (was
82100003, writing 82100007)
ACPI: PCI Interrupt 0000:00:0a.0[A] -> Link [LNKA] -> GSI 11 (level,
low) -> IRQ 11
PM: Writing back config space on device 0000:00:0a.1 at offset 1 (was
2100003, writing 82100007)
ACPI: PCI Interrupt 0000:00: 0a.1[B] -> Link [LNKC] -> GSI 5 (level,
low) -> IRQ 5
pnp: Device 00:08 activated.
pnp: Failed to activate device 00:0c.
pnp: Failed to activate device 00:0d.
irq 14: nobody cared (try booting with the "irqpoll" option)
 <c012c987> __report_bad_irq+0x2b/0x69  <c012cb3d> note_interrupt+0x178/0x1a7
 <c012c53d> handle_IRQ_event+0x22/0x4e  <c012c5ce> __do_IRQ+0x65/0x8f
 <c0104b2d> do_IRQ+0x19/0x24  <c01033da> common_interrupt+0x1a/0x20
 <c0118f4b> __do_softirq+0x2c/0x7f  <c0118fc0> do_softirq+0x22/0x26
 <c0104b32> do_IRQ+0x1e/0x24  <c01033da> common_interrupt+0x1a/0x20
 <c0214224> acpi_processor_idle+0x157/0x323  <c0101da2> cpu_idle+0x3a/0x4f
 <c03b0635> start_kernel+0x29c/0x29e
handlers:
[<c0230301>] (ide_intr+0x0/0x16c)
Disabling IRQ #14
Restarting tasks... done
hda: dma_timer_expiry: dma status == 0x24
hda: DMA interrupt recovery
hda: lost interrupt


tried 2.6.18-rc4-mm3 (as suggested by Rafael J. Wysocki)

as soon as i ask for suspending i get a black screen.
waiting for lots of time...something like 1 min i see:

Disabling Interrupt #14
and after, even waiting some mins...nothing more. i have to power off manually.

tried 2.6.18-rc5

i immediatly have a 
Disabling Interrupt #14 message (instead of waiting like mm3)

but i get a panic too (i'll try to attach a photo of that)


seems related to synapsis driver....maybe input team should be CC.















          CPU0
 0:     431861          XT-PIC  timer
 1:        638          XT-PIC  i8042
 2:          0          XT-PIC  cascade
 5:          0          XT-PIC  yenta, ohci_hcd:usb1, ohci_hcd:usb2,
Trident Audio, SiS630, eth0
 7:          0          XT-PIC  parport0
 8:          2          XT-PIC  rtc
 9:          1          XT-PIC  acpi
 11:          0          XT-PIC  yenta
 12:      10982          XT-PIC  i8042
 14:     200771          XT-PIC  ide0
 15:         26          XT-PIC  ide1
NMI:          0
LOC:          0
ERR:          0
MIS:          0
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 630 Host (rev 11)
00:00.1 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev d0)
00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513 (LPC Bridge)
00:01.1 Ethernet controller: Silicon Integrated Systems [SiS] SiS900
PCI Fast Ethernet (rev 80)
00:01.2 USB Controller: Silicon Integrated Systems [SiS] USB  1.0
Controller (rev 07)
00:01.3 USB Controller: Silicon Integrated Systems [SiS] USB 1.0
Controller (rev 07)
00:01.4 Multimedia audio controller: Silicon Integrated Systems [SiS]
SiS PCI Audio Accelerator (rev 01)
 00:01.6 Modem: Silicon Integrated Systems [SiS] AC'97 Modem
Controller (rev a0)
00:02.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual
PCI-to-PCI bridge (AGP)
00:0a.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
00:0a.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS]
630/730 PCI/AGP VGA Display Adapter (rev 11)
Comment 1 Patrizio Bassi 2006-08-30 02:57:24 UTC
Created attachment 8903 [details]
the kernel panic with 2.6.18-rc5-git1
Comment 2 Patrizio Bassi 2006-08-30 02:58:14 UTC
Created attachment 8904 [details]
config file
Comment 3 Dmitry Torokhov 2006-08-30 05:56:23 UTC
That call trace in Oops is a bit strange - psmouse_reconnect never calls 
bus_for_each_dev, it shoudl go straght intto synaptics_reconnect and 
synaptics_reconnect does not use memcpy...
Comment 4 Patrizio Bassi 2006-08-30 06:03:57 UTC
Dmitry it's a *really* vanilla kernel used with the attached config file.
Comment 5 Dmitry Torokhov 2006-08-30 06:20:13 UTC
I am not saying it isn't, just that the oops trace looks wierd. The stack may 
be corrupted or something. Can your box resume if you unload psmouse module (or 
not compile it in)?
Comment 6 Patrizio Bassi 2006-08-30 06:34:09 UTC
i remember i tried on 2.6.17 to add a return in a synaptics detection routine.
this made the kernel to suspend, but with the bug of IRQ 14 (the main subject 
of this bug)


i didn't think about using psmouse module..../me stupid. i'll try this night 
and report tomorrow.

any other hints?
Comment 7 Alan 2006-08-30 10:14:34 UTC
The IRQ 14 is probably a pending IDE IRQ left by the resume. The kernel IDE
layer (drivers/ide) does not support suspend/resume fully and cannot handle this
case.

Clearing the drive status very early during resume (before IRQs are re-enabled)
might do the trick
Comment 8 Patrizio Bassi 2006-08-30 23:36:09 UTC
i just tested 2.6.18-rc5-git1 using the psmouse as module.

unloading it didn't fix the problem...i have the same issue as mm3:

i see immediatly "disabling irq #14" and after that system hangs.

i waiting more than 3 mins...so i had to power down manually.

i suppose i should open another bug for psmouse problem, do i?
Comment 9 Patrizio Bassi 2006-08-31 00:00:40 UTC
alan you talked about clearing the drive during resume, but i have the problem 
during the suspend.
The suspend is not working...the resume...i don't know because i never got it 
suspended!

i'm not an expert...maybe i missed the point...sorry if so.
Comment 10 Alan 2006-08-31 03:15:41 UTC
Thanks for clarifying. I wonder where that IRQ comes from then.
Comment 11 Patrizio Bassi 2006-08-31 04:05:59 UTC
if i remember good, bypassing psmouse troubles, i could suspend with 2.6.17 
but waiting for irq to be lost and so waiting for lots of time..
Comment 12 Patrizio Bassi 2006-08-31 04:08:12 UTC
...and...it just came into my mind....once i had the irq 14 problems but the 
suspend worked perfectly.

i remember it was an old live cd...maybe 2.6.10-2.6.12 period

i'm sorry but i can't bisect nor recover those infos :(
Comment 13 Rafael J. Wysocki 2006-09-27 00:33:17 UTC
Referring to Comment #10:

I think it comes from the resume-during-suspend phase which is right after the 
image has been created.

The original trace shows that probably the image cannot be saved for some 
reason.

Patrizio, can you try 2.6.18-mm1 with "echo 8 > /proc/sys/kernel/printk" before 
the suspend?
Comment 14 Patrizio Bassi 2006-09-27 23:20:42 UTC
ok.

i tried 2.6.18 (vanilla) and it still has both bugs (psmouse and suspend)

for psmouse, i compiled as module and i removed it, so this bug is bypassed.

for the irq 14, nothing to do.

This night i'll try new mm1 and report asap.
Comment 15 Patrizio Bassi 2006-09-28 02:11:16 UTC
i just saw mm2 isout, do you want me to check it instead of mm1?
Comment 16 Patrizio Bassi 2006-09-29 00:23:16 UTC
ok i tested mm2.

Report:

the screen becomes black and kernel writes it's freeing memory (0 pages in my case)

after some seconds the screen comes back to the normal shell and i see errors
about hda losing interrupt.

the problem is that this cycles...keeps losing interrupts and i can't use the
shell. so i need to reset the pc, i can't check the dmesg.

i remember same issue on older kernel (the ones on live cd), but waiting some
seconds, after the fist lost interrupt, i could suspend it.
Comment 17 Rafael J. Wysocki 2006-10-01 05:30:07 UTC
Thanks.

Have you tried to boot with init=/bin/bash and suspend?  If not, please do
(ie. boot with init=/bin/bash, mount /sys, mount /proc, do "echo 8 
> /proc/sys/kernel/printk" and "echo disk > /sys/power/state").
Comment 18 Patrizio Bassi 2006-10-04 01:36:34 UTC
i just tested and got the same problem...

black screen with some prints about suspending, after it cames back to the
console, but it's locked and prints 0x24 dma interrupt lost problems.

same as before...i did the test but i didn't expected different results, i know
you asked me for that just to know if my distro was doing something weird in
startup scripts...

Comment 19 Alan 2006-12-01 12:34:12 UTC
Reassigning to legacy  IDE maintainer as thats the original source. Looks more
like a swsusp bug tho
Comment 20 Patrizio Bassi 2006-12-03 23:58:18 UTC
i tried with 2.6.19 and got same issue

tried to compile only the new ATA layer, adding SIS and generic (P)ATA 
support, but i get error on irq #14 immediatly on startup.
Comment 21 Rafael J. Wysocki 2007-05-30 11:09:55 UTC
Any progress with this bug?
Comment 22 Patrizio Bassi 2007-05-30 11:12:27 UTC
can we use new pata-scsi interface?
Comment 23 Rafael J. Wysocki 2007-05-31 09:46:24 UTC
I guess so.  I haven't tried it myself, though.
Comment 24 Patrizio Bassi 2007-06-10 09:09:29 UTC
i tried the new pata interface setting PATA generic and SIS support: doesn't boot

irq14 problem, nobody cared.

i must stay back with old config, with no suspend.

i used 2.6.21.3
Comment 25 Rafael J. Wysocki 2007-06-21 10:26:22 UTC
I think you should report the PATA boot problem to the PATA developers.

Also, please try the newest -rc or -git kernel and see if the problem is still present in there.
Comment 26 Rafael J. Wysocki 2007-08-20 10:26:33 UTC
Patrizio, please check if the bug is still present in the newest kernels.
Comment 27 Rafael J. Wysocki 2007-09-23 05:16:57 UTC
Also, when you test recent kernels, please use the "old" IDE driver and make sure that you have BLK_DEV_IDEACPI set in the .config .
Comment 28 Patrizio Bassi 2007-09-25 10:44:10 UTC
tried against 2.6.22.6 with no changes :(
Comment 29 Rafael J. Wysocki 2007-09-25 11:50:07 UTC
Please try 2.3.23 when it's out.  There will be some important suspend-related fixes in there.
Comment 30 Patrizio Bassi 2007-09-25 12:11:15 UTC
ok.

here i get the usual

Disabling IRQ #14

but suspend is not performed....stay there endlessy :(

i will try 2.6.23 as soon as it hits the mirrors
Comment 31 Patrizio Bassi 2007-10-10 12:03:35 UTC
with 2.6.23 i still see the IRQ 14 msg (after 2-3 minutes...)

linux turns on/off the cpu fan in 1 second, then blanks the screen...than nothing happens...
Comment 32 Rafael J. Wysocki 2007-10-12 13:02:17 UTC
Is the libata/PATA driver still failing for you?
Comment 33 Patrizio Bassi 2007-10-12 13:55:49 UTC
yes libata cannot work, i cannot bootup :(
Comment 34 Rafael J. Wysocki 2007-10-12 14:18:48 UTC
Have you tried to boot with noapic or noacpi?
Comment 35 Patrizio Bassi 2007-10-12 14:29:35 UTC
i tried with pci=noacpi

(are we talking about the libata driver right?)
Comment 36 Rafael J. Wysocki 2007-10-12 14:46:23 UTC
Yes.  pci=noacpi is equivalent to noacpi, AFAICS.

Please try with noapic .

You can also try with libata.noacpi=0, OTOH.
Comment 37 Patrizio Bassi 2007-10-12 14:55:39 UTC
oki tomorrow i'll try.

any idea how to fix the old ide driver?

does libata team use bugzilla? because we're going OT here.
Comment 38 Rafael J. Wysocki 2007-10-12 15:02:25 UTC
(In reply to comment #37)
> oki tomorrow i'll try.
> 
> any idea how to fix the old ide driver?

Nope, CCing Alan.

> does libata team use bugzilla? because we're going OT here.

Yes, we are, but it's important to verify if suspend also breaks with the libata driver.
Comment 39 Patrizio Bassi 2007-10-12 16:16:08 UTC
i can only add that long time ago (more 1 year ) i could get suspend working perfectly.

i think it was 2.6.14 or .12 but i'm not sure...
Comment 40 Alan 2007-10-12 16:33:34 UTC
libata team does indeed follow bugzilla
Comment 41 Patrizio Bassi 2007-10-13 03:13:42 UTC
Alan i just added a new bug
http://bugzilla.kernel.org/show_bug.cgi?id=9157

Rafael i didn't CC you there, i didn't know if you were still interested.

Rafael, we keep this bug to track the old IDE suspend issue, is it ok for you?
Comment 42 Rafael J. Wysocki 2007-10-13 03:24:41 UTC
(In reply to comment #41)
> Alan i just added a new bug
> http://bugzilla.kernel.org/show_bug.cgi?id=9157
> 
> Rafael i didn't CC you there, i didn't know if you were still interested.

I've added my address to the CC list in there, thanks.

> Rafael, we keep this bug to track the old IDE suspend issue, is it ok for
> you?

Yes, it is.

CCing Bart, perhaps he can help us here.
Comment 43 Natalie Protasevich 2008-03-29 22:19:18 UTC
Are there any updates on this problem? Is it still being tracked/worked on?
Thanks.
Comment 44 Alan 2008-03-30 05:21:35 UTC
I'm - I've seen no other similar reports, I can't reproduce it and it really someone with the exact h.w to fix it
Comment 45 Patrizio Bassi 2008-03-30 06:25:44 UTC
i'm still here, i attached all requested i don't know what else to do.
Comment 46 Bartlomiej Zolnierkiewicz 2008-03-30 07:01:02 UTC
Created attachment 15511 [details]
sis5513-add-proper-pci-pm-support.patch

Could you try the attached patch for 2.6.25-rc7 which adds proper PCI PM support to sis5513?

If it doesn't help I guess that bisecting the problem between 2.6.10?-2.6.17 would be the best option...
Comment 47 Patrizio Bassi 2008-07-27 10:28:39 UTC
2.6.26 doesn't work as well....but now i'm not sure if it's ide issue only as i see not irq#14 print...just flashing cursor...
Comment 48 Rafael J. Wysocki 2008-08-03 12:56:41 UTC
Patrizio, you said in bug #9157 that you managed to make the pata/libata driver work for you.  Did you also try to suspend/resume using this driver instead of the IDE one?
Comment 49 Patrizio Bassi 2008-08-03 13:00:09 UTC
Hi Rafael, 

this is the first thing i tried and unfortunatly doesn't work.

screen becomes black, with a flashing cursors. i can wait minutes but no change.

i have a big swap partition (600mb, while 300 mb ram).

as said in previous comment #47 (with old ide stack enabled) i don't have anymore the irq 14 print.

can i try anything to have this fixed?

i'm thinking to try tuxonice sources as well.

ps. hw is ok, winxp hibernate and puts in standby without any issue.
Comment 50 Patrizio Bassi 2008-08-03 13:58:13 UTC
however this bug says "old ide driver".

Rafael, do you think i should open a new bug entry?
Comment 51 Rafael J. Wysocki 2008-08-03 14:04:15 UTC
If the in-kernel hibernation doesn't work for you, it's a little chance tuxonice will.  As far as the handling of devices is concerned, Nigel uses pretty much the same code as we do.

I think you can open a new bug entry for this problem w/ the pata/libata driver.
Comment 52 Patrizio Bassi 2008-08-03 14:06:58 UTC
yes i agree there should be no big change, and i hate the idea of not-vanilla kernels....

i will open a new bug as soon i find a moment.

i guess this one will get fixed at the same time the libata one will...seems not related to ide at all...
Comment 53 Zhang Rui 2009-03-18 23:48:25 UTC
patrizio, what's the status of this bug?
can you laptop work in the latest mainline kernel?
Comment 54 Patrizio Bassi 2009-03-19 00:50:44 UTC
Hi Rui,

this bug is related to IDE driver and, as suggested, i switched to sis_pata driver now.

however i cannot suspend anymore even with pata driver.
Comment 55 ykzhao 2009-07-14 02:19:50 UTC
Hi, Patrizio
    Will you please try the latest upstream kernel and see whether the issue still exists?
    
    It seems that OS won't use the swsusp partition in course of S3. And the swsusp partition is required in course of hibernation.
    thanks.
Comment 56 Patrizio Bassi 2009-07-14 06:21:18 UTC
i switched to the new pata interface and hibernation is working great!

I can't test now with the old IDE driver, but...is this of any interest?
Comment 57 Zhang Rui 2009-07-14 06:58:18 UTC
no.
it's good to know the libata driver is working well.
close this bug.