Add support for those cases where only a subset of the TX rings are opened, and where RX rings are not opened.
Rather than simply checking IFCAP_NETMAP, also use the netmap_kring_on() helper or the return value of netmap_tx_irq().
In the interrupt handler, in particular, there is no need to call isc_credits_update.
Details
- Reviewers
gallatin erj shurd - Group Reviewers
iflib - Commits
- rS363082: MFC r362633, r362633
rS362621: iflib: netmap: add per-tx-queue netmap support
Tested with pkt-gen, bridge, vale-ctl on em devices within a VM.
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
I suspect something went wrong with the email notification, so this is just a ping message to make sure reviewers are aware of this patch.
Can you add context please ? I upload patches using git diff -U9999999 to get the full file to show up.
sys/net/iflib.c | ||
---|---|---|
3763 ↗ | (On Diff #73549) | I have a concern is for performance in the netmap compiled in, but inactive case. In this case, it seems that you've replaced a very cheap check of an ifp flag IFCAP_NETMAP (which is almost certain to be in cache) with a function call which then de-references ifp->if_netmap, which is likely to be cold if netmap is disabled. Why did you need to remove the IFCAP_NETMAP check? |
sys/net/iflib.c | ||
---|---|---|
3763 ↗ | (On Diff #73549) | That's a very good point, thanks. |