Re: [RFC][PATCH] spinlock: Kill spin_unlock_wait()

From: Jeff Garzik
Date: Fri Jan 07 2011 - 16:14:03 EST


On Fri, Jan 7, 2011 at 4:01 PM, Tejun Heo <tj@xxxxxxxxxx> 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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/