1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00
freebsd/sys/modules
Sean Bruno 23c9098b2a Change EM_MULTIQUEUE to a real kernconf entry and enable support for
up to 2 rx/tx queues for the 82574.

Program the 82574 to enable 5 msix vectors, assign 1 to each rx queue,
1 to each tx queue and 1 to the link handler.

Inspired by DragonFlyBSD, enable some RSS logic for handling tx queue
handling/processing.

Move multiqueue handler functions so that they line up better in a diff
review to if_igb.c

Always enqueue tx work to be done in em_mq_start, if unable to acquire
the TX lock, then this will be processed in the background later by the
taskqueue.  Remove mbuf argument from em_start_mq_locked() as the work
is always enqueued.  (stolen from igb)

Setup TARC, TXDCTL and RXDCTL registers for better performance and stability
in multiqueue and singlequeue implementations. Handle Intel errata  3 and
generic multiqueue behavior with the initialization of TARC(0) and TARC(1)

Bind interrupt threads to cpus in order.  (stolen from igb)

Add 2 new DDB functions, one to display the queue(s) and their settings and
one to reset the adapter.  Primarily used for debugging.

In the multiqueue configuration, bump RXD and TXD ring size to max for the
adapter (4096).  Setup an RDTR of 64 and an RADV of 128 in multiqueue configuration
to cut down on the number of interrupts.  RADV was arbitrarily set to 2x RDTR
and can be adjusted as needed.

Cleanup the display in top a bit to make it clearer where the taskqueue threads
are running and what they should be doing.

Ensure that both queues are processed by em_local_timer() by writing them both
to the IMS register to generate soft interrupts.

Ensure that an soft interrupt is generated when em_msix_link() is run so that
any races between assertion of the link/status interrupt and a rx/tx interrupt
are handled.

Document existing tuneables: hw.em.eee_setting, hw.em.msix, hw.em.smart_pwr_down, hw.em.sbp

Document use of hw.em.num_queues and the new kernel option EM_MULTIQUEUE

Thanks to Intel for their continued support of FreeBSD.

