svn commit: r343617 - in head: . share/man/man4 sys/amd64/conf sys/arm64/conf sys/conf sys/dev/ixgbe sys/i386/conf sys/mips/conf sys/modules sys/modules/iflib sys/powerpc/conf sys/powerpc/conf/dpaa...

Konstantin Belousov kib at FreeBSD.org
Thu Jan 31 19:06:01 UTC 2019


Author: kib
Date: Thu Jan 31 19:05:56 2019
New Revision: 343617
URL: https://svnweb.freebsd.org/changeset/base/343617

Log:
  Make iflib a loadable module.
  
  iflib is already a module, but it is unconditionally compiled into the
  kernel.  There are drivers which do not need iflib(4), and there are
  situations where somebody might not want iflib in kernel because of
  using the corresponding driver as module.
  
  Reviewed by:	marius
  Discussed with:	erj
  Sponsored by:	The FreeBSD Foundation
  MFC after:	2 weeks
  Differential revision:	https://reviews.freebsd.org/D19041

Added:
  head/sys/modules/iflib/
  head/sys/modules/iflib/Makefile   (contents, props changed)
Modified:
  head/UPDATING
  head/share/man/man4/bnxt.4
  head/share/man/man4/em.4
  head/share/man/man4/iavf.4
  head/share/man/man4/ixgbe.4
  head/share/man/man4/ixl.4
  head/share/man/man4/vmx.4
  head/sys/amd64/conf/GENERIC
  head/sys/arm64/conf/GENERIC
  head/sys/conf/NOTES
  head/sys/conf/files
  head/sys/dev/ixgbe/if_ixv.c
  head/sys/i386/conf/GENERIC
  head/sys/mips/conf/OCTEON1
  head/sys/mips/conf/std.XLP
  head/sys/modules/Makefile
  head/sys/powerpc/conf/GENERIC64
  head/sys/powerpc/conf/MPC85XX
  head/sys/powerpc/conf/MPC85XXSPE
  head/sys/powerpc/conf/QORIQ64
  head/sys/powerpc/conf/dpaa/DPAA
  head/sys/sparc64/conf/GENERIC

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/UPDATING	Thu Jan 31 19:05:56 2019	(r343617)
@@ -31,6 +31,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
 	disable the most expensive debugging functionality run
 	"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
+20190131:
+	Iflib is no longer unconditionally compiled into the kernel.  Drivers
+	using iflib and statically compiled into the kernel, now require
+	the 'device iflib' config option.  For the same drivers loaded as
+	modules on kernels not having 'device iflib', the iflib.ko module
+	is loaded automatically.
+
 20181230:
 	r342635 changes the way efibootmgr(8) works by requiring users to add
 	the -b (bootnum) parameter for commands where the bootnum was previously

Modified: head/share/man/man4/bnxt.4
==============================================================================
--- head/share/man/man4/bnxt.4	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/share/man/man4/bnxt.4	Thu Jan 31 19:05:56 2019	(r343617)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 20, 2018
+.Dd January 30, 2019
 .Dt BNXT 4
 .Os
 .Sh NAME
@@ -36,6 +36,7 @@ To compile this driver into the kernel,
 place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device bnxt"
 .Ed
 .Pp

Modified: head/share/man/man4/em.4
==============================================================================
--- head/share/man/man4/em.4	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/share/man/man4/em.4	Thu Jan 31 19:05:56 2019	(r343617)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 20, 2018
+.Dd January 30, 2019
 .Dt EM 4
 .Os
 .Sh NAME
@@ -39,9 +39,10 @@
 .Nd "Intel(R) PRO/1000 Gigabit Ethernet adapter driver"
 .Sh SYNOPSIS
 To compile this driver into the kernel,
-place the following line in your
+place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device em"
 .Ed
 .Pp

Modified: head/share/man/man4/iavf.4
==============================================================================
--- head/share/man/man4/iavf.4	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/share/man/man4/iavf.4	Thu Jan 31 19:05:56 2019	(r343617)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 5, 2018
+.Dd January 30, 2019
 .Dt IAVF 4
 .Os
 .Sh NAME
@@ -41,6 +41,7 @@
 To compile this driver into the kernel, place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device iavf"
 .Ed
 .Pp

Modified: head/share/man/man4/ixgbe.4
==============================================================================
--- head/share/man/man4/ixgbe.4	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/share/man/man4/ixgbe.4	Thu Jan 31 19:05:56 2019	(r343617)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 19, 2010
+.Dd January 30, 2019
 .Dt IXGBE 4
 .Os
 .Sh NAME
@@ -39,9 +39,10 @@
 .Nd "Intel(R) 10Gb Ethernet driver for the FreeBSD operating system"
 .Sh SYNOPSIS
 To compile this driver into the kernel,
