Page MenuHomeFreeBSD

gve: Implement AQ batching for queue creation and destruction
ClosedPublic

Authored by sujithrap_gmail.com on Aug 6 2026, 8:18 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Sep 5, 2:58 PM
Unknown Object (File)
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

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 Skipped
Unit
Tests Skipped
Build Status
Buildable 75423
Build 72306: arc lint + arc unit