Reviewed by:	erj jfv hiren gnn wblock
Obtained from:	Intel Corporation
MFC after:	2 weeks
Relnotes:	Yes
Sponsored by:	Limelight Networks
Differential Revision:	https://reviews.freebsd.org/D1994
2015-06-03 18:01:09 +00:00
..
3dfx
3dfx_linux
aac
aacraid
accf_data
accf_dns
accf_http
acl_nfs4 Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
acl_posix1e Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
acpi Remove obsolete Makefile for acpi.ko. 2014-10-02 20:13:52 +00:00
ae
aesni For clang, disable -Wcast-qual warnings for specific aesni files, since 2015-01-30 18:17:17 +00:00
age
agp Re-enable -Werror for these modules. It is already enabled for the same 2014-06-09 20:48:38 +00:00
aha
ahb
ahci Separate out PCI attachment from the main AHCI driver. Move checks of 2014-09-04 22:22:53 +00:00
aic
aic7xxx Use .MAKE.LEVEL being defined as a bootstrap aid when providing 2015-01-10 23:43:39 +00:00
aio
alc
ale
alq Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
amdsbwd
amdtemp
amr
an Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
aout
apm
ar71xx
arcmsr
arcnet Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
asmc
ata Remove from legacy ata(4) driver support for hardware, supported by newer 2015-03-24 18:09:07 +00:00
ath Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
ath_ahb
ath_pci
autofs Bring in the new automounter, similar to what's provided in most other 2014-08-17 09:44:42 +00:00
auxio
bce Remove clean option 2014-09-17 22:26:01 +00:00
bfe
bge
bios Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
bktr
bm
bridgestp
bwi
bwn Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
bxe Remove clean option 2014-09-17 22:24:51 +00:00
cam Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
canbepm
canbus
cardbus On x86 force NEW_PCIB, since that's the default. While this option 2015-01-14 05:41:28 +00:00
carp Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
cas
cbb On x86 force NEW_PCIB, since that's the default. While this option 2015-01-14 05:41:28 +00:00
cc DCTCP (Data Center TCP) implementation. 2015-01-12 08:33:04 +00:00
cd9660
cd9660_iconv
ce Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
cfi
ciss
cm
cmx
coff
coretemp
cp
cpsw
cpuctl
cpufreq
crypto Add some new modes to OpenCrypto. These modes are AES-ICM (can be used 2014-12-12 19:56:36 +00:00
cryptodev Fix make depend in sys/modules 2014-12-19 06:51:01 +00:00
cs
ct
ctau
ctl Add kobj interface between ICL and the rest of the iSCSI stack. 2015-01-31 07:49:50 +00:00
cuse Initial import of character device in userspace support for FreeBSD. 2014-05-23 08:46:28 +00:00
cx
cxgb opt_global.h is never needed in SRCS lists. 2014-11-18 17:06:52 +00:00
cxgbe Globally enable -fms-extensions when building kernel with gcc, and remove 2015-02-17 19:27:14 +00:00
dc
dcons
dcons_crom
de
digi
dpms
dpt Cleanup the way we include some files (in this case EISA) based on 2015-02-18 15:25:22 +00:00
drm The radeon DRI module doesn't really work correctly on powerpc, so don't build 2015-01-03 22:36:18 +00:00
drm2 drm: Update the device-independent code to match Linux 3.8.13 2015-03-17 18:50:33 +00:00
dtb Build and install the DTB for all the supported AllWinner SoCs. 2015-04-20 22:12:19 +00:00
dtrace Set a dependancy on fbt module for ARM. 2015-03-06 16:08:03 +00:00
dummynet Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ed Cleanup the way we include some files (in this case EISA) based on 2015-02-18 15:25:22 +00:00
elink
em Change EM_MULTIQUEUE to a real kernconf entry and enable support for 2015-06-03 18:01:09 +00:00
en Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ep Cleanup the way we include some files (in this case EISA) based on 2015-02-18 15:25:22 +00:00
epic
esp
et
ex
exca
ext2fs Drop experimental dir_index support. 2015-04-17 22:26:01 +00:00
fatm Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
fdc Merge the PC98 fdc(4) driver into the MI driver. While here, replace 2014-09-25 20:40:24 +00:00
fdescfs
fe
filemon
firewire Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
firmware
fuse
fxp
gem
geom Add MK_CCD knob for building and installing ccd(4), ccdconfig, etc 2015-01-25 04:52:48 +00:00
glxiic
glxsb
gpio Inspired by r262522, fix make depend. This fixes the build of gpio modules. 2014-02-27 13:26:41 +00:00
hatm Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
hifn
hme
hpt27xx
hptiop
hptmv
hptnr
hptrr
hwpmc Implement hwpmc(4) for Freescale e500 core. 2015-04-18 21:39:17 +00:00
hyperv Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft, 2014-09-13 02:15:31 +00:00
i2c ig4 - Intel fourth gen integrated I2C SMBus driver. 2015-05-30 12:17:18 +00:00
ibcore Globally enable -fms-extensions when building kernel with gcc, and remove 2015-02-17 19:27:14 +00:00
ibcs2
ichwd
ida
ie
if_bridge Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_disc Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_edsc
if_epair
if_gif Clean up a bit of the INET/INET6 mess wrt options. 2015-02-18 15:25:25 +00:00
if_gre Clean up a bit of the INET/INET6 mess wrt options. 2015-02-18 15:25:25 +00:00
if_lagg Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_me Overhaul if_gre(4). 2014-11-07 19:13:19 +00:00
if_ndis
if_stf Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_tap Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_tun Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
if_vlan
if_vxlan Add vxlan interface 2014-10-20 14:42:42 +00:00
igb Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
iir
imgact_binmisc Add Stacey Son's binary activation patches that allow remapping of 2014-04-08 20:10:22 +00:00
io
ip6_mroute_mod Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ip_mroute_mod Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ipdivert Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ipfilter Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
ipfw Merge projects/ipfw to HEAD. 2014-10-09 19:32:35 +00:00
ipfw_nat
ipmi
ipoib Globally enable -fms-extensions when building kernel with gcc, and remove 2015-02-17 19:27:14 +00:00
ips Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
ipw
ipwfw
isci
iscsi Add kobj interface between ICL and the rest of the iSCSI stack. 2015-01-31 07:49:50 +00:00
iscsi_initiator
isp
ispfw
iwi
iwifw
iwn
iwnfw Add iwn-100 firmware. 2014-08-28 00:05:02 +00:00
ix Include makefiles necessary to make ixgbe build with the new code. 2015-04-30 22:56:43 +00:00
ixgb
ixl Create a separate kobj interface for leaf-driver PCI IOV methods. 2015-05-28 22:01:50 +00:00
ixlv Intel I40E driver updates: 2015-01-12 18:43:34 +00:00
ixv Delta D2489 - Add SRIOV support to the Intel 10G driver. 2015-06-01 17:43:34 +00:00
jme
joy There never was a PC Card joystick attachment that worked. Kill the 2014-11-22 20:31:20 +00:00
kbdmux
kgssapi
kgssapi_krb5
khelp Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
krpc Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ksyms
le
lge
libalias
libiconv
libmbpool
libmchain
linprocfs Introduce a new module linux_common.ko which is intended for the 2015-05-24 15:51:18 +00:00
linsysfs Introduce a new module linux_common.ko which is intended for the 2015-05-24 15:51:18 +00:00
linux For objcopy, use --input-target and --output-target 2015-05-25 01:07:55 +00:00
linux64 For objcopy, use --input-target and --output-target 2015-05-25 01:07:55 +00:00
linux_common Rework signal code to allow using it by other modules, like linprocfs: 2015-05-24 17:47:20 +00:00
linuxapi Start importing the basic OFED linux compatibility layer changes made 2015-01-17 16:36:39 +00:00
lmc No need to list opt_global.h. No need to force ALTQ here, since that's 2014-11-18 17:06:54 +00:00
lpt
mac_biba
mac_bsdextended
mac_ifoff
mac_lomac
mac_mls
mac_none
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
malo
mcd
md
mem
mfi
mii
mlx
mlx4 Globally enable -fms-extensions when building kernel with gcc, and remove 2015-02-17 19:27:14 +00:00
mlx4ib Globally enable -fms-extensions when building kernel with gcc, and remove 2015-02-17 19:27:14 +00:00
mlxen Factor out mbuf hashing code from LAGG driver so that other network 2015-03-11 16:02:24 +00:00
mly
mmc
mmcsd
mpr Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
mps Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
mpt
mqueue
mrsas clean removes @ and machine now, so no need to do it again. 2014-11-06 16:48:35 +00:00
msdosfs
msdosfs_iconv
mse
msk
mthca Globally enable -fms-extensions when building kernel with gcc, and remove 2015-02-17 19:27:14 +00:00
mvs
mwl
mwlfw
mxge
my
nand
nandfs Include opt_ddb.h in the list of SRCS, since we include it. 2014-04-16 19:49:44 +00:00
nandsim
ncr Remove the extra CFLAGS now that the driver has been fixed by jhb. 2014-10-02 18:45:00 +00:00
ncv
ndis
netfpga10g Introduce opt_netfpga.h and allow setting NF10BMAC_64BIT from mips kernel 2014-06-26 17:20:45 +00:00
netgraph Remove dependence on source tree options. Move all kernel module 2014-08-11 14:50:49 +00:00
netmap add missing file 2014-09-25 14:25:38 +00:00
nfe
nfscl Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
nfscommon
nfsd
nfslock
nfslockd Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
nfssvc
nge
nmdm
nsp
ntb
nullfs
nvd
nvme
nvram
nxge Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
oce Rename the kld for oce(4) to if_oce.ko. ifconfig(8) has special knowledge 2015-04-24 14:47:53 +00:00
opensolaris Use SYSDIR to reference to the top of the sys hierarchy. Define SYSDIR 2014-03-06 01:59:13 +00:00
padlock
padlock_rng This is the much-discussed major upgrade to the random(4) device, known to you all as /dev/random. 2014-10-30 21:21:53 +00:00
patm Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
pccard
pcfclock
pcn
pf Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
pflog Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
pfsync Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
plip
pmc
powermac_nvram
ppbus
ppc Remove ia64. 2014-07-07 00:27:09 +00:00
ppi
pps
procfs
proto Add proto(4): A driver for prototyping and diagnostics. 2014-04-28 17:58:40 +00:00
pseudofs Hide vfs.pfs.trace variable if it is not used. 2015-05-24 18:11:22 +00:00
pst
pty
puc
qlxgb There's no need to override the clean target. The clean target works 2014-10-16 20:13:16 +00:00
qlxgbe There's no need to override the clean target. The clean target works 2014-10-16 20:13:16 +00:00
qlxge There's no need to override the clean target. The clean target works 2014-10-16 20:13:16 +00:00
ral
ralfw
random Fix random.ko module. 2014-11-07 20:23:43 +00:00
rc
rc4
rdma
rdrand_rng This is the much-discussed major upgrade to the random(4) device, known to you all as /dev/random. 2014-10-30 21:21:53 +00:00
re
reiserfs
rl Move rl(4) to dev/rl. 2014-09-19 10:32:20 +00:00
rndtest
rp
s3
safe
sbni
scc
scd
scsi_low
sdhci
sdhci_pci
sem
send
sf
sfxge sfxge: do not use DEBUG_FLAGS to enable extra debug checks 2015-05-29 05:44:56 +00:00
sge
si Cleanup the way we include some files (in this case EISA) based on 2015-02-18 15:25:22 +00:00
siba_bwn
siftr Remove unnecessary inclusions of bsd.own.mk. 2014-08-04 22:34:12 +00:00
siis
sio
sis
sk
smbfs Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
sn
snc Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
snp
sound Retire the '@' symlink. It isn't really needed and causes more 2014-11-06 16:48:37 +00:00
speaker
splash
sppp Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
ste
stg
stge
streams
svr4 These don't belong in the modules directory. 2014-11-06 16:52:51 +00:00
sym
syscons
sysvipc
ti
tl
tmpfs
toecore
tpm
trm Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
tsec Build tsec(4) as a module. 2014-07-26 17:59:25 +00:00
twa
twe
tws
tx
txp
uart PowerPC also needs ofw_bus_if.h when using FDT. 2015-01-03 21:47:32 +00:00
ubsec
ubser
uchcom
ucycom
udf
udf_iconv
ufs Initialize the pbuf counter for directio using SYSINIT, instead of 2014-06-08 10:55:06 +00:00
unionfs
usb Add USB MIDI template for USB device side mode. 2015-06-01 11:24:34 +00:00
utopia
vesa
vge
viawd
videomode Import videomode code from NetBSD which is needed by USB display link drivers. 2015-02-15 11:37:40 +00:00
virtio Add VirtIO console driver 2014-10-23 04:47:32 +00:00
vkbd
vmm Use lapic_ipi_alloc() to dynamically allocate IPI slots needed by bhyve when 2015-03-14 02:32:08 +00:00
vmware Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
vpo
vr
vte
vx Cleanup the way we include some files (in this case EISA) based on 2015-02-18 15:25:22 +00:00
vxge
wb
wbwd
wds Add kernel modules for si(4), wds(4), and wl(4). 2014-08-20 16:09:05 +00:00
wi
wl Add kernel modules for si(4), wds(4), and wl(4). 2014-08-20 16:09:05 +00:00
wlan Refactor and split out the net80211 software scan engine from the rest 2015-01-06 02:08:45 +00:00
wlan_acl Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_amrr Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_ccmp Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_rssadapt Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_tkip Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_wep Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wlan_xauth Move most of the 15 variations on generating opt_inet.h and 2014-08-04 22:37:02 +00:00
wpi Add WPI_DEBUG option. 2015-02-07 23:09:03 +00:00
wpifw
wtap
x86bios
xe
xl
zfs Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support 2015-01-03 03:35:18 +00:00
zlib Move zlib.c from net to libkern. 2015-04-22 18:15:18 +00:00
Makefile The linux_common module only for 64bit Linuxulators. 2015-05-29 05:50:33 +00:00
Makefile.inc