linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).