Newer
Older
See below the sub-sections and for each section the **changes** that are done in the Kernel Config.
## General setup -> Preemption Model
# Enable Fully Preemptible Kernel (real-time)!
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_RT=y
# Enable PREEMPT_RCU
CONFIG_PREEMPT_RCU=y
CONFIG_RCU_EXPERT=y
CONFIG_RCU_FANOUT=64
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FAST_NO_HZ is not set
CONFIG_RCU_BOOST=y
CONFIG_RCU_BOOST_DELAY=0
CONFIG_RCU_NOCB_CPU=y
# CONFIG_TASKS_TRACE_RCU_READ_MB is not set
```
## Processor type and features
```conf
# Just support X86 CPUs (the majority)
# And Increase the timer interrupt frequency to 1000HZ
# CONFIG_HZ_250 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
# Disable some kernel modules, you don't need on a desktop PC
# CONFIG_MFD_CROS_EC is not set
# CONFIG_CHROME_PLATFORMS is not set
```
### -> X86 Platform Specific Device Drivers
```conf
# Disable even more modules; all laptops modules and related modules;
# don't use a laptop for gaming/real-time apps, use a decent desktop PC.
# CONFIG_I8K is not set
# CONFIG_ALIENWARE_WMI is not set
# CONFIG_HUAWEI_WMI is not set
# CONFIG_XIAOMI_WMI is not set
# CONFIG_ACERHDF is not set
# CONFIG_ACER_WIRELESS is not set
# CONFIG_ACER_WMI is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_ASUS_WIRELESS is not set
# CONFIG_ASUS_WMI is not set
# CONFIG_EEEPC_LAPTOP is not set
# CONFIG_DELL_LAPTOP is not set
# CONFIG_DELL_WMI is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_FUJITSU_TABLET is not set
# CONFIG_HP_ACCEL is not set
# CONFIG_HP_WIRELESS is not set
# CONFIG_HP_WMI is not set
# CONFIG_IDEAPAD_LAPTOP is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_INTEL_ATOMISP2_LED is not set
# CONFIG_INTEL_ATOMISP2_PM is not set
# CONFIG_INTEL_CHT_INT33FE is not set
# CONFIG_INTEL_HID_EVENT is not set
# CONFIG_INTEL_INT0002_VGPIO is not set
# CONFIG_INTEL_MENLOW is not set
# CONFIG_INTEL_OAKTRAIL is not set
# CONFIG_INTEL_VBTN is not set
# CONFIG_SURFACE_3_BUTTON is not set
# CONFIG_SURFACE_3_POWER_OPREGION is not set
# CONFIG_SURFACE_PRO3_BUTTON is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_MSI_WMI is not set
# CONFIG_SAMSUNG_LAPTOP is not set
# CONFIG_SAMSUNG_Q10 is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_TOSHIBA_BT_RFKILL is not set
# CONFIG_TOSHIBA_HAPS is not set
# CONFIG_ACPI_CMPC is not set
# CONFIG_COMPAL_LAPTOP is not set
# CONFIG_LG_LAPTOP is not set
# CONFIG_PANASONIC_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_TOUCHSCREEN_DMI is not set
## Power management and ACPI options
# Disable suspend features (I hate suspend), also therefor tracing is not needed anymore
# CONFIG_SUSPEND is not set
# CONFIG_PM_TRACE_RTC is not set
# Disable the two lowest power saving options (switching between CPU frequency scales takes time, causing latencies)
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
## General architecture-dependent options
```conf
# Enabling Architecture support RT is done automatically; when using a RT kernel branch
CONFIG_ARCH_SUPPORTS_RT=y
```
## Networking support
### -> Networking options -> TCP/IP networking
# Enable Google BBR TCP protocol (instead of cubic) as default congestion control
CONFIG_TCP_CONG_CUBIC=m
CONFIG_TCP_CONG_BBR=y
CONFIG_DEFAULT_BBR=y
CONFIG_DEFAULT_TCP_CONG="bbr"
# Enable also Multipath TCP for IPv6
CONFIG_MPTCP=y
CONFIG_INET_MPTCP_DIAG=m
CONFIG_MPTCP_IPV6=y
### -> Networking options -> QoS and/or fair queueing
# Enable Propertial Integral Controller Enhanced module: rfc8033, addressing the Bufferbloat problem,
# and make FQ-PIE default.
CONFIG_NET_SCH_FQ_PIE=y
CONFIG_NET_SCH_DEFAULT=y
# CONFIG_DEFAULT_FQ is not set
# CONFIG_DEFAULT_CODEL is not set
# CONFIG_DEFAULT_FQ_CODEL is not set
CONFIG_DEFAULT_FQ_PIE=y
# CONFIG_DEFAULT_SFQ is not set
# CONFIG_DEFAULT_PFIFO_FAST is not set
CONFIG_DEFAULT_NET_SCH="fq_pie"
## Device Drivers
### -> DMA Engine support
```conf
# Enable all direct access memory modules
CONFIG_INTEL_IDXD=m
CONFIG_PLX_DMA=m
CONFIG_XILINX_ZYNQMP_DPDMA=m
CONFIG_SF_PDMA=m
```
# DMA buffer shared between drivers in Userland, System heap and CMA heap
CONFIG_DMABUF_HEAPS=y
CONFIG_DMABUF_HEAPS_SYSTEM=y
CONFIG_DMABUF_HEAPS_CMA=y
```
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
## Kernel hacking
```conf
# Disable debugging of the preemptible kernel, get no overhead by debug features.
# And disable debugging malicious code as well.
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_DEBUG_MISC is not set
```
### -> Compile-time checks and compiler options
```conf
# Disable debug explicitly, so no dbg packages are created
CONFIG_DEBUG_INFO=n
```
### -> Generic Kernel Debugging Instruments
```conf
# Disable remote kernel debugging
# CONFIG_KGDB is not set
```
### -> x86 Debugging
```conf
# Change to ORC unwinder (iso frame pointer), which increase performance because the debuginfo is out of band
CONFIG_UNWINDER_ORC=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
```