[Bug 481749] New: libata: ports are not thawed when ->prereset() directs EH to skip reset
https://bugzilla.novell.com/show_bug.cgi?id=481749 User teheo@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=481749#c11615 Summary: libata: ports are not thawed when ->prereset() directs EH to skip reset Classification: openSUSE Product: openSUSE 11.1 Version: Final Platform: Other OS/Version: Other Status: ASSIGNED Severity: Normal Priority: P5 - None Component: Kernel AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: teheo@novell.com QAContact: qa@suse.de Found By: --- When SCR access is available and the link is offline, softreset is skipped as it only wastes time and some controllers don't respond very well. However, the skip path forgot to thaw the port, which not only blocks further event notification from the port but also causes repeated EH invocations on the same event on drivers which rely on ->thaw() to clear events if the IRQ is shared with another device or port. This problem has always been there but is uncovered by recent sata_nv nf2/3 change which dropped hardreset support while maintaining SCR access. nf2/3 doesn't clear hotplug event mask from the interrupt handler but relies on ->thaw() to clear them. When the hardreset was there, the reset action was never skipped and the port was always thawed but, with the hardreset gone, ->prereset() determines that there's no need for softreset and both ->softreset() and ->thaw() are skipped. This leads to stuck hotplug event in the IRQ status register triggering hotplug event whenever IRQ is delieverd on the same IRQ. As the controller shares the same IRQ for both ports, this happens on every IO if one port is occupied and the other isn't. This causes noticeable performance degradation on wide many nf2/3 configurations and floods kernel log with error messages and the fix is very low risk. The path is only traveled by sata_uli and sata_nv. Upstream bug report is bko#11615. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=481749 User teheo@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=481749#c1 --- Comment #1 from Tejun Heo <teheo@novell.com> 2009-03-04 00:10:08 MST --- Created an attachment (id=276927) --> (https://bugzilla.novell.com/attachment.cgi?id=276927) libata-thaw-after-reset-skip.patch Patch to fix the problem. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=481749 User teheo@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=481749#c2 Tejun Heo <teheo@novell.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED --- Comment #2 from Tejun Heo <teheo@novell.com> 2009-03-04 00:39:54 MST --- Committed to SLE11_BRANCH. Resolving as FIXED. ------------------------------------------------------------------- Wed Mar 4 08:39:09 CET 2009 - teheo@suse.de - patches.drivers/libata-thaw-when-skipping-reset: libata: make sure port is thawed when skipping resets (bnc#481749). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=481749 User teheo@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=481749#c3 Tejun Heo <teheo@novell.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |highwaystar.ru@gmail.com --- Comment #3 from Tejun Heo <teheo@novell.com> 2009-03-22 20:14:27 MST --- *** Bug 432625 has been marked as a duplicate of this bug. *** https://bugzilla.novell.com/show_bug.cgi?id=432625 -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com