From d00b1449e75c5f65916840707fc5381e9b032999 Mon Sep 17 00:00:00 2001 From: Thomas Kuschel Date: Sun, 13 Apr 2025 21:34:28 +0200 Subject: [PATCH] UPD english in General Setup --- config-6.14.2 | 37 +- config-6.14.2.patch | 344 +++++++++--------- documentation/linux_configuration.pdf | 4 +- .../linux_configuration_01_general_setup.tex | 338 +++++++++++++++-- 4 files changed, 499 insertions(+), 224 deletions(-) diff --git a/config-6.14.2 b/config-6.14.2 index 2c25928..785e055 100644 --- a/config-6.14.2 +++ b/config-6.14.2 @@ -12,7 +12,6 @@ CONFIG_LD_IS_BFD=y CONFIG_LD_VERSION=24400 CONFIG_LLD_VERSION=0 CONFIG_RUSTC_VERSION=108600 -CONFIG_RUST_IS_AVAILABLE=y CONFIG_RUSTC_LLVM_VERSION=190107 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y @@ -132,16 +131,18 @@ CONFIG_BPF_UNPRIV_DEFAULT_OFF=y CONFIG_BPF_LSM=y # end of BPF subsystem -CONFIG_PREEMPT_VOLUNTARY_BUILD=y +CONFIG_PREEMPT_BUILD=y CONFIG_ARCH_HAS_PREEMPT_LAZY=y # CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set -# CONFIG_PREEMPT_LAZY is not set +CONFIG_PREEMPT_LAZY=y # CONFIG_PREEMPT_RT is not set +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPTION=y # CONFIG_PREEMPT_DYNAMIC is not set -CONFIG_SCHED_CORE=y -CONFIG_SCHED_CLASS_EXT=y +# CONFIG_SCHED_CORE is not set +# CONFIG_SCHED_CLASS_EXT is not set # # CPU/Task time and stats accounting @@ -165,10 +166,12 @@ CONFIG_CPU_ISOLATION=y # RCU Subsystem # CONFIG_TREE_RCU=y +CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU_GENERIC=y CONFIG_NEED_TASKS_RCU=y +CONFIG_TASKS_RCU=y CONFIG_TASKS_RUDE_RCU=y CONFIG_TASKS_TRACE_RCU=y CONFIG_RCU_STALL_COMMON=y @@ -214,7 +217,6 @@ CONFIG_GROUP_SCHED_WEIGHT=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set -CONFIG_EXT_GROUP_SCHED=y CONFIG_SCHED_MM_CID=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_RDMA=y @@ -308,9 +310,6 @@ CONFIG_PERF_EVENTS=y CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y -CONFIG_RUST=y -CONFIG_RUSTC_VERSION_TEXT="rustc 1.86.0 (05f9846f8 2025-03-31) (Arch Linux rust 1:1.86.0-1)" -CONFIG_BINDGEN_VERSION_TEXT="bindgen 0.71.1" CONFIG_TRACEPOINTS=y # @@ -1036,11 +1035,7 @@ CONFIG_BFQ_GROUP_IOSCHED=y CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_INLINE_READ_UNLOCK=y -CONFIG_INLINE_READ_UNLOCK_IRQ=y -CONFIG_INLINE_WRITE_UNLOCK=y -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y @@ -2319,7 +2314,6 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_FW_LOADER=y CONFIG_FW_LOADER_DEBUG=y -CONFIG_RUST_FW_LOADER_ABSTRACTIONS=y CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_FW_LOADER_SYSFS=y CONFIG_EXTRA_FIRMWARE="" @@ -2635,7 +2629,6 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m CONFIG_VIRTIO_BLK=y -# CONFIG_BLK_DEV_RUST_NULL is not set CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_UBLK=m CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y @@ -5999,6 +5992,7 @@ CONFIG_MEDIA_CEC_RC=y CONFIG_MEDIA_CEC_SUPPORT=y CONFIG_CEC_CH7322=m CONFIG_CEC_CROS_EC=m +# CONFIG_CEC_GPIO is not set CONFIG_CEC_SECO=m CONFIG_CEC_SECO_RC=y CONFIG_USB_EXTRON_DA_HD_4K_PLUS_CEC=m @@ -6928,9 +6922,6 @@ CONFIG_DRM_PANIC_FOREGROUND_COLOR=0xffffff CONFIG_DRM_PANIC_BACKGROUND_COLOR=0x0000aa # CONFIG_DRM_PANIC_DEBUG is not set CONFIG_DRM_PANIC_SCREEN="qr_code" -CONFIG_DRM_PANIC_SCREEN_QR_CODE=y -CONFIG_DRM_PANIC_SCREEN_QR_CODE_URL="https://panic.archlinux.org/panic_report#" -CONFIG_DRM_PANIC_SCREEN_QR_VERSION=40 # CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set # CONFIG_DRM_DEBUG_MODESET_LOCK is not set CONFIG_DRM_CLIENT=y @@ -11820,6 +11811,8 @@ CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y # end of Scheduler Debugging +# CONFIG_DEBUG_PREEMPT is not set + # # Lock Debugging (spinlocks, mutexes, etc...) # @@ -11918,6 +11911,7 @@ CONFIG_FPROBE=y CONFIG_FUNCTION_PROFILER=y CONFIG_STACK_TRACER=y # CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set CONFIG_SCHED_TRACER=y CONFIG_HWLAT_TRACER=y CONFIG_OSNOISE_TRACER=y @@ -12057,8 +12051,5 @@ CONFIG_MEMTEST=y # # Rust hacking # -# CONFIG_RUST_DEBUG_ASSERTIONS is not set -CONFIG_RUST_OVERFLOW_CHECKS=y -# CONFIG_RUST_BUILD_ASSERT_ALLOW is not set # end of Rust hacking # end of Kernel hacking diff --git a/config-6.14.2.patch b/config-6.14.2.patch index e81fd0c..0299f67 100644 --- a/config-6.14.2.patch +++ b/config-6.14.2.patch @@ -1,6 +1,14 @@ ---- ../config 2025-04-11 02:26:45.556952656 +0200 -+++ .config 2025-04-12 12:56:30.139354918 +0200 -@@ -33,7 +33,7 @@ +--- ../config 2025-04-11 00:33:34.245064833 +0200 ++++ .config 2025-04-13 21:14:44.830164220 +0200 +@@ -12,7 +12,6 @@ + CONFIG_LD_VERSION=24400 + CONFIG_LLD_VERSION=0 + CONFIG_RUSTC_VERSION=108600 +-CONFIG_RUST_IS_AVAILABLE=y + CONFIG_RUSTC_LLVM_VERSION=190107 + CONFIG_CC_CAN_LINK=y + CONFIG_CC_CAN_LINK_STATIC=y +@@ -33,7 +32,7 @@ # CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set @@ -9,7 +17,7 @@ CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_BUILD_SALT="" -@@ -52,13 +52,13 @@ +@@ -52,13 +51,13 @@ # CONFIG_KERNEL_LZ4 is not set CONFIG_KERNEL_ZSTD=y CONFIG_DEFAULT_INIT="" @@ -25,7 +33,7 @@ CONFIG_CROSS_MEMORY_ATTACH=y # CONFIG_USELIB is not set CONFIG_AUDIT=y -@@ -83,7 +83,6 @@ +@@ -83,7 +82,6 @@ CONFIG_IRQ_MSI_IOMMU=y CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y @@ -33,7 +41,7 @@ CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set -@@ -112,7 +111,7 @@ +@@ -112,7 +110,7 @@ CONFIG_NO_HZ_FULL=y CONFIG_CONTEXT_TRACKING_USER=y # CONFIG_CONTEXT_TRACKING_USER_FORCE is not set @@ -42,28 +50,26 @@ CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 # end of Timers subsystem -@@ -133,15 +132,14 @@ - CONFIG_BPF_LSM=y - # end of BPF subsystem - --CONFIG_PREEMPT_BUILD=y -+CONFIG_PREEMPT_VOLUNTARY_BUILD=y +@@ -137,21 +135,21 @@ CONFIG_ARCH_HAS_PREEMPT_LAZY=y # CONFIG_PREEMPT_NONE is not set --# CONFIG_PREEMPT_VOLUNTARY is not set + # CONFIG_PREEMPT_VOLUNTARY is not set -CONFIG_PREEMPT=y -+CONFIG_PREEMPT_VOLUNTARY=y +-# CONFIG_PREEMPT_LAZY is not set +# CONFIG_PREEMPT is not set - # CONFIG_PREEMPT_LAZY is not set --CONFIG_PREEMPT_COUNT=y --CONFIG_PREEMPTION=y --CONFIG_PREEMPT_DYNAMIC=y ++CONFIG_PREEMPT_LAZY=y +# CONFIG_PREEMPT_RT is not set + CONFIG_PREEMPT_COUNT=y + CONFIG_PREEMPTION=y +-CONFIG_PREEMPT_DYNAMIC=y +-CONFIG_SCHED_CORE=y +-CONFIG_SCHED_CLASS_EXT=y +# CONFIG_PREEMPT_DYNAMIC is not set - CONFIG_SCHED_CORE=y - CONFIG_SCHED_CLASS_EXT=y ++# CONFIG_SCHED_CORE is not set ++# CONFIG_SCHED_CLASS_EXT is not set -@@ -150,8 +148,7 @@ + # + # CPU/Task time and stats accounting # CONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_VIRT_CPU_ACCOUNTING_GEN=y @@ -73,18 +79,17 @@ CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y -@@ -168,46 +165,31 @@ - # RCU Subsystem +@@ -169,45 +167,32 @@ # CONFIG_TREE_RCU=y --CONFIG_PREEMPT_RCU=y + CONFIG_PREEMPT_RCU=y -CONFIG_RCU_EXPERT=y +# CONFIG_RCU_EXPERT is not set CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU_GENERIC=y -# CONFIG_FORCE_TASKS_RCU is not set CONFIG_NEED_TASKS_RCU=y --CONFIG_TASKS_RCU=y + CONFIG_TASKS_RCU=y -# CONFIG_FORCE_TASKS_RUDE_RCU is not set CONFIG_TASKS_RUDE_RCU=y -# CONFIG_FORCE_TASKS_TRACE_RCU is not set @@ -125,7 +130,7 @@ # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y -@@ -219,8 +201,6 @@ +@@ -219,8 +204,6 @@ CONFIG_GCC_NO_STRINGOP_OVERFLOW=y CONFIG_CC_NO_STRINGOP_OVERFLOW=y CONFIG_ARCH_SUPPORTS_INT128=y @@ -134,15 +139,17 @@ CONFIG_SLAB_OBJ_EXT=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y -@@ -236,7 +216,6 @@ +@@ -234,9 +217,7 @@ + CONFIG_FAIR_GROUP_SCHED=y + CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set - CONFIG_EXT_GROUP_SCHED=y +-CONFIG_EXT_GROUP_SCHED=y CONFIG_SCHED_MM_CID=y -CONFIG_UCLAMP_TASK_GROUP=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_RDMA=y CONFIG_CGROUP_DMEM=y -@@ -265,12 +244,12 @@ +@@ -265,12 +246,12 @@ CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" @@ -161,7 +168,7 @@ CONFIG_RD_ZSTD=y CONFIG_BOOT_CONFIG=y # CONFIG_BOOT_CONFIG_FORCE is not set -@@ -279,22 +258,23 @@ +@@ -279,22 +260,23 @@ CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_LD_ORPHAN_WARN=y @@ -189,7 +196,7 @@ CONFIG_FUTEX=y CONFIG_FUTEX_PI=y CONFIG_EPOLL=y -@@ -308,10 +288,12 @@ +@@ -308,10 +290,12 @@ CONFIG_MEMBARRIER=y CONFIG_KCMP=y CONFIG_RSEQ=y @@ -203,7 +210,17 @@ CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_HAVE_PERF_EVENTS=y -@@ -374,8 +356,7 @@ +@@ -326,9 +310,6 @@ + + CONFIG_SYSTEM_DATA_VERIFICATION=y + CONFIG_PROFILING=y +-CONFIG_RUST=y +-CONFIG_RUSTC_VERSION_TEXT="rustc 1.86.0 (05f9846f8 2025-03-31) (Arch Linux rust 1:1.86.0-1)" +-CONFIG_BINDGEN_VERSION_TEXT="bindgen 0.71.1" + CONFIG_TRACEPOINTS=y + + # +@@ -374,8 +355,7 @@ CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y @@ -213,7 +230,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # -@@ -383,51 +364,28 @@ +@@ -383,51 +363,28 @@ # CONFIG_SMP=y CONFIG_X86_X2APIC=y @@ -274,7 +291,7 @@ CONFIG_X86_TSC=y CONFIG_X86_HAVE_PAE=y CONFIG_X86_CMPXCHG64=y -@@ -436,73 +394,61 @@ +@@ -436,73 +393,61 @@ CONFIG_X86_DEBUGCTLMSR=y CONFIG_IA32_FEAT_CTL=y CONFIG_X86_VMX_FEATURE_NAMES=y @@ -370,7 +387,7 @@ CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 -@@ -511,24 +457,24 @@ +@@ -511,24 +456,24 @@ CONFIG_X86_UMIP=y CONFIG_CC_HAS_IBT=y CONFIG_X86_CET=y @@ -402,7 +419,7 @@ CONFIG_SCHED_HRTICK=y CONFIG_ARCH_SUPPORTS_KEXEC=y CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y -@@ -555,11 +501,10 @@ +@@ -555,11 +500,10 @@ CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -416,7 +433,7 @@ # end of Processor type and features CONFIG_CC_HAS_NAMED_AS=y -@@ -578,12 +523,9 @@ +@@ -578,12 +522,9 @@ CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y CONFIG_MITIGATION_RETPOLINE=y CONFIG_MITIGATION_RETHUNK=y @@ -429,7 +446,7 @@ CONFIG_MITIGATION_SLS=y CONFIG_MITIGATION_GDS=y CONFIG_MITIGATION_RFDS=y -@@ -605,6 +547,7 @@ +@@ -605,6 +546,7 @@ CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y @@ -437,7 +454,7 @@ CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_HIBERNATION_SNAPSHOT_DEV=y -@@ -622,6 +565,7 @@ +@@ -622,6 +564,7 @@ # CONFIG_PM_ADVANCED_DEBUG is not set # CONFIG_PM_TEST_SUSPEND is not set CONFIG_PM_SLEEP_DEBUG=y @@ -445,7 +462,7 @@ CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y CONFIG_PM_CLK=y -@@ -634,7 +578,6 @@ +@@ -634,7 +577,6 @@ CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y @@ -453,7 +470,7 @@ CONFIG_ACPI_THERMAL_LIB=y # CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SPCR_TABLE=y -@@ -671,11 +614,10 @@ +@@ -671,11 +613,10 @@ CONFIG_ACPI_SBS=m CONFIG_ACPI_HED=y CONFIG_ACPI_BGRT=y @@ -466,7 +483,7 @@ CONFIG_HAVE_ACPI_APEI=y CONFIG_HAVE_ACPI_APEI_NMI=y CONFIG_ACPI_APEI=y -@@ -734,9 +676,7 @@ +@@ -734,9 +675,7 @@ CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 CONFIG_X86_AMD_PSTATE_UT=m CONFIG_X86_ACPI_CPUFREQ=m @@ -476,7 +493,7 @@ # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_P4_CLOCKMOD=m -@@ -753,8 +693,6 @@ +@@ -753,8 +692,6 @@ CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_CPU_IDLE_GOV_TEO=y @@ -485,7 +502,7 @@ # end of CPU Idle CONFIG_INTEL_IDLE=y -@@ -765,11 +703,10 @@ +@@ -765,11 +702,10 @@ # CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y @@ -499,7 +516,7 @@ # end of Bus options (PCI etc.) # -@@ -806,21 +743,17 @@ +@@ -806,21 +742,17 @@ CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y CONFIG_KVM_GENERIC_MMU_NOTIFIER=y CONFIG_KVM_ELIDE_TLB_FLUSH_IF_YOUNG=y @@ -525,7 +542,7 @@ CONFIG_KVM_EXTERNAL_WRITE_TRACKING=y CONFIG_KVM_MAX_NR_VCPUS=1024 CONFIG_AS_AVX512=y -@@ -832,7 +765,6 @@ +@@ -832,7 +764,6 @@ CONFIG_AS_VPCLMULQDQ=y CONFIG_AS_WRUSS=y CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y @@ -533,7 +550,7 @@ # # General architecture-dependent options -@@ -974,7 +906,6 @@ +@@ -974,7 +905,6 @@ CONFIG_ARCH_USE_MEMREMAP_PROT=y CONFIG_LOCK_EVENT_COUNTS=y CONFIG_ARCH_HAS_MEM_ENCRYPT=y @@ -541,7 +558,7 @@ CONFIG_HAVE_STATIC_CALL=y CONFIG_HAVE_STATIC_CALL_INLINE=y CONFIG_HAVE_PREEMPT_DYNAMIC=y -@@ -985,7 +916,6 @@ +@@ -985,7 +915,6 @@ CONFIG_ARCH_HAS_ELFCORE_COMPAT=y CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y CONFIG_DYNAMIC_SIGFRAME=y @@ -549,20 +566,7 @@ CONFIG_ARCH_HAS_HW_PTE_YOUNG=y CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y -@@ -1106,7 +1036,11 @@ - CONFIG_PREEMPT_NOTIFIERS=y - CONFIG_PADATA=y - CONFIG_ASN1=y --CONFIG_UNINLINE_SPIN_UNLOCK=y -+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -+CONFIG_INLINE_READ_UNLOCK=y -+CONFIG_INLINE_READ_UNLOCK_IRQ=y -+CONFIG_INLINE_WRITE_UNLOCK=y -+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y - CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y - CONFIG_MUTEX_SPIN_ON_OWNER=y - CONFIG_RWSEM_SPIN_ON_OWNER=y -@@ -1161,6 +1095,7 @@ +@@ -1161,6 +1090,7 @@ # Slab allocator options # CONFIG_SLUB=y @@ -570,7 +574,7 @@ CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_FREELIST_HARDENED=y -@@ -1179,7 +1114,6 @@ +@@ -1179,7 +1109,6 @@ CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y CONFIG_HAVE_GUP_FAST=y @@ -578,7 +582,7 @@ CONFIG_MEMORY_ISOLATION=y CONFIG_EXCLUSIVE_SYSTEM_RAM=y CONFIG_HAVE_BOOTMEM_INFO_NODE=y -@@ -1228,7 +1162,6 @@ +@@ -1228,7 +1157,6 @@ CONFIG_ARCH_SUPPORTS_PUD_PFNMAP=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y @@ -586,7 +590,7 @@ CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_CMA=y CONFIG_CMA_DEBUGFS=y -@@ -1242,6 +1175,7 @@ +@@ -1242,6 +1170,7 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y CONFIG_ARCH_HAS_PTE_DEVMAP=y @@ -594,7 +598,7 @@ CONFIG_ZONE_DMA=y CONFIG_ZONE_DMA32=y CONFIG_ZONE_DEVICE=y -@@ -1257,7 +1191,6 @@ +@@ -1257,7 +1186,6 @@ # CONFIG_GUP_TEST is not set # CONFIG_DMAPOOL_TEST is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y @@ -602,7 +606,7 @@ CONFIG_MEMFD_CREATE=y CONFIG_SECRETMEM=y CONFIG_ANON_VMA_NAME=y -@@ -1274,8 +1207,6 @@ +@@ -1274,8 +1202,6 @@ CONFIG_LOCK_MM_AND_FIND_VMA=y CONFIG_IOMMU_MM_DATA=y CONFIG_EXECMEM=y @@ -611,7 +615,7 @@ CONFIG_ARCH_HAS_USER_SHADOW_STACK=y CONFIG_ARCH_SUPPORTS_PT_RECLAIM=y CONFIG_PT_RECLAIM=y -@@ -2001,7 +1932,6 @@ +@@ -2001,7 +1927,6 @@ CONFIG_VMWARE_VMCI_VSOCKETS=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO_VSOCKETS_COMMON=m @@ -619,7 +623,7 @@ CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m -@@ -2154,6 +2084,7 @@ +@@ -2154,6 +2079,7 @@ CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set @@ -627,7 +631,7 @@ CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y CONFIG_CFG80211_DEFAULT_PS=y -@@ -2178,7 +2109,6 @@ +@@ -2178,7 +2104,6 @@ CONFIG_NET_9P=m CONFIG_NET_9P_FD=m CONFIG_NET_9P_VIRTIO=m @@ -635,7 +639,7 @@ CONFIG_NET_9P_USBG=m CONFIG_NET_9P_RDMA=m # CONFIG_NET_9P_DEBUG is not set -@@ -2276,7 +2206,6 @@ +@@ -2276,7 +2201,6 @@ # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set CONFIG_PCI_STUB=y CONFIG_PCI_PF_STUB=m @@ -643,7 +647,7 @@ CONFIG_PCI_ATS=y CONFIG_PCI_DOE=y CONFIG_PCI_LOCKLESS_CONFIG=y -@@ -2287,7 +2216,11 @@ +@@ -2287,7 +2211,11 @@ CONFIG_PCIE_TPH=y CONFIG_PCI_P2PDMA=y CONFIG_PCI_LABEL=y @@ -656,7 +660,7 @@ CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=10 CONFIG_HOTPLUG_PCI=y -@@ -2303,7 +2236,6 @@ +@@ -2303,7 +2231,6 @@ # PCI controller drivers # CONFIG_VMD=m @@ -664,7 +668,7 @@ # # Cadence-based PCIe controllers -@@ -2346,7 +2278,6 @@ +@@ -2346,7 +2273,6 @@ CONFIG_CXL_BUS=m CONFIG_CXL_PCI=m # CONFIG_CXL_MEM_RAW_COMMANDS is not set @@ -672,7 +676,15 @@ CONFIG_CXL_PMEM=m CONFIG_CXL_MEM=m CONFIG_CXL_PORT=m -@@ -2406,9 +2337,7 @@ +@@ -2388,7 +2314,6 @@ + # + CONFIG_FW_LOADER=y + CONFIG_FW_LOADER_DEBUG=y +-CONFIG_RUST_FW_LOADER_ABSTRACTIONS=y + CONFIG_FW_LOADER_PAGED_BUF=y + CONFIG_FW_LOADER_SYSFS=y + CONFIG_EXTRA_FIRMWARE="" +@@ -2406,9 +2331,7 @@ # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set @@ -682,7 +694,7 @@ CONFIG_GENERIC_CPU_DEVICES=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y -@@ -2484,7 +2413,6 @@ +@@ -2484,7 +2407,6 @@ CONFIG_EFI_ESRT=y CONFIG_EFI_VARS_PSTORE=y CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y @@ -690,7 +702,7 @@ CONFIG_EFI_DXE_MEM_ATTRIBUTES=y CONFIG_EFI_RUNTIME_WRAPPERS=y CONFIG_EFI_BOOTLOADER_CONTROL=m -@@ -2499,7 +2427,6 @@ +@@ -2499,7 +2421,6 @@ CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y # CONFIG_EFI_DISABLE_RUNTIME is not set CONFIG_EFI_COCO_SECRET=y @@ -698,16 +710,18 @@ CONFIG_EFI_EMBEDDED_FIRMWARE=y # end of EFI (Extensible Firmware Interface) Support -@@ -2707,8 +2634,6 @@ +@@ -2707,10 +2628,7 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m -CONFIG_XEN_BLKDEV_FRONTEND=m -CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=y - # CONFIG_BLK_DEV_RUST_NULL is not set +-# CONFIG_BLK_DEV_RUST_NULL is not set CONFIG_BLK_DEV_RBD=m -@@ -2772,7 +2697,6 @@ + CONFIG_BLK_DEV_UBLK=m + CONFIG_BLKDEV_UBLK_LEGACY_OPCODES=y +@@ -2772,7 +2690,6 @@ CONFIG_SENSORS_APDS990X=m CONFIG_HMC6352=m CONFIG_DS1682=m @@ -715,7 +729,7 @@ CONFIG_LATTICE_ECP3_CONFIG=m # CONFIG_SRAM is not set CONFIG_DW_XDATA_PCIE=m -@@ -2920,8 +2844,6 @@ +@@ -2920,8 +2837,6 @@ CONFIG_SCSI_MYRB=m CONFIG_SCSI_MYRS=m CONFIG_VMWARE_PVSCSI=m @@ -724,7 +738,7 @@ CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m -@@ -3527,7 +3449,6 @@ +@@ -3527,7 +3442,6 @@ CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_MSCC_OCELOT_SWITCH_LIB=m CONFIG_NET_VENDOR_MICROSOFT=y @@ -732,7 +746,7 @@ CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y -@@ -4284,12 +4205,9 @@ +@@ -4284,12 +4198,9 @@ CONFIG_MTK_T7XX=m # end of Wireless WAN @@ -745,7 +759,7 @@ CONFIG_NETDEVSIM=m CONFIG_NET_FAILOVER=m CONFIG_ISDN=y -@@ -4385,7 +4303,6 @@ +@@ -4385,7 +4296,6 @@ CONFIG_MOUSE_PS2_SENTELIC=y CONFIG_MOUSE_PS2_TOUCHKIT=y CONFIG_MOUSE_PS2_FOCALTECH=y @@ -753,7 +767,7 @@ CONFIG_MOUSE_PS2_SMBUS=y CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_APPLETOUCH=m -@@ -4563,7 +4480,6 @@ +@@ -4563,7 +4473,6 @@ CONFIG_INPUT_BMA150=m # CONFIG_INPUT_CS40L50_VIBRA is not set CONFIG_INPUT_E3X0_BUTTON=m @@ -761,7 +775,7 @@ CONFIG_INPUT_MAX77693_HAPTIC=m CONFIG_INPUT_MAX8925_ONKEY=m CONFIG_INPUT_MAX8997_HAPTIC=m -@@ -4609,7 +4525,6 @@ +@@ -4609,7 +4518,6 @@ CONFIG_INPUT_IQS7222=m CONFIG_INPUT_CMA3000=m CONFIG_INPUT_CMA3000_I2C=m @@ -769,7 +783,7 @@ CONFIG_INPUT_IDEAPAD_SLIDEBAR=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_DRV260X_HAPTICS=m -@@ -4648,7 +4563,6 @@ +@@ -4648,7 +4556,6 @@ CONFIG_SERIO_ALTERA_PS2=m CONFIG_SERIO_PS2MULT=m CONFIG_SERIO_ARC_PS2=m @@ -777,7 +791,7 @@ CONFIG_SERIO_GPIO_PS2=m CONFIG_USERIO=m CONFIG_GAMEPORT=m -@@ -4742,12 +4656,10 @@ +@@ -4742,12 +4649,10 @@ CONFIG_NOZOMI=m CONFIG_NULL_TTY=m CONFIG_HVC_DRIVER=y @@ -791,7 +805,7 @@ CONFIG_PRINTER=m CONFIG_LP_CONSOLE=y CONFIG_PPDEV=m -@@ -4795,7 +4707,6 @@ +@@ -4795,7 +4700,6 @@ CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m @@ -799,7 +813,7 @@ CONFIG_TCG_CRB=y CONFIG_TCG_VTPM_PROXY=m CONFIG_TCG_TIS_ST33ZP24=m -@@ -5001,13 +4912,11 @@ +@@ -5001,13 +4905,11 @@ CONFIG_PTP_1588_CLOCK_OPTIONAL=m CONFIG_DP83640_PHY=m CONFIG_PTP_1588_CLOCK_INES=m @@ -813,7 +827,7 @@ CONFIG_PTP_1588_CLOCK_OCP=m CONFIG_PTP_DFL_TOD=m # end of PTP clock support -@@ -5068,6 +4977,7 @@ +@@ -5068,6 +4970,7 @@ CONFIG_GPIO_ACPI=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set @@ -821,7 +835,7 @@ CONFIG_GPIO_CDEV=y CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_GENERIC=m -@@ -5196,6 +5106,7 @@ +@@ -5196,6 +5099,7 @@ # # GPIO Debugging utilities # @@ -829,7 +843,7 @@ # CONFIG_GPIO_VIRTUSER is not set # end of GPIO Debugging utilities -@@ -5364,8 +5275,6 @@ +@@ -5364,8 +5268,6 @@ CONFIG_SENSORS_ASUS_ROG_RYUJIN=m CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_K8TEMP=m @@ -838,7 +852,7 @@ CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATXP1=m -@@ -5752,7 +5661,6 @@ +@@ -5752,7 +5654,6 @@ CONFIG_NIC7018_WDT=m CONFIG_SIEMENS_SIMATIC_IPC_WDT=m CONFIG_MEN_A21_WDT=m @@ -846,7 +860,7 @@ # # PCI-based Watchdog Cards -@@ -6083,17 +5991,14 @@ +@@ -6083,17 +5984,15 @@ CONFIG_RC_XBOX_DVD=m CONFIG_CEC_CORE=m CONFIG_CEC_NOTIFIER=y @@ -861,10 +875,11 @@ CONFIG_CEC_CH7322=m CONFIG_CEC_CROS_EC=m -CONFIG_CEC_GPIO=m ++# CONFIG_CEC_GPIO is not set CONFIG_CEC_SECO=m CONFIG_CEC_SECO_RC=y CONFIG_USB_EXTRON_DA_HD_4K_PLUS_CEC=m -@@ -6565,8 +6470,6 @@ +@@ -6565,8 +6464,6 @@ CONFIG_VIDEOBUF2_DVB=m # end of Media drivers @@ -873,7 +888,7 @@ # # Media ancillary drivers # -@@ -6674,48 +6577,110 @@ +@@ -6674,48 +6571,110 @@ # end of Flash devices # @@ -989,7 +1004,7 @@ # # Media SPI Adapters -@@ -6727,7 +6692,7 @@ +@@ -6727,7 +6686,7 @@ CONFIG_MEDIA_TUNER=m # @@ -998,7 +1013,7 @@ # CONFIG_MEDIA_TUNER_E4000=m CONFIG_MEDIA_TUNER_FC0011=m -@@ -6738,6 +6703,7 @@ +@@ -6738,6 +6697,7 @@ CONFIG_MEDIA_TUNER_M88RS6000T=m CONFIG_MEDIA_TUNER_MAX2165=m CONFIG_MEDIA_TUNER_MC44S803=m @@ -1006,7 +1021,7 @@ CONFIG_MEDIA_TUNER_MT2060=m CONFIG_MEDIA_TUNER_MT2063=m CONFIG_MEDIA_TUNER_MT20XX=m -@@ -6765,9 +6731,10 @@ +@@ -6765,9 +6725,10 @@ CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_XC5000=m @@ -1018,7 +1033,7 @@ # # -@@ -6835,6 +6802,7 @@ +@@ -6835,6 +6796,7 @@ CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m @@ -1026,7 +1041,7 @@ CONFIG_DVB_DRXD=m CONFIG_DVB_EC100=m CONFIG_DVB_GP8PSK_FE=m -@@ -6843,6 +6811,7 @@ +@@ -6843,6 +6805,7 @@ CONFIG_DVB_NXT6000=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m @@ -1034,7 +1049,7 @@ CONFIG_DVB_SI2168=m CONFIG_DVB_SP887X=m CONFIG_DVB_STV0367=m -@@ -6850,6 +6819,7 @@ +@@ -6850,6 +6813,7 @@ CONFIG_DVB_TDA1004X=m CONFIG_DVB_ZD1301_DEMOD=m CONFIG_DVB_ZL10353=m @@ -1042,7 +1057,7 @@ # # DVB-C (cable) frontends -@@ -6887,6 +6857,7 @@ +@@ -6887,6 +6851,7 @@ # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # @@ -1050,7 +1065,7 @@ CONFIG_DVB_TC90522=m # -@@ -6909,8 +6880,10 @@ +@@ -6909,8 +6874,10 @@ CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_IX2505V=m @@ -1061,7 +1076,7 @@ CONFIG_DVB_LNBP21=m CONFIG_DVB_LNBP22=m CONFIG_DVB_M88RS2000=m -@@ -6922,6 +6895,7 @@ +@@ -6922,6 +6889,7 @@ # CONFIG_DVB_CXD2099=m CONFIG_DVB_SP2=m @@ -1069,7 +1084,7 @@ # # Tools to develop new frontends -@@ -6938,7 +6912,6 @@ +@@ -6938,7 +6906,6 @@ # CONFIG_AUXDISPLAY is not set # CONFIG_PANEL is not set CONFIG_AGP=y @@ -1077,16 +1092,19 @@ CONFIG_AGP_INTEL=m CONFIG_AGP_SIS=m CONFIG_AGP_VIA=m -@@ -6958,6 +6931,8 @@ - CONFIG_DRM_PANIC_SCREEN_QR_CODE=y - CONFIG_DRM_PANIC_SCREEN_QR_CODE_URL="https://panic.archlinux.org/panic_report#" - CONFIG_DRM_PANIC_SCREEN_QR_VERSION=40 +@@ -6955,9 +6922,8 @@ + CONFIG_DRM_PANIC_BACKGROUND_COLOR=0x0000aa + # CONFIG_DRM_PANIC_DEBUG is not set + CONFIG_DRM_PANIC_SCREEN="qr_code" +-CONFIG_DRM_PANIC_SCREEN_QR_CODE=y +-CONFIG_DRM_PANIC_SCREEN_QR_CODE_URL="https://panic.archlinux.org/panic_report#" +-CONFIG_DRM_PANIC_SCREEN_QR_VERSION=40 +# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set +# CONFIG_DRM_DEBUG_MODESET_LOCK is not set CONFIG_DRM_CLIENT=y CONFIG_DRM_CLIENT_LIB=y CONFIG_DRM_CLIENT_SELECTION=y -@@ -6968,6 +6943,7 @@ +@@ -6968,6 +6934,7 @@ # CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 @@ -1094,7 +1112,7 @@ CONFIG_DRM_CLIENT_LOG=y CONFIG_DRM_CLIENT_DEFAULT_FBDEV=y # CONFIG_DRM_CLIENT_DEFAULT_LOG is not set -@@ -7015,6 +6991,7 @@ +@@ -7015,6 +6982,7 @@ CONFIG_DRM_AMDGPU_CIK=y CONFIG_DRM_AMDGPU_USERPTR=y CONFIG_DRM_AMD_ISP=y @@ -1102,7 +1120,7 @@ # # ACP (Audio CoProcessor) Configuration -@@ -7049,6 +7026,27 @@ +@@ -7049,6 +7017,27 @@ CONFIG_DRM_I915_GVT_KVMGT=m CONFIG_DRM_I915_PXP=y CONFIG_DRM_I915_DP_TUNNEL=y @@ -1130,7 +1148,7 @@ CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 CONFIG_DRM_I915_FENCE_TIMEOUT=10000 CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 -@@ -7058,10 +7056,29 @@ +@@ -7058,10 +7047,29 @@ CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 CONFIG_DRM_I915_STOP_TIMEOUT=100 CONFIG_DRM_I915_TIMESLICE_DURATION=1 @@ -1160,7 +1178,7 @@ CONFIG_DRM_XE_JOB_TIMEOUT_MAX=10000 CONFIG_DRM_XE_JOB_TIMEOUT_MIN=1 CONFIG_DRM_XE_TIMESLICE_MAX=10000000 -@@ -7070,10 +7087,10 @@ +@@ -7070,10 +7078,10 @@ CONFIG_DRM_XE_PREEMPT_TIMEOUT_MAX=10000000 CONFIG_DRM_XE_PREEMPT_TIMEOUT_MIN=1 CONFIG_DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT=y @@ -1173,7 +1191,7 @@ CONFIG_DRM_GMA500=m CONFIG_DRM_UDL=m CONFIG_DRM_AST=m -@@ -7120,14 +7137,11 @@ +@@ -7120,14 +7128,11 @@ CONFIG_TINYDRM_SHARP_MEMORY=m CONFIG_TINYDRM_ST7586=m CONFIG_TINYDRM_ST7735R=m @@ -1188,7 +1206,7 @@ CONFIG_DRM_PANEL_BACKLIGHT_QUIRKS=m CONFIG_DRM_PRIVACY_SCREEN=y CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -@@ -7175,10 +7189,8 @@ +@@ -7175,10 +7180,8 @@ # CONFIG_FB_UDL is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set @@ -1199,7 +1217,7 @@ # CONFIG_FB_SSD1307 is not set # CONFIG_FB_SM712 is not set CONFIG_FB_CORE=y -@@ -7338,7 +7350,6 @@ +@@ -7338,7 +7341,6 @@ CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y @@ -1207,7 +1225,7 @@ CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m CONFIG_SND_PCMTEST=m -@@ -7677,6 +7688,7 @@ +@@ -7677,6 +7679,7 @@ CONFIG_SND_SOC_SOF_ACPI_DEV=m CONFIG_SND_SOC_SOF_DEBUG_PROBES=m CONFIG_SND_SOC_SOF_CLIENT=m @@ -1215,7 +1233,7 @@ CONFIG_SND_SOC_SOF=m CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y CONFIG_SND_SOC_SOF_IPC3=y -@@ -8061,7 +8073,6 @@ +@@ -8061,7 +8064,6 @@ CONFIG_SND_X86=y CONFIG_HDMI_LPE_AUDIO=m CONFIG_SND_SYNTH_EMUX=m @@ -1223,7 +1241,7 @@ CONFIG_SND_VIRTIO=m CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y -@@ -8187,7 +8198,6 @@ +@@ -8187,7 +8189,6 @@ CONFIG_HID_RMI=m CONFIG_HID_GREENASIA=m CONFIG_GREENASIA_FF=y @@ -1231,7 +1249,7 @@ CONFIG_HID_SMARTJOYPLUS=m CONFIG_SMARTJOYPLUS_FF=y CONFIG_HID_TIVO=m -@@ -8259,6 +8269,13 @@ +@@ -8259,6 +8260,13 @@ CONFIG_USB_HID=m CONFIG_HID_PID=y CONFIG_USB_HIDDEV=y @@ -1245,7 +1263,7 @@ # end of USB HID support CONFIG_USB_OHCI_LITTLE_ENDIAN=y -@@ -8281,6 +8298,7 @@ +@@ -8281,6 +8289,7 @@ # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_PRODUCTLIST is not set @@ -1253,7 +1271,7 @@ CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_AUTOSUSPEND_DELAY=2 CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -@@ -8315,7 +8333,6 @@ +@@ -8315,7 +8324,6 @@ CONFIG_USB_HCD_BCMA=m CONFIG_USB_HCD_SSB=m # CONFIG_USB_HCD_TEST_MODE is not set @@ -1261,7 +1279,7 @@ # # USB Device Class drivers -@@ -8898,7 +8915,6 @@ +@@ -8898,7 +8906,6 @@ # CONFIG_HFI1_DEBUG_SDMA_ORDER is not set # CONFIG_SDMA_VERBOSITY is not set CONFIG_INFINIBAND_IRDMA=m @@ -1269,7 +1287,7 @@ CONFIG_MLX4_INFINIBAND=m CONFIG_MLX5_INFINIBAND=m CONFIG_INFINIBAND_MTHCA=m -@@ -8929,9 +8945,7 @@ +@@ -8929,9 +8936,7 @@ CONFIG_EDAC=y CONFIG_EDAC_LEGACY_SYSFS=y # CONFIG_EDAC_DEBUG is not set @@ -1279,7 +1297,7 @@ CONFIG_EDAC_E752X=m CONFIG_EDAC_I82975X=m CONFIG_EDAC_I3000=m -@@ -9154,7 +9168,6 @@ +@@ -9154,7 +9159,6 @@ CONFIG_UIO_PCI_GENERIC=m CONFIG_UIO_NETX=m CONFIG_UIO_MF624=m @@ -1287,7 +1305,7 @@ CONFIG_UIO_DFL=m CONFIG_VFIO=m CONFIG_VFIO_DEVICE_CDEV=y -@@ -9187,11 +9200,7 @@ +@@ -9187,11 +9191,7 @@ CONFIG_VMGENID=y CONFIG_VBOXGUEST=m CONFIG_NITRO_ENCLAVES=m @@ -1299,7 +1317,7 @@ CONFIG_VIRTIO_ANCHOR=y CONFIG_VIRTIO=y CONFIG_VIRTIO_PCI_LIB=y -@@ -9213,7 +9222,6 @@ +@@ -9213,7 +9213,6 @@ CONFIG_VDPA_SIM=m CONFIG_VDPA_SIM_NET=m CONFIG_VDPA_SIM_BLOCK=m @@ -1307,7 +1325,7 @@ CONFIG_IFCVF=m CONFIG_MLX5_VDPA=y CONFIG_MLX5_VDPA_NET=m -@@ -9237,53 +9245,8 @@ +@@ -9237,53 +9236,8 @@ # # Microsoft Hyper-V guest support # @@ -1361,7 +1379,7 @@ # CONFIG_GREYBUS is not set # CONFIG_COMEDI is not set CONFIG_STAGING=y -@@ -9424,19 +9387,6 @@ +@@ -9424,19 +9378,6 @@ CONFIG_ACERHDF=m CONFIG_ACER_WIRELESS=m CONFIG_ACER_WMI=m @@ -1381,7 +1399,7 @@ CONFIG_AMD_3D_VCACHE=m CONFIG_AMD_WBRF=y CONFIG_ADV_SWBUTTON=m -@@ -9605,7 +9555,6 @@ +@@ -9605,7 +9546,6 @@ # Clock Source drivers # CONFIG_CLKEVT_I8253=y @@ -1389,7 +1407,7 @@ CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -@@ -9641,7 +9590,6 @@ +@@ -9641,7 +9581,6 @@ CONFIG_IOMMUFD_DRIVER_CORE=y CONFIG_IOMMUFD=m CONFIG_IRQ_REMAP=y @@ -1397,7 +1415,7 @@ CONFIG_VIRTIO_IOMMU=m # -@@ -10540,6 +10488,7 @@ +@@ -10540,6 +10479,7 @@ CONFIG_SERIAL_IPOCTAL=m CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=m @@ -1405,7 +1423,7 @@ CONFIG_RESET_TI_SYSCON=m CONFIG_RESET_TI_TPS380X=m -@@ -10586,9 +10535,6 @@ +@@ -10586,9 +10526,6 @@ CONFIG_RAS=y CONFIG_RAS_CEC=y # CONFIG_RAS_CEC_DEBUG is not set @@ -1415,7 +1433,7 @@ CONFIG_USB4=m # CONFIG_USB4_DEBUGFS_WRITE is not set # CONFIG_USB4_DMA_TEST is not set -@@ -10615,9 +10561,7 @@ +@@ -10615,9 +10552,7 @@ CONFIG_DAX=y CONFIG_DEV_DAX=m CONFIG_DEV_DAX_PMEM=m @@ -1425,7 +1443,7 @@ CONFIG_DEV_DAX_KMEM=m CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y -@@ -10669,8 +10613,6 @@ +@@ -10669,8 +10604,6 @@ CONFIG_FPGA_MGR_MICROCHIP_SPI=m CONFIG_FPGA_MGR_LATTICE_SYSCONFIG=m CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI=m @@ -1434,7 +1452,7 @@ CONFIG_MULTIPLEXER=m # -@@ -11132,11 +11074,9 @@ +@@ -11132,11 +11065,9 @@ CONFIG_TRUSTED_KEYS=m CONFIG_HAVE_TRUSTED_KEYS=y CONFIG_TRUSTED_KEYS_TPM=y @@ -1446,7 +1464,7 @@ CONFIG_SECURITY_DMESG_RESTRICT=y CONFIG_PROC_MEM_ALWAYS_FORCE=y # CONFIG_PROC_MEM_FORCE_PTRACE is not set -@@ -11478,11 +11418,6 @@ +@@ -11478,11 +11409,6 @@ CONFIG_CRYPTO_DEV_ATMEL_ECC=m CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m CONFIG_CRYPTO_DEV_CCP=y @@ -1458,7 +1476,7 @@ CONFIG_CRYPTO_DEV_NITROX=m CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_QAT=m -@@ -11556,9 +11491,8 @@ +@@ -11556,9 +11482,8 @@ CONFIG_CRYPTO_LIB_UTILS=y CONFIG_CRYPTO_LIB_AES=y CONFIG_CRYPTO_LIB_AESCFB=y @@ -1469,7 +1487,7 @@ CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m -@@ -11603,7 +11537,7 @@ +@@ -11603,7 +11528,7 @@ CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_COMPRESS=m CONFIG_LZ4HC_COMPRESS=m @@ -1478,7 +1496,7 @@ CONFIG_ZSTD_COMMON=y CONFIG_ZSTD_COMPRESS=y CONFIG_ZSTD_DECOMPRESS=y -@@ -11618,12 +11552,6 @@ +@@ -11618,12 +11543,6 @@ CONFIG_XZ_DEC_MICROLZMA=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set @@ -1491,7 +1509,7 @@ CONFIG_DECOMPRESS_ZSTD=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=m -@@ -11649,13 +11577,10 @@ +@@ -11649,13 +11568,10 @@ CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y @@ -1505,7 +1523,7 @@ # # Default contiguous memory area size: -@@ -11670,7 +11595,6 @@ +@@ -11670,7 +11586,6 @@ # CONFIG_DMA_MAP_BENCHMARK is not set CONFIG_SGL_ALLOC=y CONFIG_CHECK_SIGNATURE=y @@ -1513,7 +1531,7 @@ CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y -@@ -11775,7 +11699,9 @@ +@@ -11775,7 +11690,9 @@ # CONFIG_HEADERS_INSTALL is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y @@ -1523,7 +1541,7 @@ # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options -@@ -11839,6 +11765,8 @@ +@@ -11839,6 +11756,8 @@ # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_PER_CPU_MAPS is not set @@ -1532,7 +1550,7 @@ # CONFIG_MEM_ALLOC_PROFILING is not set CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y -@@ -11851,6 +11779,7 @@ +@@ -11851,6 +11770,7 @@ CONFIG_KFENCE_SAMPLE_INTERVAL=100 CONFIG_KFENCE_NUM_OBJECTS=255 CONFIG_KFENCE_DEFERRABLE=y @@ -1540,7 +1558,7 @@ CONFIG_KFENCE_STRESS_TEST_FAULTS=0 CONFIG_HAVE_ARCH_KMSAN=y # end of Memory Debugging -@@ -11865,7 +11794,6 @@ +@@ -11865,7 +11785,6 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y @@ -1548,16 +1566,7 @@ # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y CONFIG_HARDLOCKUP_DETECTOR=y -@@ -11892,8 +11820,6 @@ - CONFIG_SCHEDSTATS=y - # end of Scheduler Debugging - --# CONFIG_DEBUG_PREEMPT is not set -- - # - # Lock Debugging (spinlocks, mutexes, etc...) - # -@@ -11940,7 +11866,6 @@ +@@ -11940,7 +11859,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # CONFIG_RCU_CPU_STALL_CPUTIME is not set @@ -1565,15 +1574,7 @@ # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # end of RCU Debugging -@@ -11993,7 +11918,6 @@ - CONFIG_FUNCTION_PROFILER=y - CONFIG_STACK_TRACER=y - # CONFIG_IRQSOFF_TRACER is not set --# CONFIG_PREEMPT_TRACER is not set - CONFIG_SCHED_TRACER=y - CONFIG_HWLAT_TRACER=y - CONFIG_OSNOISE_TRACER=y -@@ -12128,7 +12052,6 @@ +@@ -12128,14 +12046,10 @@ # CONFIG_TEST_OBJPOOL is not set CONFIG_ARCH_USE_MEMTEST=y CONFIG_MEMTEST=y @@ -1581,3 +1582,10 @@ # end of Kernel Testing and Coverage # + # Rust hacking + # +-# CONFIG_RUST_DEBUG_ASSERTIONS is not set +-CONFIG_RUST_OVERFLOW_CHECKS=y +-# CONFIG_RUST_BUILD_ASSERT_ALLOW is not set + # end of Rust hacking + # end of Kernel hacking diff --git a/documentation/linux_configuration.pdf b/documentation/linux_configuration.pdf index 827924e..d0be3a6 100644 --- a/documentation/linux_configuration.pdf +++ b/documentation/linux_configuration.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bf5bb334bb5a77d7901e3b270aeec296448a9814d48ef1c3024270a1470bf6ca -size 3208217 +oid sha256:2063c9f93584c34549700704948b9c5009f2bce433752b1a22fd5e911cc6cc8c +size 3234915 diff --git a/documentation/linux_configuration_01_general_setup.tex b/documentation/linux_configuration_01_general_setup.tex index 3306c3b..07c0da2 100644 --- a/documentation/linux_configuration_01_general_setup.tex +++ b/documentation/linux_configuration_01_general_setup.tex @@ -316,8 +316,10 @@ Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie N. \english{Exposes internal state information through debugfs. Mostly for developers and debugging of hard to diagnose interrupt problems. If you don't know what to do here, say N.} + %1.16 Timers subsystem \subsection{Timers subsystem \texorpdfstring{$\rightarrow$}{->}} +\textit{Teilsystem Zeitgeber} \subsubsection{Timer tick handling \texorpdfstring{$\rightarrow$}{->}} Sie müssen aus den folgenden drei Möglichkeiten eine wählen: @@ -427,6 +429,7 @@ Berkeley Packet Filter, Firewall-Filtertechnik im Kernel CONFIG\_BPF\_SYSCALL [=y] \textbf{[Y]}\\ Aktivieren Sie den Systemaufruf bpf(), der es ermöglicht, BPF-Programme und -Maps über Dateideskriptoren zu manipulieren. +\english{Enable the bpf() system call that allows to manipulate BPF programs and maps via file descriptors.} \subsubsection{Enable BPF Just In Time compiler} CONFIG\_BPF\_JIT [=y] \textbf{[Y]}\\ @@ -434,10 +437,17 @@ BPF-Programme werden normalerweise von einem BPF-Interpreter verarbeitet. Diese Option ermöglicht es dem Kernel, nativen Code zu erzeugen, wenn ein Programm in den Kernel geladen wird. Dadurch wird die Verarbeitung von BPF"=Programmen erheblich beschleunigt.\\ -Beachten Sie, dass ein Administrator diese Funktion durch Ändern aktivieren sollte:\\[0.5em] +Beachten Sie, dass ein Administrator diese Funktion durch Ändern aktivieren sollte:\\[0.5em] \indent\texttt{/proc/sys/net/core/bpf\_jit\_enable}\\ \indent\texttt{/proc/sys/net/core/bpf\_jit\_harden (optional)}\\ \indent\texttt{/proc/sys/net/core/bpf\_jit\_kallsyms (optional)} +\english{BPF programs are normally handled by a BPF interpreter. +This option allows the kernel to generate native code when a program is loaded into the kernel. +This will significantly speed-up processing of BPF programs.\\ +Note, an admin should enable this feature changing:\\ +/proc/sys/net/core/bpf\_jit\_enable\\ +/proc/sys/net/core/bpf\_jit\_harden (optional)\\ +/proc/sys/net/core/bpf\_jit\_kallsyms (optional)} \paragraph{Permanently enable BPF JIT and remove BPF interpreter}$~$\\ CONFIG\_BPF\_JIT\_ALWAYS\_ON [=y] \textbf{[Y]}\\ @@ -447,6 +457,9 @@ Wenn CONFIG\_BPF\_JIT\_ALWAYS\_ON eingeschaltet ist, dann wird \texttt{/proc/sys/net/core/bpf\_jit\_enable} permanent auf 1 gesetzt, alle Versuche diese Einstellung auf andere Werte zu legen wird mit einem Fehler zurückgewiesen. +\english{Enables BPF JIT and removes BPF interpreter to avoid speculative execution of BPF instructions by the interpreter.\\ +When CONFIG\_BPF\_JIT\_ALWAYS\_ON is enabled, /proc/sys/net/core/bpf\_jit\_enable is permanently set to 1 and +setting any other value than that will return failure.} \subsubsection{Disable unprivileged BPF by default} CONFIG\_BPF\_UNPRIV\_DEFAULT\_OFF [=y] \textbf{[Y]}\\ @@ -458,6 +471,10 @@ er sie auf 1 setzt (von wo aus kein weiterer Übergang auf 0 mehr möglich ist). Unprivilegierte BPF könnte verwendet werden, um bestimmte potenzielle Seitenkanalschwachstellen für spekulative Ausführung auf nicht gemilderter betroffener Hardware auszunutzen. Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit Y. +\english{Disables unprivileged BPF by default by setting the corresponding /proc/sys/kernel/unprivileged\_bpf\_disabled knob to 2. +An admin can still reenable it by setting it to 0 later on, or permanently disable it by setting it to 1 (from which no other transition to 0 is possible anymore). +Unprivileged BPF could be used to exploit certain potential speculative execution side-channel vulnerabilities on unmitigated affected hardware.\\ +If you are unsure how to answer this question, answer Y.} \subsubsection{Preload BPF file system with kernel specific program and map iterators \texorpdfstring{$\rightarrow$}{->}} @@ -466,18 +483,24 @@ Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF"=Programmen erstellt die als für den Menschen lesbare Dateien in den BPF-FS"=Einhängepunkt eingefügt werden, was bei der Fehlersuche und der Untersuchung von BPF"=Programmen und -Maps nützlich ist. +\english{This builds kernel module with several embedded BPF programs that are pinned into BPF FS mount point as human readable files +that are useful in debugging and introspection of BPF programs and maps.} -\paragraph{bpf\_preload kernel module\\} $~$ \\ +\paragraph{bpf\_preload kernel module\\}$~$\\ \textit{Dies ist nur sichtbar wenn der übergeordnete Punkt aktiviert ist.}\\ -CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[~]}\\ -Dadurch wird ein Kernelmodul mit mehreren eingebetteten BPF-Programmen -erstellt, die als für den Menschen lesbare Dateien in den BPF-FS"=Einhängepunkt eingefügt werden, -was bei der Fehlersuche und der Untersuchung von BPF-Programmen und -Maps nützlich ist. +CONFIG\_BPF\_PRELOAD\_UMD [=m] \textbf{[M]}\\* +Damit wird das Kernelmodul bpf\_preload mit eingebetteten BPF-Programmen für die Introspektion in bpffs erstellt. +\english{This builds bpf\_preload kernel module with embedded BPF programs for introspection in bpffs.} + \subsubsection{Enable BPF LSM Instrumentation} CONFIG\_BPF\_LSM [=y] \textbf{[Y]}\\ Ermöglicht die Instrumentierung der Sicherheitshaken mit BPF-Programmen zur Implementierung dynamischer -MAC- und Prüfungsrichtlinien. Wenn Sie unsicher sind, wie Sie diese Frage beantworten -sollten, antworten Sie mit N. +MAC- und Prüfungsrichtlinien.\\ +Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollten, antworten Sie mit N. +\english{Enables instrumentation of the security hooks with BPF programs for implementing dynamic MAC +and Audit Policies.\\ +If you are unsure how to answer this question, answer N.} + %1.18 \subsection{Preemption Model (\textcolor{gray}{Preemptible Kernel (Low-Latency Desktop)}) \texorpdfstring{$\rightarrow$}{->}} @@ -491,13 +514,25 @@ keine Garantie dafür und es kann zu zufälligen, längeren Verzögerungszeiten Für einen Serverbetrieb wird diese Einstellung empfohlen, damit der maximale Durchsatz an Rechenleistung entsteht. +\english{This is the traditional Linux preemption model, geared towards throughput. +It will still provide good latencies most of the time, but there are no guarantees and occasional longer delays are possible.\\ +Select this option if you are building a kernel for a server or scientific/computation system, +or if you want to maximize the raw processing power of the kernel, irrespective of scheduling latencies.} + \subsubsection{Voluntary Kernel Preemption (Desktop)} -CONFIG\_PREEMPT\_VOLUNTARY \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\ +CONFIG\_PREEMPT\_VOLUNTARY \colorbox{yellow!10}{[=n] \textbf{[N]}}\\ Diese Einstellung reduziert die Latenz des Kernels durch zusätzliche \glqq explizite Unterbrechungspunkte\glqq{} im Kernel. Diese neuen Unterbrechungspunkte wurden ausgewählt, um die maximale Latenz beim neuerlichen Zuordnen des Schedulers zu reduzieren und dadurch schnelle Reaktionszeiten der Applikationen zu gewährleisten. -- Auf Kosten eines geringeren Durchsatzes wird dies erreicht. +\english{This option reduces the latency of the kernel by adding more ``explicit preemption points'' to the kernel code. +These new preemption points have been selected to reduce the maximum latency of rescheduling, providing faster application reactions, +at the cost of slightly lower throughput.\\ +This allows reaction to interactive events by allowing a low priority process to voluntarily preempt itself even +if it is in kernel mode executing a system call. +This allows applications to run more `smoothly' even when the system is under load.\\ +Select this if you are building a kernel for a desktop system.} \subsubsection{Preemptible Kernel (Low-Latency Desktop)} CONFIG\_PREEMPT \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ @@ -507,6 +542,23 @@ Arbeiten mit Applikationen aus Nutzersicht erreicht, sogar unter Volllast. Wähle diese Einstellung, wenn man einen Desktop oder ein Embedded-System mit einer Latenz im Millisekundenbereich möchte. Natürlich geht diese Einstellung mit einem leicht geringerem Durchsatz an Rechenleistung einher. +\english{This option reduces the latency of the kernel by making all kernel code (that is not executing in a critical section) +preemptible. +This allows reaction to interactive events by permitting a low priority process to be preempted involuntarily +even if it is in kernel mode executing a system call and would otherwise not be about to reach a natural preemption point.\\ +This allows applications to run more `smoothly' even when the system is under load, at the cost of slightly lower +throughput and a slight runtime overhead to kernel code.\\ +Select this if you are building a kernel for a desktop or embedded system with latency requirements in the milliseconds range.} + +\subsubsection{Scheduler controlled preemption model {\tiny seit 6.13}} +CONFIG\_PREEMPT\_LAZY \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\ +Diese Option bietet ein Scheduler-gesteuertes Preemption-Modell, das dem vollständigen Preemption-Modell +grundsätzlich ähnelt, aber weniger darauf bedacht ist, SCHED\_NORMAL-Tasks zu preemptieren, um die Preemption von +Lock-Holder-Tasks zu reduzieren und einen Teil der Leistungsgewinne aus der Verwendung von Voluntary Preemption wiederherzustellen. +\english{This option provides a scheduler driven preemption model that is fundamentally similar to full preemption, +but is less eager to preempt SCHED\_NORMAL tasks in an attempt to reduce lock holder preemption and recover some of +the performance gains seen from using Voluntary preemption.} +\note{Wir testen die neue Einstellung des LAZY-Modes, dehalb hier seit Linux 6.14.2 ein Y.} %1.19 \subsection{Fully Preemtible Kernel (Real-Time)} @@ -544,7 +596,14 @@ sollte der potenzielle Overhead in Betracht gezogen werden. Interessant wird es, wenn derselbe vorgefertigte Kernel sowohl für Server- als auch für Desktop-Workloads verwendet werden soll. -\note{Wir setzen dies nicht, da wir wissen, dass der Kernal für den Desktop kompiliert wird.} +\english{This option allows to define the preemption model on the kernel command line parameter +and thus override the default preemption model defined during compile time.\\ +The feature is primarily interesting for Linux distributions which provide a pre-built kernel binary +to reduce the number of kernel flavors they offer while still offering different usecases.\\ +The runtime overhead is negligible with HAVE\_STATIC\_CALL\_INLINE enabled but if runtime patching is +not available for the specific architecture then the potential overhead should be considered.\\ +Interesting if you want the same pre-built kernel should be used for both Server and Desktop workloads.} +\note{Wir setzen dies auf Nein, da wir wissen, dass der Kernal für den Desktop kompiliert wird.} %1.21 Core Scheduling for SMT \subsection{Core Scheduling for SMT} @@ -601,7 +660,7 @@ struct sched\_class. Für weitere Informationen:\\ Dokumentation/scheduler/sched-ext.rst\\ -\href{https://github.com/sched-ext/scx}{https://github.com/sched-ext/scx}\\[1em] +\href{https://github.com/sched-ext/scx}{https://github.com/sched-ext/scx} \english{This option enables a new scheduler class sched\_ext (SCX), which allows scheduling policies to be implemented as BPF programs to achieve the following: @@ -617,14 +676,25 @@ sched\_ext leverages BPF struct\_ops feature to define a structure which exports function callbacks and flags to BPF programs that wish to implement scheduling policies. The struct\_ops structure exported by sched\_ext is struct sched\_ext\_ops, and is conceptually -similar to struct sched\_class.} +similar to struct sched\_class.\\ +For more information: Documentation/scheduler/sched-ext.rst \url{https://github.com/sched-ext/scx}} %1.23 CPU/Task time and stats accounting \subsection{CPU/Task time and stats accounting \texorpdfstring{$\rightarrow$}{->}} \subsubsection{Cputime accounting (Full dynticks CPU time accounting) \texorpdfstring{$\rightarrow$}{->}} + +\paragraph{Simple tick based cputime accounting}\mbox{}\\ +CONFIG\_TICK\_CPU\_ACCOUNTING [=n] \textbf{[N]}\\* +Dies ist die grundlegende tick-basierte Rechenzeitabrechnung, die Statistiken über die Benutzer-, +System- und Leerlaufzeit auf einer Granularität von wenigen Augenblicken führt.\\ +Wenn Sie unsicher sind, sagen Sie Y. +\english{This is the basic tick based cputime accounting that maintains statistics about user, +system and idle time spent on per jiffies granularity.\\ +If unsure, say Y.} + \paragraph{Full dynticks CPU time accounting} $~$\\ -CONFIG\_VIRT\_CPU\_ACCOUNTING\_GEN [=y] \textbf{[Y]}\\* +CONFIG\_VIRT\_CPU\_ACCOUNTING\_GEN \colorbox{yellow!0}{[=y] \textbf{[Y]}}\\* Wählen Sie diese Option, um die Berechnung der Task- und CPU-Zeit auf Full"=Dynticks"=Systemen zu aktivieren. Diese Berechnung wird durch die Überwachung aller Kernel-Benutzer-Grenzen mithilfe des @@ -632,6 +702,12 @@ Kontextverfolgungs-Subsystems implementiert. Die Berechnung erfolgt daher auf Kosten eines erheblichen Overheads.\\ Im Moment ist dies nur sinnvoll, wenn Sie an der Entwicklung des vollständigen Dynticks-Subsystems arbeiten. +\english{Select this option to enable task and CPU time accounting on full dynticks systems. +This accounting is implemented by watching every kernel-user boundaries using the context tracking subsystem. +The accounting is thus performed at the expense of some significant overhead.\\ +For now this is only useful if you are working on the full dynticks subsystem development. +If unsure, say N.} +\note{Wir können nur dies mit unseren Voreinstellungen auswählen.} %1.23.2 \subsubsection{Fine granularity task level IRQ time accounting} @@ -641,7 +717,11 @@ Task-Irq-Zeit zu aktivieren. Dies geschieht durch das Lesen eines Zeitstempels bei jedem Übergang zwischen dem softirq- und dem hardirq"=Zustand, so dass es zu geringen Leistungseinbußen kommen kann.\\ -Im Zweifelsfall sagen Sie hier N für Nein. +Im Zweifelsfall sagen Sie hier N für Nein. +\english{Select this option to enable fine granularity task irq time accounting. +This is done by reading a timestamp on each transitions between softirq and hardirq state, +so there can be a small performance impact.\\ +If in doubt, say N here.} \note{Um etwas mehr Performance zu gewinnen, setzen wir dies auf N für Nein.} \subsubsection{BSD Process Accounting} @@ -657,6 +737,13 @@ usw. (die vollständige Liste kann in der acct-Struktur in Es obliegt dem Programm auf Benutzerebene, nützliche Dinge mit diesen Informationen zu tun. Dies ist im Allgemeinen eine gute Idee, also sagen Sie Y für Ja. +\english{If you say Y here, a user level program will be able to instruct the kernel +(via a special system call) to write process accounting information to a file: +whenever a process exits, information about that process will be appended to the file by the kernel. +The information includes things such as creation time, owning user, command name, memory usage, +controlling terminal etc. (the complete list is in the struct acct in $<$file:include/linux/acct.h$>$). +It is up to the user level program to do useful things with this information. +This is generally a good idea, so say Y.} \paragraph{BSD Process Accounting version 3 file format} $~$\\ CONFIG\_BSD\_PROCESS\_ACCT\_V3 [=y] \textbf{[Y]}\\ @@ -667,6 +754,10 @@ Dateiformat nicht mit den früheren v0/v1/v2-Dateiformaten kompatibel ist, so dass Sie aktualisierte Werkzeuge für die Verarbeitung benötigen. Eine vorläufige Version dieser Werkzeuge ist unter \url{http://www.gnu.org/software/acct/} verfügbar. +\english{If you say Y here, the process accounting information is written in a new file format +that also logs the process IDs of each process and its parent. +Note that this file format is incompatible with previous v0/v1/v2 file formats, so you will need updated tools for processing it. +A preliminary version of these tools is available at \url{http://www.gnu.org/software/acct/}.} \subsubsection{Export task/process statistics through netlink} CONFIG\_TASKSTATS [=y] \textbf{[Y]}\\ @@ -676,6 +767,10 @@ Statistiken während der Lebensdauer von Auf\-gaben/Pro\-zes\-sen als Antwort au Befehle verfügbar. Wie BSD-Accounting werden sie beim Beenden von Tasks in den Benutzerbereich gesendet.\\ Sagen Sie N, wenn Sie unsicher sind. +\english{Export selected statistics for tasks/processes through the generic netlink interface. +Unlike BSD process accounting, the statistics are available during the lifetime of tasks/processes as responses to commands. +Like BSD accounting, they are sent to user space on task exit.\\ +Say N if unsure.} \paragraph{Enable per-task delay accounting} $~$\\ CONFIG\_TASK\_DELAY\_ACCT [=y] \textbf{[Y]}\\ @@ -685,18 +780,26 @@ von Seiten aufwendet. Solche Statistiken können bei der Festlegung der Prioritäten eines Tasks im Verhältnis zu anderen Tasks für CPU-, IO-, RSS-Limits usw. helfen.\\ Sagen Sie N, wenn Sie unsicher sind. +\english{Collect information on time spent by a task waiting for system resources like cpu, synchronous +block I/O completion and swapping in pages. +Such statistics can help in setting a task's priorities relative to other tasks for cpu, io, rss limits etc.\\ +Say N if unsure.} \paragraph{Enable extended accounting over taskstats}$~$\\ CONFIG\_TASK\_XACCT [=y] \textbf{[Y]}\\ Sammeln von erweiterten Task-Accounting-Daten und Senden der Daten an das Userland zur Verarbeitung über die Taskstats-Schnittstelle.\\ Sagen Sie N, wenn Sie unsicher sind. +\english{Collect extended task accounting data and send the data to userland for processing over the taskstats interface.\\ +Say N if unsure.} \subparagraph{Enable per-task storage I/O accounting}$~$\\ CONFIG\_TASK\_IO\_ACCOUNTING [=y] \textbf{[Y]}\\ Sammeln von Informationen über die Anzahl der Bytes an Speicher-E/A, die dieser Task verursacht hat.\\ Sagen Sie N, wenn Sie unsicher sind. +\english{Collect information on the number of bytes of storage I/O which this task has caused.\\ +Say N if unsure.} \subsubsection{Pressure stall information tracking} CONFIG\_PSI [=y] \textbf{[Y]}\\ @@ -714,6 +817,14 @@ memory.pressure- und io.pressure-Dateien, die nur die Druckstaus für die gruppierten Aufgaben zusammenfassen.\\ Weitere Einzelheiten finden Sie unter Documentation/accounting/psi.rst.\\ Sagen Sie N, wenn Sie unsicher sind. +\english{Collect metrics that indicate how overcommitted the CPU, memory, and IO capacity are in the system.\\ +If you say Y here, the kernel will create /proc/pressure/ with the pressure statistics files cpu, memory, and io. +These will indicate the share of walltime in which some or all tasks in the system +are delayed due to contention of the respective resource.\\ +In kernels with cgroup support, cgroups (cgroup2 only) will have cpu.pressure, memory.pressure, and io.pressure files, +which aggregate pressure stalls for the grouped tasks only.\\ +For more details see Documentation/accounting/psi.rst.\\ +Say N if unsure.} \paragraph{Require boot parameter to enable pressure stall information tracking} $~$\\ CONFIG\_PSI\_DEFAULT\_DISABLED [=n] \textbf{[N]}\\ @@ -727,6 +838,13 @@ Scheduler-Stresstests, wie z.\,B. Hackbench.\\ Wenn Sie paranoid sind und nicht sicher, wofür der Kernel verwendet wird, sagen Sie Y für Ja.\\ Sagen Sie N, wenn Sie unsicher sind. +\english{If set, pressure stall information tracking will be disabled per default but can +be enabled through passing psi=1 on the kernel commandline during boot.\\ +This feature adds some code to the task wakeup and sleep paths of the scheduler. +The overhead is too low to affect common scheduling-intense workloads in practice (such as webservers, memcache), +but it does show up in artificial scheduler stress tests, such as hackbench.\\ +If you are paranoid and not sure what the kernel will be used for, say Y.\\ +Say N if unsure.} %1.24 \subsection{CPU isolation} @@ -737,6 +855,10 @@ kthreads usw. gestört werden.\\ Ungebundene Aufgaben werden auf Housekeeping"=CPUs verlagert. Dies wird durch den Boot-Parameter \texttt{isolcpus=} gesteuert.\\ Sagen Sie Y für ja, wenn Sie unsicher sind. +\english{Make sure that CPUs running critical tasks are not disturbed by any source of ``noise'' +such as unbound workqueues, timers, kthreads... +Unbound jobs get offloaded to housekeeping CPUs. +This is driven by the ``isolcpus='' boot parameter.} %1.25 \subsection{RCU Subsystem \texorpdfstring{$\rightarrow$}{->}} @@ -752,10 +874,13 @@ davon abhält, alle möglichen detaillierten Fragen darüber zu stellen, wie Sie zahlreiche obskure RCU"=Optionen eingerichtet haben möchten.\\ Sagen Sie Y, wenn Sie Anpassungen an RCU auf Expertenebene vornehmen müssen.\\ Sagen Sie N, wenn Sie unsicher sind. -\\\begin{scriptsize} - Wie bei Debian Bookworm setzen wir dies auf ein Nein. -\end{scriptsize} - +\english{This option needs to be enabled if you wish to make expert-level adjustments to RCU configuration. +By default, no such adjustments can be made, which has the often-beneficial side-effect of preventing +``make oldconfig'' from asking you all sorts of detailed questions about how you would like numerous +obscure RCU options to be set up.\\ +Say Y if you need to make expert-level adjustments to RCU.\\ +Say N if you are unsure.} +\note{Wie bei Debian Bookworm setzen wir dies auf ein N für Nein.} \subsubsection{Force selection of TASKS\_RCU} CONFIG\_FORCE\_TASKS\_RCU [=n] \textbf{[N]}\\ @@ -763,6 +888,9 @@ Diese Option erzwingt eine aufgabenbasierte RCU-Implementierung die nur freiwillige Kontextwechsel verwendet (keine Preemption!), Leerlauf und Benutzermodus-Ausführung als Ruhezustände verwendet. Nicht für manuelle Auswahl in den meisten Fällen. +\english{This option force-enables a task-based RCU implementation that uses only voluntary context switch +(not preemption!), idle, and user-mode execution as quiescent states. +Not for manual selection in most cases.} \subsubsection{Force selection of Tasks Rude RCU} CONFIG\_FORCE\_TASKS\_RUDE\_RCU [=n] \textbf{[N]}\\ @@ -772,6 +900,11 @@ Benutzermodus als Ruhezustand verwendet. Sie erzwingt IPIs und Kontextwechsel auf allen Online"=CPUs, auch auf den Idle"=CPUs, also mit Vorsicht verwenden. In den meisten Fällen nicht für die manuelle Auswahl geeignet. +\english{This option force-enables a task-based RCU implementation that uses only context switch +(including preemption) and user-mode execution as quiescent states. +It forces IPIs and context switches on all online CPUs, including idle ones, so use with caution. +Not for manual selection in most cases.} + \subsubsection{Force selection of Tasks Trace RCU} CONFIG\_FORCE\_TASKS\_TRACE\_RCU [=n] \textbf{[N]}\\ @@ -781,6 +914,10 @@ dass diese Leser sowohl in der Leerlaufschleife als auch in den CPU"=Hotplug"=Codepfaden erscheinen. Es kann IPIs auf Online-CPUs erzwingen, auch auf Idle-CPUs, also mit Vorsicht verwenden. In den meisten Fällen nicht für die manuelle Auswahl geeignet. +\english{This option enables a task-based RCU implementation that uses explicit rcu\_read\_lock\_trace() +read-side markers, and allows these readers to appear in the idle loop as well as on the CPU hotplug code paths. +It can force IPIs on online CPUs, including idle ones, so use with caution. +Not for manual selection in most cases.} \subsubsection{Tree-based hierarchical RCU fanout value} CONFIG\_RCU\_FANOUT [=64] \textbf{[64]}\\ @@ -797,6 +934,12 @@ Nehmen Sie den Standardwert, wenn Sie unsicher sind.\\ Symbol: RCU\_FANOUT [=64]\\ Type : integer (Ganzzahl)\\ Bereich (range) : [2 64] +\english{This option controls the fanout of hierarchical implementations of RCU, allowing RCU to work +efficiently on machines with large numbers of CPUs. +This value must be at least the fourth root of NR\_CPUS, which allows NR\_CPUS to be insanely large. +The default value of RCU\_FANOUT should be used for production systems, but if you are stress-testing +the RCU implementation itself, small RCU\_FANOUT values allow you to test large-system code paths on small(er) systems.\\ +Select a specific number if testing RCU itself. Take the default if unsure.} \subsubsection{Tree-based hierarchical RCU leaf-level fanout value} CONFIG\_RCU\_FANOUT\_LEAF [=16] \textbf{[16]}\\ @@ -824,6 +967,20 @@ Nehmen Sie den Standardwert, wenn Sie unsicher sind.\\ Symbol: RCU\_FANOUT\_LEAF [=64]\\ Type : integer (Ganzzahl)\\ Bereich (range) : [2 64] +\english{This option controls the leaf-level fanout of hierarchical implementations of RCU, +and allows trading off cache misses against lock contention. +Systems that synchronize their scheduling-clock interrupts for energy-efficiency reasons will +want the default because the smaller leaf-level fanout keeps lock contention levels acceptably low. +Very large systems (hundreds or thousands of CPUs) will instead want to set this value to the maximum +value possible in order to reduce the number of cache misses incurred during RCU's grace-period initialization. +These systems tend to run CPU-bound, and thus are not helped by synchronized interrupts, and thus tend to +skew them, which reduces lock contention enough that large leaf-level fanouts work well. +That said, setting leaf-level fanout to a large number will likely cause problematic lock contention +on the leaf-level rcu\_node structures unless you boot with the skew\_tick kernel parameter.\\ +Select a specific number if testing RCU itself.\\ +Select the maximum permissible value for large systems, but please understand that you may also +need to set the skew\_tick kernel boot parameter to avoid contention on the rcu\_node structure's locks.\\ +Take the default if unsure.} \subsubsection{Enable RCU priority boosting} CONFIG\_RCU\_BOOST [=y] \textbf{[Y]}\\ @@ -833,6 +990,11 @@ Diese Option verhindert auch, dass schwere Lasten den Aufruf von RCU"=Callbacks blockieren.\\ Geben Sie hier Y an, wenn Sie mit Echtzeitanwendungen oder großen Lasten arbeiten.\\ Sagen Sie hier N ein, wenn Sie unsicher sind. +\english{This option boosts the priority of preempted RCU readers that block the current preemptible +RCU grace period for too long. +This option also prevents heavy loads from blocking RCU callback invocation.\\ +Say Y here if you are working with real-time apps or heavy loads\\ +Say N here if you are unsure.} \paragraph{Milliseconds to delay boosting after RCU grace-period start}$~$\\ CONFIG\_RCU\_BOOST\_DELAY [=500] \textbf{[500]}\\ @@ -845,6 +1007,10 @@ Akzeptieren Sie die Standardeinstellung, wenn Sie unsicher sind.\\ Symbol: RCU\_BOOST\_DELAY [=500]\\ Typ : Integer (Ganzzahl)\\ Bereich : [0 3000] +\english{This option specifies the time to wait after the beginning of a given grace period before +priority-boosting preempted RCU readers blocking that grace period. +Note that any RCU reader blocking an expedited RCU grace period is boosted immediately.\\ +Accept the default if unsure.} \paragraph{Perform RCU expedited work in a real-time kthread}$~$\\ CONFIG\_RCU\_EXP\_KTHREAD [=n] \textbf{[N]}\\ @@ -854,6 +1020,11 @@ Diese Option ist standardmäßig auf PREEMPT\_RT=y-Kerneln deaktiviert, die beschleunigte Neuheitsschonfristen nach dem Booten durch die bedingungslose Einstellung rcupdate.rcu\_normal\_after\_boot=1 deaktivieren.\\ Akzeptieren Sie die Voreinstellung, wenn Sie unsicher sind. +\english{Use this option to further reduce the latencies of expedited grace +periods at the expense of being more disruptive.\\ +This option is disabled by default on PREEMPT\_RT=y kernels which disable expedited grace periods +after boot by unconditionally setting rcupdate.rcu\_normal\_after\_boot=1.\\ +Accept the default if unsure.} \subsubsection{Offload RCU callback processing from boot-selected CPUs} CONFIG\_RCU\_NOCB\_CPU [=y] \textbf{[Y]}\\ @@ -875,6 +1046,23 @@ kthreads zu zwingen, auf jeder gewünschten Gruppe von CPUs zu laufen.\\ Sagen Sie hier Y, wenn Sie trotz des zusätzlichen Overheads ein geringeres OS-Jitter benötigen.\\ Sagen Sie hier N, wenn Sie unsicher sind. +\english{Use this option to reduce OS jitter for aggressive HPC or real-time workloads. +It can also be used to offload RCU callback invocation to energy-efficient CPUs in battery-powered asymmetric multiprocessors. +The price of this reduced jitter is that the overhead of call\_rcu() increases and that some workloads will incur +significant increases in context-switch rates.\\ +This option offloads callback invocation from the set of CPUs specified at boot time by the rcu\_nocbs parameter. +For each such CPU, a kthread (``rcuox/N'') will be created to invoke callbacks, where the ``N'' is the CPU +being offloaded, and where the ``x'' is ``p'' for RCU-preempt (PREEMPTION kernels) and ``s'' for RCU-sched +(!PREEMPTION kernels). +This option also creates another kthread for each sqrt(nr\_cpu\_ids) CPUs (``rcuog/N'', where N is +the first CPU in that group to come online), which handles grace periods for its group. +Nothing prevents these kthreads from running on the specified CPUs, but (1) the kthreads may be preempted +between each callback, and (2) affinity or cgroups can be used to force the kthreads to run on whatever set +of CPUs is desired.\\ +The sqrt(nr\_cpu\_ids) grouping may be overridden using the rcutree.rcu\_nocb\_gp\_stride kernel boot parameter. +This can be especially helpful for smaller numbers of CPUs, where sqrt(nr\_cpu\_ids) can be a bit of a blunt instrument.\\ +Say Y here if you need reduced OS jitter, despite added overhead. +Say N here if you are unsure.} \paragraph{Offload RCU callback processing from all CPUs by default}$~$\\ CONFIG\_RCU\_NOCB\_CPU\_DEFAULT\_ALL [=n] \textbf{[N]}\\ @@ -884,6 +1072,11 @@ ist. Dadurch wird auch die Notwendigkeit vermieden, Boot-Parameter zu verwenden, den Effekt der Entlastung aller CPUs beim Booten zu erreichen.\\ Geben Sie hier Y an, wenn Sie alle CPUs standardmäßig beim Booten entlasten wollen.\\ Sagen Sie hier N, wenn Sie sich nicht sicher sind. +\english{Use this option to offload callback processing from all CPUs by default, +in the absence of the rcu\_nocbs or nohz\_full boot parameter. +This also avoids the need to use any boot parameters to achieve the effect of offloading all CPUs on boot.\\ +Say Y here if you want offload all CPUs by default on boot. +Say N here if you are unsure.} \paragraph{Offload RCU callback from real-time kthread}$~$\\ CONFIG\_RCU\_NOCB\_CPU\_CB\_BOOST [=n] \textbf{[N]}\\ @@ -897,6 +1090,14 @@ ausgeführt werden.\\ Geben Sie hier Y an, wenn Sie die RT-Priorität für die Auslagerung von kthreads festlegen möchten.\\ Sagen Sie hier N, wenn Sie einen !PREEMPT\_RT-Kernel bauen und sich unsicher sind. +\english{Use this option to invoke offloaded callbacks as SCHED\_FIFO to avoid starvation by heavy +SCHED\_OTHER background load. +Of course, running as SCHED\_FIFO during callback floods will cause the rcuo[ps] kthreads to monopolize the CPU +for hundreds of milliseconds or more. +Therefore, when enabling this option, it is your responsibility to ensure that latency-sensitive tasks +either run with higher priority or run on some other CPU.\\ +Say Y here if you want to set RT priority for offloading kthreads. +Say N here if you are building a !PREEMPT\_RT kernel and are unsure.} \subsubsection{Tasks Trace RCU readers use memory barriers in user and idle} CONFIG\_TASKS\_TRACE\_RCU\_READ\_MB [=n] \textbf{[N]}\\ @@ -912,11 +1113,21 @@ gewählte Standardeinstellung.\\ Sagen Sie hier Y, wenn Sie IPIs hassen.\\ Sagen Sie hier N, wenn Sie leseseitige Speicherbarrieren hassen.\\ Nehmen Sie die Standardeinstellung, wenn Sie unsicher sind. +\english{Use this option to further reduce the number of IPIs sent to CPUs executing in userspace or idle during +tasks trace RCU grace periods. +Given that a reasonable setting of the rcupdate.rcu\_task\_ipi\_delay kernel boot parameter eliminates such IPIs +for many workloads, proper setting of this Kconfig option is important mostly for aggressive real-time +installations and for battery-powered devices, hence the default chosen above.\\ +Say Y here if you hate IPIs. Say N here if you hate read-side memory barriers. +Take the default if you are unsure.} \subsubsection{RCU callback lazy invocation functionality} CONFIG\_RCU\_LAZY [=y] \textbf{[Y]}\\ Um Strom zu sparen, sollten Sie RCU-Rückrufe stapeln und nach einer Verzögerung, einem Speicherdruck oder einer zu großen Rückrufliste flushen. +\english{To save power, batch RCU callbacks and flush after delay, memory pressure, or callback list growing too big.\\ +Requires rcu\_nocbs=all to be set.\\ +Use rcutree.enable\_rcu\_lazy=0 to turn it off at boot time.} \paragraph{Turn RCU lazy invocation off by default}{\tiny seit 6.9}$~$\\ CONFIG\_RCU\_LAZY\_DEFAULT\_OFF [=n] \textbf{[N]}\\ @@ -936,6 +1147,13 @@ Diese Option rundet rcutree.rcu\_resched\_ns auf den nächsten Jiffy auf und set die 32-Callback-Batching-Funktion außer Kraft, wenn diese Grenze überschritten wird.\\ Sagen Sie hier Y, wenn Sie eine strengere Durchsetzung des Rückruflimits benötigen.\\ Sagen Sie hier N, wenn Sie unsicher sind. +\english{Use this option to provide more precise enforcement of the rcutree.rcu\_resched\_ns module parameter +in situations where a single RCU callback might run for hundreds of microseconds, thus defeating the 32-callback +batching used to amortize the cost of the fine-grained but expensive local\_clock() function.\\ +This option rounds rcutree.rcu\_resched\_ns up to the next jiffy, and overrides the 32-callback batching +if this limit is exceeded.\\ +Say Y here if you need tighter callback-limit enforcement. +Say N here if you are unsure.} % 1.26 \subsection{Kernel .config support} @@ -949,9 +1167,13 @@ Kernel neu zu erstellen oder einen anderen Kernel zu bauen. Sie können auch aus einem laufenden Kernel extrahiert werden, indem /proc/config.gz gelesen wird, falls dies aktiviert ist (siehe unten).\\ Definiert mit init/Kconfig:686 -\\\begin{scriptsize} - Ist nicht unbedingt notwendig, auch in Debian Bookworm ist dies ausgeschaltet. -\end{scriptsize} +\english{This option enables the complete Linux kernel ``.config'' file contents to be saved in the kernel. +It provides documentation of which kernel options are used in a running kernel or in an on-disk kernel. +This information can be extracted from the kernel image file with the script scripts/extract-ikconfig and +used as input to rebuild the current kernel or to build another kernel. +It can also be extracted from a running kernel by reading /proc/config.gz if enabled (below).} +\note{Ist nicht unbedingt notwendig, auch in Debian Bookworm ist dies ausgeschaltet.} + \subsubsection{Enable access to .config through /proc/config.gz} CONFIG\_IKCONFIG\_PROC [=y] \textbf{[Y]}\\ Diese Option ermöglicht den Zugriff auf die Kernelkonfigurationsdatei über @@ -965,9 +1187,11 @@ Build-Prozesses erzeugt werden. Diese können verwendet werden, um eBPF-Tracing-Programme oder ähnliche Programme zu erstellen. Wenn Sie die Header als Modul erstellen, wird ein Modul namens \texttt{kheaders.ko} erstellt, das bei Bedarf geladen werden kann, um Zugriff auf die Header zu erhalten. -\\\begin{scriptsize} - Ist auch als Modul nicht unbedingt notwendig, wie auch in Debian Bookworm wird dies ausgeschaltet. -\end{scriptsize} +\english{This option enables access to the in-kernel headers that are generated during the build process. +These can be used to build eBPF tracing programs, or similar programs. +If you build the headers as a module, a module called kheaders.ko is built which can be loaded on-demand +to get access to headers.} +\note{Ist auch als Modul nicht unbedingt notwendig, wie auch in Debian Bookworm wird dies ausgeschaltet.} %1.28 \subsection{Kernel log buffer size (16 \texorpdfstring{$\Rightarrow$}{=>} 64KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)} @@ -986,6 +1210,16 @@ Beispiele:\\ Symbol: LOG\_BUF\_SHIFT\\ Type: Integer (Ganzzahl)\\ Bereich (range): [12 25] +\english{Select the minimal kernel log buffer size as a power of 2. +The final size is affected by LOG\_CPU\_MAX\_BUF\_SHIFT config parameter, see below. +Any higher size also might be forced by ``log\_buf\_len'' boot parameter.\\ +Examples:\\ +\indent 17 $=>$ 128 KB\\ +\indent 16 $=>$ 64 KB\\ +\indent 15 $=>$ 32 KB\\ +\indent 14 $=>$ 16 KB\\ +\indent 13 $=> $ 8 KB\\ +\indent 12 $=> $ 4 KB} %1.29 \subsection{CPU kernel log buffer size contribution (13 \texorpdfstring{$\Rightarrow$}{=>} 8 KB, 17 \texorpdfstring{$\Rightarrow$}{=>} 128KB)} @@ -1014,6 +1248,24 @@ werden kann. Beispiele für Verschiebungswerte und ihre Bedeutung:\\ Symbol: LOG\_CPU\_MAX\_BUF\_SHIFT\\ Type: Integer (Ganzzahl)\\ Bereich (range): [0 21] +\english{This option allows to increase the default ring buffer size according to the number of CPUs. +The value defines the contribution of each CPU as a power of 2. +The used space is typically only few lines however it might be much more when problems are reported, e.g. backtraces.\\ +The increased size means that a new buffer has to be allocated and the original static one is unused. +It makes sense only on systems with more CPUs. +Therefore this value is used only when the sum of contributions is greater than the half of the default kernel ring +buffer as defined by LOG\_BUF\_SHIFT. +The default values are set so that more than 16~CPUs are needed to trigger the allocation.\\ +Also this option is ignored when ``log\_buf\_len'' kernel parameter is used as it forces an exact (power of two) size of the ring buffer.\\ +The number of possible CPUs is used for this computation ignoring hotplugging making the computation optimal for the worst case +scenario while allowing a simple algorithm to be used from bootup.\\ +Examples shift values and their meaning:\\ +\indent 17 $=>$ 128 KB for each CPU\\ +\indent 16 $=>$ 64 KB for each CPU\\ +\indent 15 $=>$ 32 KB for each CPU\\ +\indent 14 $=>$ 16 KB for each CPU\\ +\indent 13 $=>$ 8 KB for each CPU\\ +\indent 12 $=>$ 4 KB for each CPU} %1.30 \subsection{Printk indexing debugfs interface)} @@ -1025,10 +1277,12 @@ Dies kann als Teil der Wartung von Daemonen, die /dev/kmsg überwachen, verwendet werden, da es die Überprüfung der in einem Kernel vorhandenen printk-Formate erlaubt, was die Erkennung von Fällen ermöglicht, in denen überwachte printks geändert oder nicht mehr vorhanden sind.\\ -Es gibt keine zusätzlichen Laufzeitkosten für printk, wenn dies aktiviert ist. -\\\begin{scriptsize} - Wie bei Debian Bookworm wird diese Indizierung ausgeschaltet. -\end{scriptsize} +Es gibt keine zusätzlichen Laufzeitkosten für printk, wenn dies aktiviert ist. +\english{Add support for indexing of all printk formats known at compile time at $<$debugfs$>$/printk/index/$<$module$>$.\\ +This can be used as part of maintaining daemons which monitor /dev/kmsg, as it permits auditing the printk formats present in a kernel, +allowing detection of cases where monitored printks are changed or no longer present.\\ +There is no additional runtime cost to printk with this enabled.} +\note{Wie bei Debian Bookworm wird diese Indizierung ausgeschaltet.} %1.31 \subsection{Scheduler features \texorpdfstring{$\rightarrow$}{->}} @@ -1046,9 +1300,13 @@ Sowohl die Minimal- als auch die Maximalwerte für die Auslastung sind Hinweise für den Scheduler, um seine Frequenzauswahl zu verbessern, aber sie erzwingen oder gewähren keine bestimmte Bandbreite für Tasks.\\ Im Zweifelsfall sagen Sie N für Nein. -\\\begin{scriptsize} - Wie bei Debian Bookworm und WSL2 wird dies ausgeschaltet. -\end{scriptsize} +\english{This feature enables the scheduler to track the clamped utilization of each CPU based on RUNNABLE tasks scheduled on that CPU.\\ +With this option, the user can specify the min and max CPU utilization allowed for RUNNABLE tasks. +The max utilization defines the maximum frequency a task should use while the min utilization defines the minimum frequency it should use.\\ +Both min and max utilization clamp values are hints to the scheduler, aiming at improving its frequency selection policy, +but they do not enforce or grant any specific bandwidth for tasks.\\ +If in doubt, say N.} +\note{Wie bei Debian Bookworm und WSL2 wird dies ausgeschaltet.} \paragraph{Number of supported utilization clamp buckets}$~$\\ CONFIG\_UCLAMP\_BUCKETS\_COUNT [=5] \textbf{[5]}\\ @@ -1075,6 +1333,19 @@ möglich, den Spielraum zu verringern, indem die Anzahl der Clamp"=Buckets erhöht wird, um den verbrauchten Speicher gegen die Genauigkeit der Laufzeitverfolgung einzutauschen.\\ Im Zweifelsfall sollten Sie den Standardwert verwenden. +\english{Defines the number of clamp buckets to use. +The range of each bucket will be SCHED\_CAPACITY\_SCALE/UCLAMP\_BUCKETS\_COUNT. +The higher the number of clamp buckets the finer their granularity and the higher the precision of clamping aggregation and tracking at run-time.\\ +For example, with the minimum configuration value we will have 5~clamp buckets tracking 20\% utilization each. +A 25\% boosted tasks will be refcounted in the [20..39]\% bucket and will set the bucket clamp effective value to 25\%.\\ +If a second 30\% boosted task should be co-scheduled on the same CPU, that task will be refcounted in the same bucket of the first task +and it will boost the bucket clamp effective value to 30\%. +The clamp effective value of a bucket is reset to its nominal value (20\% in the example above) when there are no more tasks refcounted in that bucket.\\ +An additional boost/capping margin can be added to some tasks. +In the example above the 25\% task will be boosted to 30\% until it exits the CPU. +If that should be considered not acceptable on certain systems, it's always possible to reduce the margin by increasing the number of +clamp buckets to trade off used memory for run-time tracking precision.\\ +If in doubt, use the default value.} %1.32 \subsection{Memory placement aware NUMA scheduler} @@ -1114,6 +1385,11 @@ wie Task-Migrationen und Controller-Ein-/Ausschaltungen auf Kosten von Hot-Path-Operationen wie Forks und Exits verteuert.\\ Sagen Sie N, wenn Sie unsicher sind. +\english{This option enables the ``favordynmods'' mount option by default which reduces the latencies of dynamic +cgroup modifications such as task migrations and controller on/offs at the cost of making hot path operations +such as forks and exits more expensive.\\ +Say N if unsure.} + %1.33.2 \subsubsection{Memory controller}