-place the following line in your
+place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device ixgbe"
 .Ed
 .Pp

Modified: head/share/man/man4/ixl.4
==============================================================================
--- head/share/man/man4/ixl.4	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/share/man/man4/ixl.4	Thu Jan 31 19:05:56 2019	(r343617)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 5, 2018
+.Dd January 30, 2019
 .Dt IXL 4
 .Os
 .Sh NAME
@@ -41,6 +41,7 @@
 To compile this driver into the kernel, place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device ixl"
 .Ed
 .Pp

Modified: head/share/man/man4/vmx.4
==============================================================================
--- head/share/man/man4/vmx.4	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/share/man/man4/vmx.4	Thu Jan 31 19:05:56 2019	(r343617)
@@ -17,7 +17,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 17, 2014
+.Dd January 30, 2019
 .Dt VMX 4
 .Os
 .Sh NAME
@@ -25,9 +25,10 @@
 .Nd VMware VMXNET3 Virtual Interface Controller device
 .Sh SYNOPSIS
 To compile this driver into the kernel,
-place the following line in your
+place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device vmx"
 .Ed
 .Pp

Modified: head/sys/amd64/conf/GENERIC
==============================================================================
--- head/sys/amd64/conf/GENERIC	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/amd64/conf/GENERIC	Thu Jan 31 19:05:56 2019	(r343617)
@@ -234,14 +234,18 @@ device		ppi			# Parallel port interface device
 
 device		puc			# Multi I/O cards and multi-channel UARTs
 
-# PCI Ethernet NICs.
-device		bxe			# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
-device		de			# DEC/Intel DC21x4x (``Tulip'')
+# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
+device		iflib
 device		em			# Intel PRO/1000 Gigabit Ethernet Family
 device		ix			# Intel PRO/10GbE PCIE PF Ethernet
 device		ixv			# Intel PRO/10GbE PCIE VF Ethernet
 device		ixl			# Intel 700 Series Physical Function
 device		iavf			# Intel Adaptive Virtual Function
+device		vmx			# VMware VMXNET3 Ethernet
+
+# PCI Ethernet NICs.
+device		bxe			# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
+device		de			# DEC/Intel DC21x4x (``Tulip'')
 device		le			# AMD Am7900 LANCE and Am79C9xx PCnet
 device		ti			# Alteon Networks Tigon I/II gigabit Ethernet
 device		txp			# 3Com 3cR990 (``Typhoon'')
@@ -368,9 +372,6 @@ device		hyperv			# HyperV drivers 
 # NOTE: XENHVM depends on xenpci.  They must be added or removed together.
 options 	XENHVM			# Xen HVM kernel infrastructure
 device		xenpci			# Xen HVM Hypervisor services driver
-
-# VMware support
-device		vmx			# VMware VMXNET3 Ethernet
 
 # Netmap provides direct access to TX/RX rings on supported NICs
 device		netmap			# netmap(4) support

Modified: head/sys/arm64/conf/GENERIC
==============================================================================
--- head/sys/arm64/conf/GENERIC	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/arm64/conf/GENERIC	Thu Jan 31 19:05:56 2019	(r343617)
@@ -145,14 +145,17 @@ device		al_pci		# Annapurna Alpine PCI-E
 options 	PCI_HP			# PCI-Express native HotPlug
 options 	PCI_IOV		# PCI SR-IOV support
 
+# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
+device		iflib
+device		em		# Intel PRO/1000 Gigabit Ethernet Family
+device		ix		# Intel 10Gb Ethernet Family
+
 # Ethernet NICs
 device		mdio
 device		mii
 device		miibus		# MII bus support
 device		awg		# Allwinner EMAC Gigabit Ethernet
 device		axgbe		# AMD Opteron A1100 integrated NIC
-device		em		# Intel PRO/1000 Gigabit Ethernet Family
-device		ix		# Intel 10Gb Ethernet Family
 device		msk		# Marvell/SysKonnect Yukon II Gigabit Ethernet
 device		neta		# Marvell Armada 370/38x/XP/3700 NIC
 device  	smc		# SMSC LAN91C111

Modified: head/sys/conf/NOTES
==============================================================================
--- head/sys/conf/NOTES	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/conf/NOTES	Thu Jan 31 19:05:56 2019	(r343617)
@@ -2092,15 +2092,18 @@ device		vte		# DM&P Vortex86 RDC R6040 Fast Ethernet
 device		wb		# Winbond W89C840F
 device		xl		# 3Com 3c90x (``Boomerang'', ``Cyclone'')
 
+# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
+device		iflib
+device		em		# Intel Pro/1000 Gigabit Ethernet
+device		ix		# Intel Pro/10Gbe PCIE Ethernet
+device		ixv		# Intel Pro/10Gbe PCIE Ethernet VF
+
 # PCI Ethernet NICs.
 device		cxgb		# Chelsio T3 10 Gigabit Ethernet
 device		cxgb_t3fw	# Chelsio T3 10 Gigabit Ethernet firmware
 device		cxgbe		# Chelsio T4-T6 1/10/25/40/100 Gigabit Ethernet
 device		cxgbev		# Chelsio T4-T6 Virtual Functions
 device		de		# DEC/Intel DC21x4x (``Tulip'')
-device		em		# Intel Pro/1000 Gigabit Ethernet
-device		ix		# Intel Pro/10Gbe PCIE Ethernet
-device		ixv		# Intel Pro/10Gbe PCIE Ethernet VF
 device		le		# AMD Am7900 LANCE and Am79C9xx PCnet
 device		mxge		# Myricom Myri-10G 10GbE NIC
 device		oce		# Emulex 10 GbE (OneConnect Ethernet)

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/conf/files	Thu Jan 31 19:05:56 2019	(r343617)
@@ -4132,10 +4132,10 @@ net/if_tun.c			optional tun
 net/if_tap.c			optional tap
 net/if_vlan.c			optional vlan
 net/if_vxlan.c			optional vxlan inet | vxlan inet6
-net/ifdi_if.m			optional ether pci
-net/iflib.c			optional ether pci
-net/iflib_clone.c		optional ether pci
-net/mp_ring.c			optional ether
+net/ifdi_if.m			optional ether pci iflib
+net/iflib.c			optional ether pci iflib
+net/iflib_clone.c		optional ether pci iflib
+net/mp_ring.c			optional ether iflib
 net/mppcc.c			optional netgraph_mppc_compression
 net/mppcd.c			optional netgraph_mppc_compression
 net/netisr.c			standard

