Page MenuHomeFreeBSD

gve: Implement AQ batching for queue creation and destruction
ClosedPublic

Authored by sujithrap_gmail.com on Thu, Aug 6, 8:18 PM.
Tags
None
Referenced Files
F169617612: D58696.diff
Wed, Sep 2, 2:11 AM
Unknown Object (File)
Mon, Aug 31, 11:50 AM
Unknown Object (File)
Sun, Aug 30, 10:34 AM
Unknown Object (File)
Sun, Aug 30, 3:26 AM
Unknown Object (File)
Sun, Aug 30, 1:15 AM
Unknown Object (File)
Sat, Aug 29, 10:51 PM
Unknown Object (File)
Sat, Aug 29, 7:38 PM
Unknown Object (File)
Wed, Aug 26, 11:01 AM

Details

Summary

Currently, the FreeBSD driver configures and destroys queues
sequentially by issuing individual Admin Queue (AQ) commands.

During queue teardown (e.g., interface reset), disabling queues
one by one leaves the device in a partially configured state.
Because the device does not yet know that the driver is in the
process of fully unconfiguring all queues, this intermediate
state can trigger transient error logs (such as when queue 0 is
disabled while other queues are still active).

Modify the driver to use Admin Queue batching for both the
creation and destruction of TX and RX queues. Commands are now
queued and kicked together, ensuring the queue configuration changes
are applied atomically and preventing transient errors from being logged.

Sponsored by: Google
Signed-off-by: Sujithra Periasamy <sujithra@google.com>

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable