/boot/loader.conf: hw.ix.rxd="4096" hw.ix.txd="4096" hw.ixgbe.rxd="4096" hw.ixgbe.txd="4096" sysctl hw.ix.rxd hw.ix.rxd: 2048 SHOULD BE 4096!!! ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.8.3> port 0xec00-0xec1f mem 0xf8f80000-0xf8ffffff,0xf8f7c000-0xf8f7ffff irq 32 at device 0.0 on pci5 It was working until the latest version of ixgbe driver. Tunable fetches were deleted (why?) in the last version: TUNABLE_INT("hw.ixgbe.rxd", &ixgbe_rxd); SYSCTL_INT(_hw_ix, OID_AUTO, rxd, CTLFLAG_RDTUN, &ixgbe_rxd, 0, "Number of receive descriptors per queue"); changed to: SYSCTL_INT(_hw_ix, OID_AUTO, txd, CTLFLAG_RDTUN, &ixgbe_rxd, 0, "Number of receive descriptors per queue"); and it stopped working .
You are right. TUNABLE_INT() is not needed in -head but is definitely needed in stable/10.
Created https://reviews.freebsd.org/D3124
Created attachment 158920 [details] ix_tunable_fix_stable10.patch
A commit references this bug: Author: hiren Date: Sat Jul 18 04:49:37 UTC 2015 New revision: 285668 URL: https://svnweb.freebsd.org/changeset/base/285668 Log: Loader tunable fetching has been broken on stable/10 since ix(4) rewrite introduced by r280182. FreeBSD-head doesn't need TUNABLE_INT() now with SYSCTL_INT() but stable/10 still does. Note: This is a direct commit to stable/10. PR: 201644 Reviewed by: erj Approved by: re (gjb) Sponsored by: Limelight Networks Changes: stable/10/sys/dev/ixgbe/if_ix.c