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