Page MenuHomeFreeBSD

D27465.diff
No OneTemporary

D27465.diff

Index: sys/net/iflib.c
===================================================================
--- sys/net/iflib.c
+++ sys/net/iflib.c
@@ -188,7 +188,8 @@
struct sysctl_oid *ifc_sysctl_node;
uint16_t ifc_sysctl_ntxqs;
uint16_t ifc_sysctl_nrxqs;
- uint16_t ifc_sysctl_qs_eq_override;
+ uint8_t ifc_sysctl_qs_eq_override;
+ uint8_t ifc_sysctl_rx_wait_irq;
uint16_t ifc_sysctl_rx_budget;
uint16_t ifc_sysctl_tx_abdicate;
uint16_t ifc_sysctl_core_offset;
@@ -2942,7 +2943,9 @@
#if defined(INET6) || defined(INET)
tcp_lro_flush_all(&rxq->ifr_lc);
#endif
- if (avail != 0 || iflib_rxd_avail(ctx, rxq, *cidxp, 1) != 0)
+ if (avail != 0 ||
+ (ctx->ifc_sysctl_rx_wait_irq == 0 &&
+ iflib_rxd_avail(ctx, rxq, *cidxp, 1) != 0))
retval |= IFLIB_RXEOF_MORE;
return (retval);
err:
@@ -6600,9 +6603,12 @@
SYSCTL_ADD_U16(ctx_list, oid_list, OID_AUTO, "override_nrxqs",
CTLFLAG_RWTUN, &ctx->ifc_sysctl_nrxqs, 0,
"# of rxqs to use, 0 => use default #");
- SYSCTL_ADD_U16(ctx_list, oid_list, OID_AUTO, "override_qs_enable",
+ SYSCTL_ADD_U8(ctx_list, oid_list, OID_AUTO, "override_qs_enable",
CTLFLAG_RWTUN, &ctx->ifc_sysctl_qs_eq_override, 0,
"permit #txq != #rxq");
+ SYSCTL_ADD_U8(ctx_list, oid_list, OID_AUTO, "rx_wait_irq",
+ CTLFLAG_RWTUN, &ctx->ifc_sysctl_rx_wait_irq, 0,
+ "rearm IRQ instead of looking for available RX descriptors at the end of rxeof");
SYSCTL_ADD_INT(ctx_list, oid_list, OID_AUTO, "disable_msix",
CTLFLAG_RWTUN, &ctx->ifc_softc_ctx.isc_disable_msix, 0,
"disable MSI-X (default 0)");

File Metadata

Mime Type
text/plain
Expires
Sun, Jan 18, 12:24 PM (6 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27709644
Default Alt Text
D27465.diff (1 KB)

Event Timeline