Modified: head/sys/dev/ixgbe/if_ixv.c
==============================================================================
--- head/sys/dev/ixgbe/if_ixv.c	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/dev/ixgbe/if_ixv.c	Thu Jan 31 19:05:56 2019	(r343617)
@@ -144,11 +144,9 @@ static driver_t ixv_driver = {
 devclass_t ixv_devclass;
 DRIVER_MODULE(ixv, pci, ixv_driver, ixv_devclass, 0, 0);
 IFLIB_PNP_INFO(pci, ixv_driver, ixv_vendor_info_array);
+MODULE_DEPEND(ixv, iflib, 1, 1, 1);
 MODULE_DEPEND(ixv, pci, 1, 1, 1);
 MODULE_DEPEND(ixv, ether, 1, 1, 1);
-#ifdef DEV_NETMAP
-MODULE_DEPEND(ixv, netmap, 1, 1, 1);
-#endif /* DEV_NETMAP */
 
 static device_method_t ixv_if_methods[] = {
 	DEVMETHOD(ifdi_attach_pre, ixv_if_attach_pre),

Modified: head/sys/i386/conf/GENERIC
==============================================================================
--- head/sys/i386/conf/GENERIC	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/i386/conf/GENERIC	Thu Jan 31 19:05:56 2019	(r343617)
@@ -220,10 +220,14 @@ device		ppi			# Parallel port interface device
 
 device		puc			# Multi I/O cards and multi-channel UARTs
 
+# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
+device		iflib
+device		em			# Intel PRO/1000 Gigabit Ethernet Family
+device		vmx			# VMware VMXNET3 Ethernet
+
 # PCI Ethernet NICs.
 device		bxe			# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
 device		de			# DEC/Intel DC21x4x (``Tulip'')
-device		em			# Intel PRO/1000 Gigabit Ethernet Family
 device		le			# AMD Am7900 LANCE and Am79C9xx PCnet
 device		ti			# Alteon Networks Tigon I/II gigabit Ethernet
 device		txp			# 3Com 3cR990 (``Typhoon'')
@@ -361,9 +365,6 @@ device		hyperv			# HyperV drivers 
 # NOTE: XENHVM depends on xenpci.  They must be added or removed together.
 options 	XENHVM			# Xen HVM kernel infrastructure
 device		xenpci			# Xen HVM Hypervisor services driver
-
-# VMware support
-device		vmx			# VMware VMXNET3 Ethernet
 
 # evdev interface
 options 	EVDEV_SUPPORT		# evdev support in legacy drivers

Modified: head/sys/mips/conf/OCTEON1
==============================================================================
--- head/sys/mips/conf/OCTEON1	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/mips/conf/OCTEON1	Thu Jan 31 19:05:56 2019	(r343617)
@@ -155,6 +155,8 @@ device		octm
 # physical port, but may eventually provide support for DSA or similar instead.
 #device		mv88e61xxphy	# Marvell 88E61XX
 
+device		iflib
+
 # PCI Ethernet NICs.
 device		em		# Intel PRO/1000 Gigabit Ethernet Family
 device		ix		# Intel PRO/10GbE PF PCIE Ethernet Family

Modified: head/sys/mips/conf/std.XLP
==============================================================================
--- head/sys/mips/conf/std.XLP	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/mips/conf/std.XLP	Thu Jan 31 19:05:56 2019	(r343617)
@@ -75,6 +75,7 @@ device		ether
 device		xlpge
 #device		re
 device		msk
+device		iflib
 device		em
 
 # Disks

Modified: head/sys/modules/Makefile
==============================================================================
--- head/sys/modules/Makefile	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/modules/Makefile	Thu Jan 31 19:05:56 2019	(r343617)
@@ -169,6 +169,7 @@ SUBDIR=	\
 	if_tun \
 	if_vlan \
 	if_vxlan \
+	iflib \
 	${_iir} \
 	imgact_binmisc \
 	${_intelspi} \

Added: head/sys/modules/iflib/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/modules/iflib/Makefile	Thu Jan 31 19:05:56 2019	(r343617)
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+.PATH:	${SRCTOP}/sys/net
+
+KMOD=	iflib
+SRCS= \
+	iflib.c \
+	iflib_clone.c \
+	mp_ring.c
+SRCS+=	ifdi_if.c
+SRCS+=	device_if.h bus_if.h pci_if.h ifdi_if.h
+
+.include <bsd.kmod.mk>

Modified: head/sys/powerpc/conf/GENERIC64
==============================================================================
--- head/sys/powerpc/conf/GENERIC64	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/powerpc/conf/GENERIC64	Thu Jan 31 19:05:56 2019	(r343617)
@@ -159,6 +159,8 @@ device		scc
 device		uart
 device		uart_z8530
 
+device		iflib
+
 # Ethernet hardware
 device		em		# Intel PRO/1000 Gigabit Ethernet Family
 device		ix		# Intel PRO/10GbE PCIE PF Ethernet Family

Modified: head/sys/powerpc/conf/MPC85XX
==============================================================================
--- head/sys/powerpc/conf/MPC85XX	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/powerpc/conf/MPC85XX	Thu Jan 31 19:05:56 2019	(r343617)
@@ -74,6 +74,7 @@ device		cryptodev
 device		da
 device  	ds1307
 device		ds1553
+device		iflib
 device		em
 device		alc
 device		ether

Modified: head/sys/powerpc/conf/MPC85XXSPE
==============================================================================
--- head/sys/powerpc/conf/MPC85XXSPE	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/powerpc/conf/MPC85XXSPE	Thu Jan 31 19:05:56 2019	(r343617)
@@ -74,6 +74,7 @@ device		cryptodev
 device		da
 device  	ds1307
 device		ds1553
+device		iflib
 device		em
 device		alc
 device		ether

Modified: head/sys/powerpc/conf/QORIQ64
==============================================================================
--- head/sys/powerpc/conf/QORIQ64	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/powerpc/conf/QORIQ64	Thu Jan 31 19:05:56 2019	(r343617)
@@ -81,6 +81,7 @@ device		cryptodev
 device		da
 device  	ds1307
 device		ds1553
+device		iflib
 device		em
 device		alc
 device  	dpaa

Modified: head/sys/powerpc/conf/dpaa/DPAA
==============================================================================
--- head/sys/powerpc/conf/dpaa/DPAA	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/powerpc/conf/dpaa/DPAA	Thu Jan 31 19:05:56 2019	(r343617)
@@ -74,6 +74,7 @@ device		sdhci
 
 # Network devices
 device		miibus		# MII bus support
+device		iflib
 device		em
 
 

Modified: head/sys/sparc64/conf/GENERIC
==============================================================================
--- head/sys/sparc64/conf/GENERIC	Thu Jan 31 17:52:48 2019	(r343616)
+++ head/sys/sparc64/conf/GENERIC	Thu Jan 31 19:05:56 2019	(r343617)
@@ -181,6 +181,8 @@ device		uart		# Multi-uart driver
 #device		ppi		# Parallel port interface device
 #device		vpo		# Requires scbus and da
 
+device		iflib
+
 # PCI Ethernet NICs.
 #device		de		# DEC/Intel DC21x4x (``Tulip'')
 device		em		# Intel PRO/1000 adapter Gigabit Ethernet Card


More information about the svn-src-head mailing list