* Re: [RFC][PATCH] spinlock: Kill spin_unlock_wait()
[not found] ` <20110107210152.GG7355@mtj.dyndns.org>
@ 2011-01-07 21:13 ` Jeff Garzik
2011-01-07 21:33 ` Tejun Heo
0 siblings, 1 reply; 2+ messages in thread
From: Jeff Garzik @ 2011-01-07 21:13 UTC (permalink / raw)
To: Tejun Heo
Cc: Peter Zijlstra, Nick Piggin, Linus Torvalds, Chris Mason,
Frank Rowand, Ingo Molnar, Thomas Gleixner, Mike Galbraith,
Oleg Nesterov, Paul Turner, Jens Axboe, Yong Zhang, linux-kernel,
Jeremy Fitzhardinge, Linux-Arch, linux-scsi,
IDE/ATA development list
On Fri, Jan 7, 2011 at 4:01 PM, Tejun Heo <tj@kernel.org> wrote:
> On Thu, Jan 06, 2011 at 07:26:35PM +0100, Peter Zijlstra wrote:
>> Jeff, Tejun, could you look at the ata-eh thing, then I'll put sorting
>> through the futex thing on my todo list.
>
> Hmm... I think the ->eng_timeout path is already dead. We no longer
> have any in-kernel implementation, so killing spin_unlock_wait()
> should be fine. I'll follow up with removal of the unused callback.
Unfortunately... libsas continues to avoid the new EH :(
It's a hairy mess to untangle, too. libata does proper error handling
of ATA device errors, notably NCQ error handling, which libsas sorely
misses. But libata new EH assumes a bit too much about "owning" the
entirety of the EH process. These assumptions are proper for wholly
ATA drivers (drivers/ata/*) where new EH can drive the EH process, but
in the SAS situation, a phy in SATA mode is simply a subset of a
larger set of EH conditions that must be handled.
Thus libsas uses the ancient libata hook ->phy_reset and lacks ->error_handler.
I think libata's old-EH path is entirely SAS-specific at this point.
Jeff
P.S. Note that libsas and ipr are peers; thus ipr driver also uses old EH.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [RFC][PATCH] spinlock: Kill spin_unlock_wait()
2011-01-07 21:13 ` [RFC][PATCH] spinlock: Kill spin_unlock_wait() Jeff Garzik
@ 2011-01-07 21:33 ` Tejun Heo
0 siblings, 0 replies; 2+ messages in thread
From: Tejun Heo @ 2011-01-07 21:33 UTC (permalink / raw)
To: Jeff Garzik
Cc: Peter Zijlstra, Nick Piggin, Linus Torvalds, Chris Mason,
Frank Rowand, Ingo Molnar, Thomas Gleixner, Mike Galbraith,
Oleg Nesterov, Paul Turner, Jens Axboe, Yong Zhang, linux-kernel,
Jeremy Fitzhardinge, Linux-Arch, linux-scsi,
IDE/ATA development list
Hello, Jeff.
On Fri, Jan 07, 2011 at 04:13:53PM -0500, Jeff Garzik wrote:
> > Hmm... I think the ->eng_timeout path is already dead. We no longer
> > have any in-kernel implementation, so killing spin_unlock_wait()
> > should be fine. I'll follow up with removal of the unused callback.
>
> Unfortunately... libsas continues to avoid the new EH :(
>
> It's a hairy mess to untangle, too. libata does proper error handling
> of ATA device errors, notably NCQ error handling, which libsas sorely
> misses. But libata new EH assumes a bit too much about "owning" the
> entirety of the EH process. These assumptions are proper for wholly
> ATA drivers (drivers/ata/*) where new EH can drive the EH process, but
> in the SAS situation, a phy in SATA mode is simply a subset of a
> larger set of EH conditions that must be handled.
>
> Thus libsas uses the ancient libata hook ->phy_reset and lacks ->error_handler.
>
> I think libata's old-EH path is entirely SAS-specific at this point.
Hmm... but they don't use ata_scsi_error() and ->eng_timeout() at all,
no? We can't remove phy_reset() and need to keep the silly "if
(->error_handler)" tests around but should be able to remove those
from ata_scsi_error() and other EH routines, at least. Am I missing
something?
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-01-07 21:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20101224122338.172750730@chello.nl>
[not found] ` <20101224123742.724459093@chello.nl>
[not found] ` <AANLkTikGBsh0-QTe9CA2gwDtwzpdMi+fbDsTEKiJAL0P@mail.gmail.com>
[not found] ` <1294054362.2016.74.camel@laptop>
[not found] ` <20110104064542.GF3402@amd>
[not found] ` <1294254867.2016.281.camel@laptop>
[not found] ` <AANLkTi=URmD1GYqp+PfVf6rc0tXvRnAQG808LMnBRgG1@mail.gmail.com>
[not found] ` <1294306353.2016.304.camel@laptop>
[not found] ` <20110106103841.GA3493@amd>
[not found] ` <1294338395.2016.381.camel@laptop>
[not found] ` <20110107210152.GG7355@mtj.dyndns.org>
2011-01-07 21:13 ` [RFC][PATCH] spinlock: Kill spin_unlock_wait() Jeff Garzik
2011-01-07 21:33 ` Tejun Heo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).