### Rozhuk Ivan 2009.12 - 2019 ### RIM kernel configuration file for FreeBSD/AMD64 ### warning: all modules loaded by loader! ############################################################## ### Text marks ############################################# ############################################################## #! - critical, cant be excluded #b - only build in to kernel, no module #d - default, see DEFAULTS -- Default kernel configuration file for FreeBSD #m - can be loaded as module (for use in kernel config) #o - option #D - debug #W - for workstation/desktop only #R - for router/server ############################################################## ### Config ################################################# ############################################################## #profile 2 # We want LINT to cover profiling as well. machine amd64 cpu HAMMER options INCLUDE_CONFIG_FILE #o Include this file in kernel # Make an SMP-capable kernel by default options SMP #b Symmetric MultiProcessor Kernel options NUMA #o Non-Uniform Memory Architecture support options EARLY_AP_STARTUP #o device cpufreq #m for non-ACPI CPU frequency control device cpuctl #m Provides access to MSRs, CPUID info and microcode update feature. # Kernel base options SCHED_ULE #b 4BSD/ULE scheduler options _KPOSIX_PRIORITY_SCHEDULING #b POSIX P1003_1B real-time extensions options PREEMPTION #b Enable kernel thread preemption #options IPI_PREEMPTION #o instructs the kernel to preempt threads running on other CPUS if needed. Required PREEMPTION option #device atpic #b Optional legacy pic support (386: build in by default) #device mptable #b Optional MPSPEC mptable support #options HZ=1000 #o options KSTACK_PAGES=6 #o Num of mem pages to assign to the kernel stack of each thread options PRINTF_BUFR_SIZE=128 #o Prevent printf output being interspersed. #options AUDIT #b Security event auditing #options CAPABILITY_MODE #o Capsicum capability mode #options CAPABILITIES #o Capsicum capabilities options MAC #b TrustedBSD MAC Framework #options PROCDESC #o Support for process descriptors / req for the rwhod(8) options LIBICONV #mW Kernel side iconv library options GZIO #m zlib I/O stream support. Enables support for compressed core dumps. options ZSTDIO #m zstd-compressed kernel and user dumps device firmware #m firmware(9) support device smbios #m DMI/SMBIOS entry point options X86BIOS #m x86 real mode BIOS emulator, required by atkbdc/dpms/vesa options EFIRT #m EFI Runtime Services support options COMPAT_FREEBSD11 #o Compatible with FreeBSD11 # Bus support. device acpi #m ACPI; not exist as module on x64 options ACPI_DMAR #device isa #!bd ISA bus device pci #!b only built-in options PCI_HP #o PCI-Express native HotPlug options PCI_IOV #o PCI SR-IOV support device smbus #m System Management Bus support. device smb #m System Management Bus support is provided by the 'smbus' device. device iicbus #m I2C Bus support, required for ic/iic/iicsmb below. device ic #m i2c network interface device iic #m i2c standard io device iicsmb #m i2c to smb bridge. Allow i2c i/o with smb commands. device iicbb #m generic I2C bit-banging code (needed by lpbb, bktr) device iflib #m PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure device miibus #m MII bus support # ATA/SCSI peripherals / cam.ko device scbus #b SCSI bus (required for ATA/SCSI) device ch #b SCSI media changers device da #b Direct Access (disks) device sa #b Sequential Access (tape etc) device cd #b CD device pass #b Passthrough device (direct ATA/SCSI access) device ses #b Enclosure Services (SES and SAF-TE) options CAM_IOSCHED_DYNAMIC #o Scheduler is enhanced to dynamically steer the rate of one type of traffic to help other types of traffic (eg limit writes when read latency deteriorates on SSDs). # Serial ATA host controllers: device ahci #m Advanced Host Controller Interface (AHCI) compatible device mvs #m Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA device siis #m SiliconImage SiI3124/SiI3132/SiI3531 SATA # ATA and ATAPI devices # Modular ATA device atacore #m ATA support device atapci #m PCI bus support; only generic chipset support options ATA_STATIC_ID #o Static device numbering # NVM Express (NVMe) support device nvme #m base NVMe driver device nvd #m expose NVMe namespaces as disks, depends on nvme # USB support device usb #m USB Bus (required) device uhci #m UHCI PCI->USB interface device ohci #m OHCI PCI->USB interface device ehci #m EHCI PCI->USB interface (USB 2.0) device xhci #m XHCI PCI->USB interface (USB 3.0) device umass #m Disks/Mass storage - Requires scbus and da device uhid #m "Human Interface Devices" device ukbd #m Keyboard # MMC/SD device mmc #m MMC/SD bus device mmcsd #m MMC/SD memory card device sdhci #m Generic PCI SD Host Controller # Serial (COM) ports device uart #!m Generic UART driver device puc #m Multi I/O cards and multi-channel UARTs # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc #!b AT keyboard controller device atkbd #!b AT keyboard device psm #!b PS/2 mouse device kbdmux #m keyboard multiplexer # vt is the new video console driver device vt #b device vt_vga #b VGA device vt_efifb #b EFI framebuffer options TERMINAL_NORM_ATTR = (FG_GREEN|BG_BLACK) # def to SC_NORM_ATTR options TERMINAL_KERN_ATTR = (FG_YELLOW|BG_BLACK) # def to SC_KERNEL_CONS_ATTR # VirtIO support device virtio #m Generic VirtIO bus (required) device virtio_pci #m VirtIO PCI device device virtio_blk #m VirtIO Block device device virtio_scsi #m VirtIO SCSI device device virtio_balloon #m VirtIO Memory Balloon device # Filesystems options FFS #!b Berkeley Fast Filesystem options SOFTUPDATES #b Enable FFS soft updates support options DIRECTIO #o Attempt to bypass the buffer cache and put data directly into the userland buffer for read operation when O_DIRECT flag is set on the file. options UFS_ACL #b Support for access control lists options UFS_DIRHASH #b Improve performance on big directories options UFS_GJOURNAL #b Enable gjournal-based UFS journaling options MSDOSFS #m MS DOS File System (FAT, FAT32) options MSDOSFS_ICONV #m options CD9660 #m ISO 9660 filesystem options CD9660_ICONV #m options UDF #m Universal Disk Format options UDF_ICONV #m options NULLFS #m NULL filesystem options TMPFS #m Efficient memory filesystem # GEOM options GEOM_PART_APM #m Apple partitioning #options GEOM_PART_BSD #md BSD disklabel options GEOM_PART_BSD64 #m BSD disklabel64 #options GEOM_PART_EBR #md Extended Boot Records #options GEOM_PART_EBR_COMPAT #md Backward compatible partition names #options GEOM_PART_MBR #md MBR partitioning #options GEOM_PART_GPT #md GPT partitioning options GEOM_PART_LDM #m Logical Disk Manager options GEOM_CACHE #m Disk cache. options GEOM_CONCAT #m Disk concatenation. options GEOM_ELI #m Disk encryption. options GEOM_JOURNAL #m Journaling. options GEOM_LABEL #m Providers labelization. options GEOM_LINUX_LVM #m Linux LVM2 volumes options GEOM_MAP #m Map based partitioning options GEOM_MIRROR #m Disk mirroring. options GEOM_STRIPE #m Disk striping. # Pseudo devices #device mem #!d Memory and kernel memory devices #device io #!d I/O device device aesni #m AES-NI OpenCrypto module device crypto #m core crypto support device random #m Entropy device options RANDOM_ENABLE_UMA #o Obtain entropy from the zone allocator. device loop #!b Network loopback device ether #!b Ethernet support device vlan #m 802.1Q VLAN support device vxlan #m VXLAN encapsulation of Ethernet frames in UDP packets according to RFC7348. device if_bridge #m Bridge interface. device tuntap #m Packet tunnel. device gif #m IPv6 and IPv4 tunneling device bpf #b Berkeley packet filter, required for DHCP device md #m Memory "disks" #options MD_ROOT #o MD is a potential root device #options MD_ROOT_READONLY #o Write-protect the md root device so that it may not be mounted writeable. device pty #!m Pseudo-ttys (telnet etc) device snp #m Snoop device - to look at pty/vty/etc.. # NETWORKING OPTIONS options INET #!b InterNETworking options INET6 #b IPv6 communications protocols options ACCEPT_FILTER_DATA #m options ACCEPT_FILTER_DNS #m options ACCEPT_FILTER_HTTP #m options PCBGROUP #b Connection groups #options RSS #b Provides ordering and explicit affinity, depends on PCBGROUP / BROKEN: 2018.04.17 options TCP_OFFLOAD #o TCP offload options TCP_BLACKBOX #o Enhanced TCP event logging options TCP_HHOOK #o hhook(9) framework for TCP options TCP_RFC7413 #o Server-side implementation of TCP Fast Open (TFO) [RFC7413] options TCP_RFC7413_MAX_KEYS=2 #o options TCPHPTS #o high precision timer system for tcp. #options TCPDEBUG #o #options TCP_SIGNATURE #o include support for RFC 2385 (Protection of BGP Sessions via the TCP MD5 Signature Option), dev crypto reqyired #options IPDIVERT #o divert sockets #options IPSTEALTH #o support for stealth forwarding #options ROUTETABLES=2 #o 1 is back compatible. #options FLOWTABLE #o per-cpu routing cache #options RADIX_MPATH #o (8.0+) Support for ECMP. >1 route for dst. Works even with default route, can use it as LB for two ISP #options MROUTING #o Multicast routing # ipfw options options IPFIREWALL_VERBOSE #o enable logging to syslogd(8) options IPFIREWALL_VERBOSE_LIMIT=256 #o limit verbosity options IPFIREWALL_DEFAULT_TO_ACCEPT #o allow everything by default # Debugging support. Always need this: makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols options HWPMC_HOOKS #oD Necessary kernel hooks for hwpmc(4) options KDB #oD Enable kernel debugger support, rquied for DDB, GDB. Little or no performance overhead. options KDB_TRACE #oD Set debug.trace_on_panic=1 - Print a stack trace for a panic. options KDB_UNATTENDED #oD Set debug.debugger_on_panic=0 - reboot. options KTRACE #oD ktrace(1) support options STACK #oD stack(9) support makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support #options KDTRACE_FRAME #oD Ensure frames are compiled in #options KDTRACE_HOOKS #oD Kernel DTrace hooks options PANIC_REBOOT_WAIT_TIME=16 #o Set the amount of time (in seconds) the system will wait before rebooting automatically when a kernel panic occurs. (-1) = inf # For full debugger support use (turn off in stable branch): #options DDB #oD Support DDB. #options DDB_CTF #oD Kernel ELF linker loads CTF data #options GDB #oD Support remote GDB. #options DEADLKRES #oD Enable the deadlock resolver #options INVARIANTS #oD Enable calls of extra sanity checking #options INVARIANT_SUPPORT #oD Extra sanity checks of internal structures, required by INVARIANTS #options DIAGNOSTIC #oD Enable additional, more expensive diagnostic tests along the lines of options INVARIANTS. #options WITNESS #oD Enable checks to detect deadlocks and cycles #options WITNESS_SKIPSPIN #oD Don't run witness on spinlocks for speed #options DEBUG_MEMGUARD #oD memguard(9) memory allocator for debugging purposes #options MALLOC_DEBUG_MAXZONES=8 #oD Separate malloc(9) zones #options COUNT_XINVLTLB_HITS #oD Counters for TLB events #options COUNT_IPIS #oD Per-CPU IPI interrupt counters #options SOCKBUF_DEBUG #oD Perform extensive run-time consistency checking on socket buffers #options DEBUG_VFS_LOCKS #oD Track lock acquisition points for lockmgr/vnode locks, expanding the amount of information displayed by show lockedvnods in DDB #options BREAK_TO_DEBUGGER #oD #options ALT_BREAK_TO_DEBUGGER #oD