Page MenuHomeFreeBSD

Use tuneable to create unique IRQ for TxQ in IXGBE
Needs ReviewPublic

Authored by stallamr_netapp.com on Jul 1 2021, 9:02 PM.

Details

Reviewers
erj
kbowling
shurd
Group Reviewers
iflib
NetApp
Summary

IXGBE by-default shares msix vector between RxQ and TxQ. IFLIB ignores Tx IRQ and adopted soft-irq for Tx. Provide a tuneable if anyone wish to use IRQ for Tx completions. If AIM is enabled, AIM can be used to moderate Tx interrupts too. This is somewhat similar to BSD11 behavior where Rx and Tx completions are IRQ.

Test Plan

Tested on NetApp platforms, no issues seen. Able to allocated IRQs and perform AIM if enabled. iperf3 runs fine.
Anyone with access to standard BSD server, please help test this change.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 40224
Build 37113: arc lint + arc unit

Event Timeline

stallamr_netapp.com edited the test plan for this revision. (Show Details)
sys/dev/ixgbe/if_ix.c
2067

For more clarity, if ixgbe_enable_tx_irq is enabled, we can set this to IFLIB_INTR_RX only. Else it can be IFLIB_INTR_RXTX. Let me know.

How is this performing versus the combined IRQ in your testing? I can do some basic smoke tests and suspect we'd want to couple it with the TX AIM patch.

Although I would still prefer to fix the combined IRQ handler, I haven't made any progress there and haven't found anyone wanting to collaborate on it.