[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
"out-of-context" delayed completions
- To: Mailing List Recipients <pci-sig-request@znyx.com>
- Subject: "out-of-context" delayed completions
- From: Joe Cowan <jpc@hpmckee.fc.hp.com>
- Date: Thu, 23 Jan 97 12:08:34 MST
- Mailer: Elm [revision: 70.85]
- Resent-Date: Thu, 23 Jan 97 12:08:34 MST
- Resent-From: pci-sig-request@znyx.com
- Resent-Message-Id: <"Adzxq1.0.rA7.cTxvo"@dart>
- Resent-Sender: pci-sig-request@znyx.com
Greetings,
If a device is reset while it has an outstanding delayed request, I
assume the device won't complete the delayed transaction, leaving an
"out-of-context" delayed completion lying around in an HB or PPB. This
"out-of-context" delayed completion might later be used to complete a
delayed transaction under a different context, effectively corrupting
the transaction. When a driver does a reset, how can it overcome this
problem? Below is a specific example of the problem, though the problem
also can occur with delayed writes as well as delayed reads.
- A device attempts a DMA read from a work queue in host memory, and is
retried by the HB since the HB is handling it as a delayed
transaction.
- The device driver issues a reset to the device, via a PIO write. The
timing is such that the PIO write is on its way down to the device
ahead of the DMA DRC.
- The reset reaches the device and causes it to forget about completing
the earlier DMA read from host memory.
- The driver sets up a new work queue (context) in host memory.
- The DMA DRC for the earlier context remains in the HB.
- The driver restarts the device and the device resumes. The device
attempts a DMA read to the same location it did just before the
reset, and the HB returns the now "out-of-context" data in the DMA
DRC, effectively corrupting the transaction.
Joe Cowan
*----------------------------------------------------------------------*
| JOE COWAN |
| System Architecture and Design Lab |
| Email: jpc@fc.hp.com Joe Cowan - MS B5 |
| Work: (+1) 970 229-2404 | (T)229-2404 Hewlett-Packard Company |
| Fax: (+1) 970 229-3197 | (T)229-3197 3404 East Harmony Road |
| Fort Collins, CO 80525 USA |
*----------------------------------------------------------------------*
L <