HomeFreeBSD

Fix few issues in ioat(4) driver.

Description

Fix few issues in ioat(4) driver.

  • Do not explicitly count active descriptors. It allows hardware reset

to happen while device is still referenced, plus simplifies locking.

  • Do not stop/start callout each time the queue becomes empty. Let it

run to completion and rearm if needed, that is much cheaper then to touch
it every time, plus also simplifies locking.

  • Decouple submit and cleanup locks, making driver reentrant.
  • Avoid memory mapped status register read on every interrupt.
  • Improve locking during device attach/detach.
  • Remove some no longer used variables.

Reviewed by: cem
MFC after: 1 week
Sponsored by: iXsystems, Inc.
Differential Revision: https://reviews.freebsd.org/D19231

Details

Provenance
mavAuthored on
Reviewer
cem
Differential Revision
D19231: Fix few issues in ioat(4) driver.
Parents
rS344440: Clear pointers to indicate that the respective locks are released.
Branches
Unknown
Tags
Unknown