mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-16 10:20:30 +00:00
Make the rx budget a tunable
This allows tuning the rx budget for special load profiles as well as more easily testing to determine sane defaults. Reviewed by: sbruno Approved by: sbruno (mentor) Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D12445
This commit is contained in:
parent
20f63282f8
commit
f4d2154e0c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=323943
@ -185,6 +185,7 @@ struct iflib_ctx {
|
||||
uint16_t ifc_sysctl_ntxqs;
|
||||
uint16_t ifc_sysctl_nrxqs;
|
||||
uint16_t ifc_sysctl_qs_eq_override;
|
||||
uint16_t ifc_sysctl_rx_budget;
|
||||
|
||||
qidx_t ifc_sysctl_ntxds[8];
|
||||
qidx_t ifc_sysctl_nrxds[8];
|
||||
@ -3531,6 +3532,7 @@ _task_fn_rx(void *context)
|
||||
if_ctx_t ctx = rxq->ifr_ctx;
|
||||
bool more;
|
||||
int rc;
|
||||
uint16_t budget;
|
||||
|
||||
#ifdef IFLIB_DIAGNOSTICS
|
||||
rxq->ifr_cpu_exec_count[curcpu]++;
|
||||
@ -3547,7 +3549,10 @@ _task_fn_rx(void *context)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (more == false || (more = iflib_rxeof(rxq, 16 /* XXX */)) == false) {
|
||||
budget = ctx->ifc_sysctl_rx_budget;
|
||||
if (budget == 0)
|
||||
budget = 16; /* XXX */
|
||||
if (more == false || (more = iflib_rxeof(rxq, budget)) == false) {
|
||||
if (ctx->ifc_flags & IFC_LEGACY)
|
||||
IFDI_INTR_ENABLE(ctx);
|
||||
else {
|
||||
@ -5486,9 +5491,12 @@ iflib_add_device_sysctl_pre(if_ctx_t ctx)
|
||||
SYSCTL_ADD_U16(ctx_list, oid_list, OID_AUTO, "override_qs_enable",
|
||||
CTLFLAG_RWTUN, &ctx->ifc_sysctl_qs_eq_override, 0,
|
||||
"permit #txq != #rxq");
|
||||
SYSCTL_ADD_INT(ctx_list, oid_list, OID_AUTO, "disable_msix",
|
||||
SYSCTL_ADD_INT(ctx_list, oid_list, OID_AUTO, "disable_msix",
|
||||
CTLFLAG_RWTUN, &ctx->ifc_softc_ctx.isc_disable_msix, 0,
|
||||
"disable MSIX (default 0)");
|
||||
SYSCTL_ADD_U16(ctx_list, oid_list, OID_AUTO, "rx_budget",
|
||||
CTLFLAG_RWTUN, &ctx->ifc_sysctl_rx_budget, 0,
|
||||
"set the rx budget");
|
||||
|
||||
/* XXX change for per-queue sizes */
|
||||
SYSCTL_ADD_PROC(ctx_list, oid_list, OID_AUTO, "override_ntxds",
|
||||
|
Loading…
Reference in New Issue
Block a user