PCI Error Recovery API Proposal. (WAS:: [PATCH/RFC] PCI Error Recovery)

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Mar 16 10:27:48 EST 2005


On Tue, 2005-03-15 at 14:14 -0800, Nguyen, Tom L wrote:

> However, we acknowledge that LKML inputs prefer a generic interface for
> error handling. I like the current proposal of three callback functions
> in pci_driver.
> 
> void (*frozen) (struct pci_dev *);	/* called when dev is first
> frozen */
> void (*thawed) (struct pci_dev *);	/* called after card is reset */
> void (*perm_failure) (struct pci_dev *);	/* called if card is
> dead */
> 
> I can use frozen to replace link_rec_prepare and thawed to replace
> link_rec_restart. In addition, I prefer to add two other functions as
> below:

Please, look at my mail describing a different interface. I think your
model can fit. However, one thing you need to do is what I call
"synchronous error detection" as well.

That is, you need a way to implement the proposed

  clear_errors()

  do IOs

  check_errors()

(Sorry, I don't have the exact terminology proposed by Seto in mind)

API. The callback to the driver would happen a bit later on as it would
be delayed to a work queue, the above allows more immediate bail out
from various code path on error.

My proposed callback API doesn't provide error details. I think that we
want to define a specific opaque format for this, to be returned by the
above check_errors(), and eventually by an equivalent that can be called
from the callbacks as well.

Ben.





More information about the Linuxppc64-dev mailing list