From 8e94025b413ebc581da6b27887f6d408bc8a757e Mon Sep 17 00:00:00 2001 From: "Bjoern A. Zeeb" Date: Fri, 20 Oct 2017 21:40:59 +0000 Subject: [PATCH] With r181803 on 2008-08-17 23:27:27Z the first VIMAGE commit went into HEAD. Enable VIMAGE in GENERIC kernels and some others (where GENERIC does not exist) on HEAD. Disable building LINT-VIMAGE with VIMAGE being default. This should give it a lot more exposure in the run-up to 12 to help us evaluate whether to keep it on by default or not. We are also hoping to get better performance testing. The feature can be disabled using nooptions. Requested by: many Reviewed by: kristof, emaste, hiren X-MFC after: never Relnotes: yes Differential Revision: https://reviews.freebsd.org/D12639 --- sys/amd64/conf/GENERIC | 1 + sys/arm/conf/std.armv6 | 1 + sys/arm/conf/std.armv7 | 1 + sys/arm64/conf/GENERIC | 1 + sys/conf/NOTES | 4 ++-- sys/conf/makeLINT.mk | 5 +---- sys/i386/conf/GENERIC | 1 + sys/mips/conf/GXEMUL | 1 + sys/mips/conf/GXEMUL32 | 1 + sys/mips/conf/QEMU | 6 ++++++ sys/net/vnet.c | 5 ++--- sys/powerpc/conf/GENERIC | 1 + sys/powerpc/conf/GENERIC64 | 1 + sys/riscv/conf/GENERIC | 1 + sys/sparc64/conf/GENERIC | 1 + 15 files changed, 22 insertions(+), 9 deletions(-) diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index bf5e209ad3b..18bace27aa0 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -26,6 +26,7 @@ makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption +options VIMAGE # Subsystem virtualization, e.g. VNET options INET # InterNETworking options INET6 # IPv6 communications protocols options IPSEC # IP (v4/v6) security diff --git a/sys/arm/conf/std.armv6 b/sys/arm/conf/std.armv6 index 5a733104b48..123fbca7efe 100644 --- a/sys/arm/conf/std.armv6 +++ b/sys/arm/conf/std.armv6 @@ -5,6 +5,7 @@ options HZ=1000 options ARM_L2_PIPT # Only L2 PIPT is supported options PREEMPTION # Enable kernel thread preemption +options VIMAGE # Subsystem virtualization, e.g. VNET options INET # InterNETworking options INET6 # IPv6 communications protocols options TCP_HHOOK # hhook(9) framework for TCP diff --git a/sys/arm/conf/std.armv7 b/sys/arm/conf/std.armv7 index 260d9fdce87..d1e42e15ebe 100644 --- a/sys/arm/conf/std.armv7 +++ b/sys/arm/conf/std.armv7 @@ -5,6 +5,7 @@ options HZ=1000 options ARM_L2_PIPT # Only L2 PIPT is supported options PREEMPTION # Enable kernel thread preemption +options VIMAGE # Subsystem virtualization, e.g. VNET options INET # InterNETworking options INET6 # IPv6 communications protocols options TCP_HHOOK # hhook(9) framework for TCP diff --git a/sys/arm64/conf/GENERIC b/sys/arm64/conf/GENERIC index 77080fdddc0..a67ed7c0233 100644 --- a/sys/arm64/conf/GENERIC +++ b/sys/arm64/conf/GENERIC @@ -26,6 +26,7 @@ makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption +options VIMAGE # Subsystem virtualization, e.g. VNET options INET # InterNETworking options INET6 # IPv6 communications protocols options IPSEC # IP (v4/v6) security diff --git a/sys/conf/NOTES b/sys/conf/NOTES index ce9991d1e95..00cec21bb96 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -802,8 +802,8 @@ options NGATM_CCATM device mn # Munich32x/Falc54 Nx64kbit/sec cards. # Network stack virtualization. -#options VIMAGE -#options VNET_DEBUG # debug for VIMAGE +options VIMAGE +options VNET_DEBUG # debug for VIMAGE # # Network interfaces: diff --git a/sys/conf/makeLINT.mk b/sys/conf/makeLINT.mk index 04dfcee05b9..65ab59579aa 100644 --- a/sys/conf/makeLINT.mk +++ b/sys/conf/makeLINT.mk @@ -6,16 +6,13 @@ all: clean: rm -f LINT .if ${TARGET} == "amd64" || ${TARGET} == "i386" - rm -f LINT-VIMAGE LINT-NOINET LINT-NOINET6 LINT-NOIP + rm -f LINT-NOINET LINT-NOINET6 LINT-NOIP .endif NOTES= ../../conf/NOTES NOTES LINT: ${NOTES} ../../conf/makeLINT.sed cat ${NOTES} | sed -E -n -f ../../conf/makeLINT.sed > ${.TARGET} .if ${TARGET} == "amd64" || ${TARGET} == "i386" - echo "include ${.TARGET}" > ${.TARGET}-VIMAGE - echo "ident ${.TARGET}-VIMAGE" >> ${.TARGET}-VIMAGE - echo "options VIMAGE" >> ${.TARGET}-VIMAGE echo "include ${.TARGET}" > ${.TARGET}-NOINET echo "ident ${.TARGET}-NOINET" >> ${.TARGET}-NOINET echo 'makeoptions MKMODULESENV+="WITHOUT_INET_SUPPORT="' >> ${.TARGET}-NOINET diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC index 8bf157ce707..b8ce47d0f1c 100644 --- a/sys/i386/conf/GENERIC +++ b/sys/i386/conf/GENERIC @@ -28,6 +28,7 @@ makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption +options VIMAGE # Subsystem virtualization, e.g. VNET options INET # InterNETworking options INET6 # IPv6 communications protocols options IPSEC # IP (v4/v6) security diff --git a/sys/mips/conf/GXEMUL b/sys/mips/conf/GXEMUL index dcfa3d3af27..4ad01b96ad7 100644 --- a/sys/mips/conf/GXEMUL +++ b/sys/mips/conf/GXEMUL @@ -30,6 +30,7 @@ options KDB options SMP # Symmetric MultiProcessor Kernel options SCHED_ULE +options VIMAGE # Subsystem virtualization, e.g. VNET options INET # InterNETworking options INET6 # IPv6 communications protocols options TCP_HHOOK # hhook(9) framework for TCP diff --git a/sys/mips/conf/GXEMUL32 b/sys/mips/conf/GXEMUL32 index da3e71a67ee..c6c3f25a6a9 100644 --- a/sys/mips/conf/GXEMUL32 +++ b/sys/mips/conf/GXEMUL32 @@ -28,6 +28,7 @@ options KDB options SMP # Symmetric MultiProcessor Kernel options SCHED_ULE +options VIMAGE # Subsystem virtualization, e.g. VNET options INET # InterNETworking options INET6 # IPv6 communications protocols options TCP_HHOOK # hhook(9) framework for TCP diff --git a/sys/mips/conf/QEMU b/sys/mips/conf/QEMU index b8f33fe92f4..479e7ea3c2d 100644 --- a/sys/mips/conf/QEMU +++ b/sys/mips/conf/QEMU @@ -31,6 +31,7 @@ options DDB options KDB options SCHED_4BSD #4BSD scheduler +options VIMAGE # Subsystem virtualization, e.g. VNET options INET #InterNETworking options TCP_HHOOK # hhook(9) framework for TCP options NFSCL #Network Filesystem Client @@ -45,6 +46,11 @@ options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions #options WITNESS #Enable checks to detect deadlocks and cycles #options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed +# The `bpf' device enables the Berkeley Packet Filter. +# Be aware of the administrative consequences of enabling this! +# Note that 'bpf' is required for DHCP. +device bpf # Berkeley packet filter + device loop device ether device md diff --git a/sys/net/vnet.c b/sys/net/vnet.c index b2cad630225..eb07efbf4fb 100644 --- a/sys/net/vnet.c +++ b/sys/net/vnet.c @@ -312,9 +312,8 @@ static void vnet0_init(void *arg __unused) { - /* Warn people before take off - in case we crash early. */ - printf("WARNING: VIMAGE (virtualized network stack) is a highly " - "experimental feature.\n"); + if (bootverbose) + printf("VIMAGE (virtualized network stack) enabled\n"); /* * We MUST clear curvnet in vi_init_done() before going SMP, diff --git a/sys/powerpc/conf/GENERIC b/sys/powerpc/conf/GENERIC index e1284345dd4..accafae213a 100644 --- a/sys/powerpc/conf/GENERIC +++ b/sys/powerpc/conf/GENERIC @@ -35,6 +35,7 @@ options PSERIES #PAPR-compliant systems options FDT options SCHED_ULE #ULE scheduler options PREEMPTION #Enable kernel thread preemption +options VIMAGE # Subsystem virtualization, e.g. VNET options INET #InterNETworking options INET6 #IPv6 communications protocols options IPSEC # IP (v4/v6) security diff --git a/sys/powerpc/conf/GENERIC64 b/sys/powerpc/conf/GENERIC64 index 2325bb059d7..f2285601a3f 100644 --- a/sys/powerpc/conf/GENERIC64 +++ b/sys/powerpc/conf/GENERIC64 @@ -35,6 +35,7 @@ options PSERIES #PAPR-compliant systems (e.g. IBM p) options FDT #Flattened Device Tree options SCHED_ULE #ULE scheduler options PREEMPTION #Enable kernel thread preemption +options VIMAGE # Subsystem virtualization, e.g. VNET options INET #InterNETworking options INET6 #IPv6 communications protocols options TCP_HHOOK # hhook(9) framework for TCP diff --git a/sys/riscv/conf/GENERIC b/sys/riscv/conf/GENERIC index 486838119a3..8f9afdc31f5 100644 --- a/sys/riscv/conf/GENERIC +++ b/sys/riscv/conf/GENERIC @@ -30,6 +30,7 @@ makeoptions WITHOUT_MODULES="usb otusfw mwlfw ispfw mwlfw ralfw rtwnfw" options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption +options VIMAGE # Subsystem virtualization, e.g. VNET options INET # InterNETworking options INET6 # IPv6 communications protocols options TCP_HHOOK # hhook(9) framework for TCP diff --git a/sys/sparc64/conf/GENERIC b/sys/sparc64/conf/GENERIC index f13f71d7a5e..cf757381199 100644 --- a/sys/sparc64/conf/GENERIC +++ b/sys/sparc64/conf/GENERIC @@ -28,6 +28,7 @@ makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption +options VIMAGE # Subsystem virtualization, e.g. VNET options INET # InterNETworking options INET6 # IPv6 communications protocols options IPSEC # IP (v4/v6) security