From 88b5ca768e7d1e691047ce02b3167dce140404e7 Mon Sep 17 00:00:00 2001 From: Thomas Kuschel Date: Sun, 16 Feb 2025 01:05:36 +0100 Subject: [PATCH] UPD Mitigation --- config-6.13.2 | 65 +-- config-6.13.2.patch | 398 +++++++++----- documentation/linux_configuration.pdf | 4 +- .../linux_configuration_01_general_setup.tex | 12 +- ...uration_03_processor_type_and_features.tex | 496 +++++++++++++++--- ..._speculative_execution_vulnerabilities.tex | 44 +- 6 files changed, 771 insertions(+), 248 deletions(-) diff --git a/config-6.13.2 b/config-6.13.2 index 49f7f88..450c421 100644 --- a/config-6.13.2 +++ b/config-6.13.2 @@ -198,8 +198,6 @@ CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_GCC_NO_STRINGOP_OVERFLOW=y CONFIG_CC_NO_STRINGOP_OVERFLOW=y CONFIG_ARCH_SUPPORTS_INT128=y -CONFIG_NUMA_BALANCING=y -CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_SLAB_OBJ_EXT=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y @@ -351,7 +349,7 @@ CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y -CONFIG_PGTABLE_LEVELS=5 +CONFIG_PGTABLE_LEVELS=4 CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # @@ -372,12 +370,14 @@ CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y CONFIG_SCHED_OMIT_FRAME_POINTER=y # CONFIG_HYPERVISOR_GUEST is not set # CONFIG_MK8 is not set -CONFIG_MPSC=y -# CONFIG_MCORE2 is not set +# CONFIG_MPSC is not set +CONFIG_MCORE2=y # CONFIG_MATOM is not set # CONFIG_GENERIC_CPU is not set -CONFIG_X86_INTERNODE_CACHE_SHIFT=7 -CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_P6_NOP=y CONFIG_X86_TSC=y CONFIG_X86_HAVE_PAE=y @@ -414,39 +414,33 @@ CONFIG_X86_MCE=y # CONFIG_X86_MCELOG_LEGACY is not set CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_THRESHOLD=y -CONFIG_X86_MCE_INJECT=m +# CONFIG_X86_MCE_INJECT is not set # # Performance monitoring # -CONFIG_PERF_EVENTS_INTEL_UNCORE=m -CONFIG_PERF_EVENTS_INTEL_RAPL=m -CONFIG_PERF_EVENTS_INTEL_CSTATE=m +# CONFIG_PERF_EVENTS_INTEL_UNCORE is not set +# CONFIG_PERF_EVENTS_INTEL_RAPL is not set +# CONFIG_PERF_EVENTS_INTEL_CSTATE is not set # end of Performance monitoring -# CONFIG_X86_16BIT is not set # CONFIG_X86_VSYSCALL_EMULATION is not set CONFIG_X86_IOPL_IOPERM=y CONFIG_MICROCODE=y # CONFIG_MICROCODE_LATE_LOADING is not set CONFIG_X86_MSR=y CONFIG_X86_CPUID=y -CONFIG_X86_5LEVEL=y +# CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y -CONFIG_X86_CPA_STATISTICS=y -CONFIG_NUMA=y -CONFIG_AMD_NUMA=y -CONFIG_X86_64_ACPI_NUMA=y -CONFIG_NODES_SHIFT=10 +# CONFIG_X86_CPA_STATISTICS is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y # CONFIG_ARCH_MEMORY_PROBE is not set CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -CONFIG_X86_PMEM_LEGACY_DEVICE=y -CONFIG_X86_PMEM_LEGACY=m -CONFIG_X86_CHECK_BIOS_CORRUPTION=y -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +# CONFIG_X86_PMEM_LEGACY is not set +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 @@ -455,18 +449,18 @@ CONFIG_X86_PAT=y CONFIG_X86_UMIP=y CONFIG_CC_HAS_IBT=y CONFIG_X86_CET=y -CONFIG_X86_KERNEL_IBT=y +# CONFIG_X86_KERNEL_IBT is not set CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y CONFIG_ARCH_PKEY_BITS=4 # CONFIG_X86_INTEL_TSX_MODE_OFF is not set # CONFIG_X86_INTEL_TSX_MODE_ON is not set CONFIG_X86_INTEL_TSX_MODE_AUTO=y -CONFIG_X86_SGX=y +# CONFIG_X86_SGX is not set CONFIG_X86_USER_SHADOW_STACK=y CONFIG_EFI=y CONFIG_EFI_STUB=y -CONFIG_EFI_HANDOVER_PROTOCOL=y -CONFIG_EFI_MIXED=y +# CONFIG_EFI_HANDOVER_PROTOCOL is not set +# CONFIG_EFI_MIXED is not set CONFIG_EFI_RUNTIME_MAP=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set @@ -499,10 +493,10 @@ CONFIG_HOTPLUG_CPU=y CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set -CONFIG_MODIFY_LDT_SYSCALL=y +# CONFIG_MODIFY_LDT_SYSCALL is not set # CONFIG_STRICT_SIGALTSTACK_SIZE is not set CONFIG_HAVE_LIVEPATCH=y -CONFIG_X86_BUS_LOCK_DETECT=y +# CONFIG_X86_BUS_LOCK_DETECT is not set # end of Processor type and features CONFIG_CC_HAS_NAMED_AS=y @@ -576,7 +570,6 @@ CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y -CONFIG_ACPI_TABLE_LIB=y CONFIG_ACPI_THERMAL_LIB=y # CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SPCR_TABLE=y @@ -617,8 +610,6 @@ CONFIG_ACPI_BGRT=y CONFIG_ACPI_NHLT=y CONFIG_ACPI_NFIT=m # CONFIG_NFIT_SECURITY_DEBUG is not set -CONFIG_ACPI_NUMA=y -CONFIG_ACPI_HMAT=y CONFIG_HAVE_ACPI_APEI=y CONFIG_HAVE_ACPI_APEI_NMI=y CONFIG_ACPI_APEI=y @@ -751,7 +742,6 @@ CONFIG_KVM_WERROR=y # CONFIG_KVM_SW_PROTECTED_VM is not set CONFIG_KVM_INTEL=m # CONFIG_KVM_INTEL_PROVE_VE is not set -CONFIG_X86_SGX_KVM=y CONFIG_KVM_SMM=y CONFIG_KVM_HYPERV=y CONFIG_KVM_XEN=y @@ -916,7 +906,6 @@ CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y CONFIG_ARCH_HAS_ELFCORE_COMPAT=y CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y CONFIG_DYNAMIC_SIGFRAME=y -CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y CONFIG_ARCH_HAS_HW_PTE_YOUNG=y CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y @@ -1115,7 +1104,6 @@ CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y CONFIG_HAVE_GUP_FAST=y -CONFIG_NUMA_KEEP_MEMINFO=y CONFIG_MEMORY_ISOLATION=y CONFIG_EXCLUSIVE_SYSTEM_RAM=y CONFIG_HAVE_BOOTMEM_INFO_NODE=y @@ -1161,7 +1149,6 @@ CONFIG_ARCH_SUPPORTS_PMD_PFNMAP=y CONFIG_ARCH_SUPPORTS_PUD_PFNMAP=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -CONFIG_USE_PERCPU_NUMA_NODE_ID=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_CMA=y CONFIG_CMA_DEBUGFS=y @@ -1207,8 +1194,6 @@ CONFIG_PER_VMA_LOCK=y CONFIG_LOCK_MM_AND_FIND_VMA=y CONFIG_IOMMU_MM_DATA=y CONFIG_EXECMEM=y -CONFIG_NUMA_MEMBLKS=y -# CONFIG_NUMA_EMU is not set CONFIG_ARCH_HAS_USER_SHADOW_STACK=y # @@ -2279,7 +2264,6 @@ CONFIG_PCI_SW_SWITCHTEC=m CONFIG_CXL_BUS=m CONFIG_CXL_PCI=m # CONFIG_CXL_MEM_RAW_COMMANDS is not set -CONFIG_CXL_ACPI=m CONFIG_CXL_PMEM=m CONFIG_CXL_MEM=m CONFIG_CXL_PORT=m @@ -2338,7 +2322,6 @@ CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -CONFIG_HMEM_REPORTING=y # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_GENERIC_CPU_DEVICES=y CONFIG_GENERIC_CPU_AUTOPROBE=y @@ -2415,7 +2398,6 @@ CONFIG_GOOGLE_VPD=m CONFIG_EFI_ESRT=y CONFIG_EFI_VARS_PSTORE=y CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y -CONFIG_EFI_SOFT_RESERVE=y CONFIG_EFI_DXE_MEM_ATTRIBUTES=y CONFIG_EFI_RUNTIME_WRAPPERS=y CONFIG_EFI_BOOTLOADER_CONTROL=m @@ -10533,9 +10515,7 @@ CONFIG_NVDIMM_KEYS=y CONFIG_DAX=y CONFIG_DEV_DAX=m CONFIG_DEV_DAX_PMEM=m -CONFIG_DEV_DAX_HMEM=m CONFIG_DEV_DAX_CXL=m -CONFIG_DEV_DAX_HMEM_DEVICES=y CONFIG_DEV_DAX_KMEM=m CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y @@ -11557,7 +11537,6 @@ CONFIG_SWIOTLB=y # CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_DMA_NEED_SYNC=y CONFIG_DMA_CMA=y -# CONFIG_DMA_NUMA_CMA is not set # # Default contiguous memory area size: diff --git a/config-6.13.2.patch b/config-6.13.2.patch index b86bba1..364504a 100644 --- a/config-6.13.2.patch +++ b/config-6.13.2.patch @@ -1,5 +1,5 @@ --- ../config 2025-02-04 01:14:00.219420420 +0100 -+++ .config 2025-02-14 01:09:23.815798443 +0100 ++++ .config 2025-02-16 00:49:17.997994267 +0100 @@ -1,18 +1,18 @@ # # Automatically generated file; DO NOT EDIT. @@ -150,7 +150,16 @@ # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y -@@ -233,7 +215,6 @@ +@@ -216,8 +198,6 @@ + CONFIG_GCC_NO_STRINGOP_OVERFLOW=y + CONFIG_CC_NO_STRINGOP_OVERFLOW=y + CONFIG_ARCH_SUPPORTS_INT128=y +-CONFIG_NUMA_BALANCING=y +-CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y + CONFIG_SLAB_OBJ_EXT=y + CONFIG_CGROUPS=y + CONFIG_PAGE_COUNTER=y +@@ -233,7 +213,6 @@ # CONFIG_RT_GROUP_SCHED is not set CONFIG_EXT_GROUP_SCHED=y CONFIG_SCHED_MM_CID=y @@ -158,7 +167,7 @@ CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_RDMA=y CONFIG_CGROUP_FREEZER=y -@@ -261,12 +242,12 @@ +@@ -261,12 +240,12 @@ CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" @@ -177,7 +186,7 @@ CONFIG_RD_ZSTD=y CONFIG_BOOT_CONFIG=y # CONFIG_BOOT_CONFIG_FORCE is not set -@@ -275,22 +256,23 @@ +@@ -275,22 +254,23 @@ CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_LD_ORPHAN_WARN=y @@ -205,7 +214,7 @@ CONFIG_FUTEX=y CONFIG_FUTEX_PI=y CONFIG_EPOLL=y -@@ -304,10 +286,12 @@ +@@ -304,10 +284,12 @@ CONFIG_MEMBARRIER=y CONFIG_KCMP=y CONFIG_RSEQ=y @@ -219,15 +228,17 @@ CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_HAVE_PERF_EVENTS=y -@@ -367,7 +351,6 @@ +@@ -367,8 +349,7 @@ CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y -CONFIG_DYNAMIC_PHYSICAL_MASK=y - CONFIG_PGTABLE_LEVELS=5 +-CONFIG_PGTABLE_LEVELS=5 ++CONFIG_PGTABLE_LEVELS=4 CONFIG_CC_HAS_SANE_STACKPROTECTOR=y -@@ -376,51 +359,26 @@ + # +@@ -376,51 +357,28 @@ # CONFIG_SMP=y CONFIG_X86_X2APIC=y @@ -274,21 +285,21 @@ -CONFIG_INTEL_TDX_GUEST=y +# CONFIG_HYPERVISOR_GUEST is not set # CONFIG_MK8 is not set --# CONFIG_MPSC is not set -+CONFIG_MPSC=y - # CONFIG_MCORE2 is not set + # CONFIG_MPSC is not set +-# CONFIG_MCORE2 is not set ++CONFIG_MCORE2=y # CONFIG_MATOM is not set -CONFIG_GENERIC_CPU=y --CONFIG_X86_INTERNODE_CACHE_SHIFT=6 --CONFIG_X86_L1_CACHE_SHIFT=6 +# CONFIG_GENERIC_CPU is not set -+CONFIG_X86_INTERNODE_CACHE_SHIFT=7 -+CONFIG_X86_L1_CACHE_SHIFT=7 + CONFIG_X86_INTERNODE_CACHE_SHIFT=6 + CONFIG_X86_L1_CACHE_SHIFT=6 ++CONFIG_X86_INTEL_USERCOPY=y ++CONFIG_X86_USE_PPRO_CHECKSUM=y +CONFIG_X86_P6_NOP=y CONFIG_X86_TSC=y CONFIG_X86_HAVE_PAE=y CONFIG_X86_CMPXCHG64=y -@@ -429,33 +387,32 @@ +@@ -429,73 +387,60 @@ CONFIG_X86_DEBUGCTLMSR=y CONFIG_IA32_FEAT_CTL=y CONFIG_X86_VMX_FEATURE_NAMES=y @@ -332,43 +343,96 @@ CONFIG_X86_MCE_INTEL=y -CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y - CONFIG_X86_MCE_INJECT=m +-CONFIG_X86_MCE_INJECT=m ++# CONFIG_X86_MCE_INJECT is not set -@@ -465,14 +422,10 @@ - CONFIG_PERF_EVENTS_INTEL_UNCORE=m - CONFIG_PERF_EVENTS_INTEL_RAPL=m - CONFIG_PERF_EVENTS_INTEL_CSTATE=m + # + # Performance monitoring + # +-CONFIG_PERF_EVENTS_INTEL_UNCORE=m +-CONFIG_PERF_EVENTS_INTEL_RAPL=m +-CONFIG_PERF_EVENTS_INTEL_CSTATE=m -CONFIG_PERF_EVENTS_AMD_POWER=m -CONFIG_PERF_EVENTS_AMD_UNCORE=m -CONFIG_PERF_EVENTS_AMD_BRS=y ++# CONFIG_PERF_EVENTS_INTEL_UNCORE is not set ++# CONFIG_PERF_EVENTS_INTEL_RAPL is not set ++# CONFIG_PERF_EVENTS_INTEL_CSTATE is not set # end of Performance monitoring -CONFIG_X86_16BIT=y -CONFIG_X86_ESPFIX64=y -CONFIG_X86_VSYSCALL_EMULATION=y -+# CONFIG_X86_16BIT is not set +# CONFIG_X86_VSYSCALL_EMULATION is not set CONFIG_X86_IOPL_IOPERM=y CONFIG_MICROCODE=y # CONFIG_MICROCODE_LATE_LOADING is not set -@@ -481,8 +434,6 @@ - CONFIG_X86_5LEVEL=y + CONFIG_X86_MSR=y + CONFIG_X86_CPUID=y +-CONFIG_X86_5LEVEL=y ++# CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y - CONFIG_X86_CPA_STATISTICS=y +-CONFIG_X86_CPA_STATISTICS=y -CONFIG_X86_MEM_ENCRYPT=y -CONFIG_AMD_MEM_ENCRYPT=y - CONFIG_NUMA=y - CONFIG_AMD_NUMA=y - CONFIG_X86_64_ACPI_NUMA=y -@@ -551,7 +502,6 @@ - CONFIG_MODIFY_LDT_SYSCALL=y +-CONFIG_NUMA=y +-CONFIG_AMD_NUMA=y +-CONFIG_X86_64_ACPI_NUMA=y +-CONFIG_NODES_SHIFT=10 ++# CONFIG_X86_CPA_STATISTICS is not set ++# CONFIG_NUMA is not set + CONFIG_ARCH_SPARSEMEM_ENABLE=y + CONFIG_ARCH_SPARSEMEM_DEFAULT=y + # CONFIG_ARCH_MEMORY_PROBE is not set + CONFIG_ARCH_PROC_KCORE_TEXT=y + CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +-CONFIG_X86_PMEM_LEGACY_DEVICE=y +-CONFIG_X86_PMEM_LEGACY=m +-CONFIG_X86_CHECK_BIOS_CORRUPTION=y +-CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y ++# CONFIG_X86_PMEM_LEGACY is not set ++# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set + CONFIG_MTRR=y + CONFIG_MTRR_SANITIZER=y + CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +@@ -504,18 +449,18 @@ + CONFIG_X86_UMIP=y + CONFIG_CC_HAS_IBT=y + CONFIG_X86_CET=y +-CONFIG_X86_KERNEL_IBT=y ++# CONFIG_X86_KERNEL_IBT is not set + CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y + CONFIG_ARCH_PKEY_BITS=4 + # CONFIG_X86_INTEL_TSX_MODE_OFF is not set + # CONFIG_X86_INTEL_TSX_MODE_ON is not set + CONFIG_X86_INTEL_TSX_MODE_AUTO=y +-CONFIG_X86_SGX=y ++# CONFIG_X86_SGX is not set + CONFIG_X86_USER_SHADOW_STACK=y + CONFIG_EFI=y + CONFIG_EFI_STUB=y +-CONFIG_EFI_HANDOVER_PROTOCOL=y +-CONFIG_EFI_MIXED=y ++# CONFIG_EFI_HANDOVER_PROTOCOL is not set ++# CONFIG_EFI_MIXED is not set + CONFIG_EFI_RUNTIME_MAP=y + # CONFIG_HZ_100 is not set + # CONFIG_HZ_250 is not set +@@ -548,11 +493,10 @@ + CONFIG_LEGACY_VSYSCALL_XONLY=y + # CONFIG_LEGACY_VSYSCALL_NONE is not set + # CONFIG_CMDLINE_BOOL is not set +-CONFIG_MODIFY_LDT_SYSCALL=y ++# CONFIG_MODIFY_LDT_SYSCALL is not set # CONFIG_STRICT_SIGALTSTACK_SIZE is not set CONFIG_HAVE_LIVEPATCH=y -# CONFIG_LIVEPATCH is not set - CONFIG_X86_BUS_LOCK_DETECT=y +-CONFIG_X86_BUS_LOCK_DETECT=y ++# CONFIG_X86_BUS_LOCK_DETECT is not set # end of Processor type and features -@@ -571,12 +521,9 @@ + CONFIG_CC_HAS_NAMED_AS=y +@@ -571,12 +515,9 @@ CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y CONFIG_MITIGATION_RETPOLINE=y CONFIG_MITIGATION_RETHUNK=y @@ -381,7 +445,7 @@ CONFIG_MITIGATION_SLS=y CONFIG_MITIGATION_GDS=y CONFIG_MITIGATION_RFDS=y -@@ -598,6 +545,7 @@ +@@ -598,6 +539,7 @@ CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y @@ -389,7 +453,7 @@ CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_HIBERNATION_SNAPSHOT_DEV=y -@@ -615,6 +563,7 @@ +@@ -615,6 +557,7 @@ # CONFIG_PM_ADVANCED_DEBUG is not set # CONFIG_PM_TEST_SUSPEND is not set CONFIG_PM_SLEEP_DEBUG=y @@ -397,7 +461,15 @@ CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y CONFIG_PM_CLK=y -@@ -664,6 +613,7 @@ +@@ -627,7 +570,6 @@ + CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y + CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y + CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y +-CONFIG_ACPI_TABLE_LIB=y + CONFIG_ACPI_THERMAL_LIB=y + # CONFIG_ACPI_DEBUGGER is not set + CONFIG_ACPI_SPCR_TABLE=y +@@ -664,11 +606,10 @@ CONFIG_ACPI_SBS=m CONFIG_ACPI_HED=y CONFIG_ACPI_BGRT=y @@ -405,7 +477,12 @@ CONFIG_ACPI_NHLT=y CONFIG_ACPI_NFIT=m # CONFIG_NFIT_SECURITY_DEBUG is not set -@@ -727,9 +677,7 @@ +-CONFIG_ACPI_NUMA=y +-CONFIG_ACPI_HMAT=y + CONFIG_HAVE_ACPI_APEI=y + CONFIG_HAVE_ACPI_APEI_NMI=y + CONFIG_ACPI_APEI=y +@@ -727,9 +668,7 @@ CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 CONFIG_X86_AMD_PSTATE_UT=m CONFIG_X86_ACPI_CPUFREQ=m @@ -415,7 +492,7 @@ # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_P4_CLOCKMOD=m -@@ -746,8 +694,6 @@ +@@ -746,8 +685,6 @@ CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_CPU_IDLE_GOV_TEO=y @@ -424,7 +501,7 @@ # end of CPU Idle CONFIG_INTEL_IDLE=y -@@ -758,10 +704,10 @@ +@@ -758,10 +695,10 @@ # CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y @@ -437,7 +514,7 @@ # end of Bus options (PCI etc.) # -@@ -798,21 +744,18 @@ +@@ -798,21 +735,17 @@ CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y CONFIG_KVM_GENERIC_MMU_NOTIFIER=y CONFIG_KVM_ELIDE_TLB_FLUSH_IF_YOUNG=y @@ -452,10 +529,10 @@ +CONFIG_KVM_WERROR=y +# CONFIG_KVM_SW_PROTECTED_VM is not set CONFIG_KVM_INTEL=m -+# CONFIG_KVM_INTEL_PROVE_VE is not set - CONFIG_X86_SGX_KVM=y +-CONFIG_X86_SGX_KVM=y -CONFIG_KVM_AMD=m -CONFIG_KVM_AMD_SEV=y ++# CONFIG_KVM_INTEL_PROVE_VE is not set CONFIG_KVM_SMM=y CONFIG_KVM_HYPERV=y CONFIG_KVM_XEN=y @@ -463,7 +540,7 @@ CONFIG_KVM_EXTERNAL_WRITE_TRACKING=y CONFIG_KVM_MAX_NR_VCPUS=1024 CONFIG_AS_AVX512=y -@@ -824,7 +767,6 @@ +@@ -824,7 +757,6 @@ CONFIG_AS_VPCLMULQDQ=y CONFIG_AS_WRUSS=y CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y @@ -471,7 +548,7 @@ # # General architecture-dependent options -@@ -883,8 +825,6 @@ +@@ -883,8 +815,6 @@ CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y @@ -480,7 +557,7 @@ CONFIG_MMU_GATHER_MERGE_VMAS=y CONFIG_MMU_LAZY_TLB_REFCOUNT=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y -@@ -966,7 +906,6 @@ +@@ -966,7 +896,6 @@ CONFIG_ARCH_USE_MEMREMAP_PROT=y CONFIG_LOCK_EVENT_COUNTS=y CONFIG_ARCH_HAS_MEM_ENCRYPT=y @@ -488,7 +565,15 @@ CONFIG_HAVE_STATIC_CALL=y CONFIG_HAVE_STATIC_CALL_INLINE=y CONFIG_HAVE_PREEMPT_DYNAMIC=y -@@ -1098,7 +1037,11 @@ +@@ -977,7 +906,6 @@ + CONFIG_ARCH_HAS_ELFCORE_COMPAT=y + CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y + CONFIG_DYNAMIC_SIGFRAME=y +-CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y + CONFIG_ARCH_HAS_HW_PTE_YOUNG=y + CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y + CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y +@@ -1098,7 +1026,11 @@ CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y @@ -501,7 +586,7 @@ CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y -@@ -1153,6 +1096,7 @@ +@@ -1153,6 +1085,7 @@ # Slab allocator options # CONFIG_SLUB=y @@ -509,7 +594,23 @@ CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_FREELIST_HARDENED=y -@@ -1231,6 +1175,7 @@ +@@ -1171,7 +1104,6 @@ + CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y + CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y + CONFIG_HAVE_GUP_FAST=y +-CONFIG_NUMA_KEEP_MEMINFO=y + CONFIG_MEMORY_ISOLATION=y + CONFIG_EXCLUSIVE_SYSTEM_RAM=y + CONFIG_HAVE_BOOTMEM_INFO_NODE=y +@@ -1217,7 +1149,6 @@ + CONFIG_ARCH_SUPPORTS_PUD_PFNMAP=y + CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y + CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +-CONFIG_USE_PERCPU_NUMA_NODE_ID=y + CONFIG_HAVE_SETUP_PER_CPU_AREA=y + CONFIG_CMA=y + CONFIG_CMA_DEBUGFS=y +@@ -1231,6 +1162,7 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y CONFIG_ARCH_HAS_PTE_DEVMAP=y @@ -517,7 +618,7 @@ CONFIG_ZONE_DMA=y CONFIG_ZONE_DMA32=y CONFIG_ZONE_DEVICE=y -@@ -1246,7 +1191,6 @@ +@@ -1246,7 +1178,6 @@ # CONFIG_GUP_TEST is not set # CONFIG_DMAPOOL_TEST is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y @@ -525,7 +626,16 @@ CONFIG_MEMFD_CREATE=y CONFIG_SECRETMEM=y CONFIG_ANON_VMA_NAME=y -@@ -1988,7 +1932,6 @@ +@@ -1263,8 +1194,6 @@ + CONFIG_LOCK_MM_AND_FIND_VMA=y + CONFIG_IOMMU_MM_DATA=y + CONFIG_EXECMEM=y +-CONFIG_NUMA_MEMBLKS=y +-# CONFIG_NUMA_EMU is not set + CONFIG_ARCH_HAS_USER_SHADOW_STACK=y + + # +@@ -1988,7 +1917,6 @@ CONFIG_VMWARE_VMCI_VSOCKETS=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO_VSOCKETS_COMMON=m @@ -533,7 +643,7 @@ CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m -@@ -2140,6 +2083,7 @@ +@@ -2140,6 +2068,7 @@ CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set @@ -541,7 +651,7 @@ CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y CONFIG_CFG80211_DEFAULT_PS=y -@@ -2164,7 +2108,6 @@ +@@ -2164,7 +2093,6 @@ CONFIG_NET_9P=m CONFIG_NET_9P_FD=m CONFIG_NET_9P_VIRTIO=m @@ -549,7 +659,7 @@ CONFIG_NET_9P_USBG=m CONFIG_NET_9P_RDMA=m # CONFIG_NET_9P_DEBUG is not set -@@ -2264,7 +2207,6 @@ +@@ -2264,7 +2192,6 @@ # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set CONFIG_PCI_STUB=y CONFIG_PCI_PF_STUB=m @@ -557,7 +667,7 @@ CONFIG_PCI_ATS=y CONFIG_PCI_DOE=y CONFIG_PCI_LOCKLESS_CONFIG=y -@@ -2275,7 +2217,11 @@ +@@ -2275,7 +2202,11 @@ CONFIG_PCIE_TPH=y CONFIG_PCI_P2PDMA=y CONFIG_PCI_LABEL=y @@ -570,7 +680,7 @@ CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=10 CONFIG_HOTPLUG_PCI=y -@@ -2291,7 +2237,6 @@ +@@ -2291,7 +2222,6 @@ # PCI controller drivers # CONFIG_VMD=m @@ -578,15 +688,33 @@ # # Cadence-based PCIe controllers -@@ -2395,7 +2340,6 @@ +@@ -2334,7 +2264,6 @@ + CONFIG_CXL_BUS=m + CONFIG_CXL_PCI=m + # CONFIG_CXL_MEM_RAW_COMMANDS is not set +-CONFIG_CXL_ACPI=m + CONFIG_CXL_PMEM=m + CONFIG_CXL_MEM=m + CONFIG_CXL_PORT=m +@@ -2393,9 +2322,7 @@ + # CONFIG_DEBUG_DRIVER is not set + # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set - CONFIG_HMEM_REPORTING=y +-CONFIG_HMEM_REPORTING=y # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set -CONFIG_SYS_HYPERVISOR=y CONFIG_GENERIC_CPU_DEVICES=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y -@@ -2486,7 +2430,6 @@ +@@ -2471,7 +2398,6 @@ + CONFIG_EFI_ESRT=y + CONFIG_EFI_VARS_PSTORE=y + CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y +-CONFIG_EFI_SOFT_RESERVE=y + CONFIG_EFI_DXE_MEM_ATTRIBUTES=y + CONFIG_EFI_RUNTIME_WRAPPERS=y + CONFIG_EFI_BOOTLOADER_CONTROL=m +@@ -2486,7 +2412,6 @@ CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y # CONFIG_EFI_DISABLE_RUNTIME is not set CONFIG_EFI_COCO_SECRET=y @@ -594,7 +722,7 @@ CONFIG_EFI_EMBEDDED_FIRMWARE=y # end of EFI (Extensible Firmware Interface) Support -@@ -2695,8 +2638,6 @@ +@@ -2695,8 +2620,6 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m @@ -603,7 +731,7 @@ CONFIG_VIRTIO_BLK=m CONFIG_BLK_DEV_RBD=m CONFIG_BLK_DEV_UBLK=m -@@ -2759,7 +2700,6 @@ +@@ -2759,7 +2682,6 @@ CONFIG_SENSORS_APDS990X=m CONFIG_HMC6352=m CONFIG_DS1682=m @@ -611,7 +739,7 @@ CONFIG_LATTICE_ECP3_CONFIG=m # CONFIG_SRAM is not set CONFIG_DW_XDATA_PCIE=m -@@ -2907,8 +2847,6 @@ +@@ -2907,8 +2829,6 @@ CONFIG_SCSI_MYRB=m CONFIG_SCSI_MYRS=m CONFIG_VMWARE_PVSCSI=m @@ -620,7 +748,7 @@ CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m -@@ -3513,7 +3451,6 @@ +@@ -3513,7 +3433,6 @@ CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_MSCC_OCELOT_SWITCH_LIB=m CONFIG_NET_VENDOR_MICROSOFT=y @@ -628,7 +756,7 @@ CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y -@@ -4267,12 +4204,9 @@ +@@ -4267,12 +4186,9 @@ CONFIG_MTK_T7XX=m # end of Wireless WAN @@ -641,7 +769,7 @@ CONFIG_NETDEVSIM=m CONFIG_NET_FAILOVER=m CONFIG_ISDN=y -@@ -4369,7 +4303,6 @@ +@@ -4369,7 +4285,6 @@ CONFIG_MOUSE_PS2_SENTELIC=y CONFIG_MOUSE_PS2_TOUCHKIT=y CONFIG_MOUSE_PS2_FOCALTECH=y @@ -649,7 +777,7 @@ CONFIG_MOUSE_PS2_SMBUS=y CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_APPLETOUCH=m -@@ -4547,7 +4480,6 @@ +@@ -4547,7 +4462,6 @@ CONFIG_INPUT_BMA150=m # CONFIG_INPUT_CS40L50_VIBRA is not set CONFIG_INPUT_E3X0_BUTTON=m @@ -657,7 +785,7 @@ CONFIG_INPUT_MAX77693_HAPTIC=m CONFIG_INPUT_MAX8925_ONKEY=m CONFIG_INPUT_MAX8997_HAPTIC=m -@@ -4593,7 +4525,6 @@ +@@ -4593,7 +4507,6 @@ CONFIG_INPUT_IQS7222=m CONFIG_INPUT_CMA3000=m CONFIG_INPUT_CMA3000_I2C=m @@ -665,7 +793,7 @@ CONFIG_INPUT_IDEAPAD_SLIDEBAR=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_DRV260X_HAPTICS=m -@@ -4631,7 +4562,6 @@ +@@ -4631,7 +4544,6 @@ CONFIG_SERIO_ALTERA_PS2=m CONFIG_SERIO_PS2MULT=m CONFIG_SERIO_ARC_PS2=m @@ -673,7 +801,7 @@ CONFIG_SERIO_GPIO_PS2=m CONFIG_USERIO=m CONFIG_GAMEPORT=m -@@ -4725,12 +4655,10 @@ +@@ -4725,12 +4637,10 @@ CONFIG_NOZOMI=m CONFIG_NULL_TTY=m CONFIG_HVC_DRIVER=y @@ -687,7 +815,7 @@ CONFIG_PRINTER=m CONFIG_LP_CONSOLE=y CONFIG_PPDEV=m -@@ -4778,7 +4706,6 @@ +@@ -4778,7 +4688,6 @@ CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m @@ -695,7 +823,7 @@ CONFIG_TCG_CRB=y CONFIG_TCG_VTPM_PROXY=m CONFIG_TCG_TIS_ST33ZP24=m -@@ -4985,13 +4912,11 @@ +@@ -4985,13 +4894,11 @@ CONFIG_PTP_1588_CLOCK_OPTIONAL=m CONFIG_DP83640_PHY=m CONFIG_PTP_1588_CLOCK_INES=m @@ -709,7 +837,7 @@ CONFIG_PTP_1588_CLOCK_OCP=m CONFIG_PTP_DFL_TOD=m # end of PTP clock support -@@ -5052,6 +4977,7 @@ +@@ -5052,6 +4959,7 @@ CONFIG_GPIO_ACPI=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set @@ -717,7 +845,7 @@ CONFIG_GPIO_CDEV=y CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_GENERIC=m -@@ -5181,6 +5107,7 @@ +@@ -5181,6 +5089,7 @@ # # GPIO Debugging utilities # @@ -725,7 +853,7 @@ # CONFIG_GPIO_VIRTUSER is not set # end of GPIO Debugging utilities -@@ -5348,8 +5275,6 @@ +@@ -5348,8 +5257,6 @@ CONFIG_SENSORS_ASUS_ROG_RYUJIN=m CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_K8TEMP=m @@ -734,7 +862,7 @@ CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATXP1=m -@@ -5732,7 +5657,6 @@ +@@ -5732,7 +5639,6 @@ CONFIG_NIC7018_WDT=m CONFIG_SIEMENS_SIMATIC_IPC_WDT=m CONFIG_MEN_A21_WDT=m @@ -742,7 +870,7 @@ # # PCI-based Watchdog Cards -@@ -6061,17 +5985,14 @@ +@@ -6061,17 +5967,14 @@ CONFIG_RC_XBOX_DVD=m CONFIG_CEC_CORE=m CONFIG_CEC_NOTIFIER=y @@ -760,7 +888,7 @@ CONFIG_CEC_SECO=m CONFIG_CEC_SECO_RC=y CONFIG_USB_EXTRON_DA_HD_4K_PLUS_CEC=m -@@ -6543,8 +6464,6 @@ +@@ -6543,8 +6446,6 @@ CONFIG_VIDEOBUF2_DVB=m # end of Media drivers @@ -769,7 +897,7 @@ # # Media ancillary drivers # -@@ -6652,48 +6571,110 @@ +@@ -6652,48 +6553,110 @@ # end of Flash devices # @@ -885,7 +1013,7 @@ # # Media SPI Adapters -@@ -6705,7 +6686,7 @@ +@@ -6705,7 +6668,7 @@ CONFIG_MEDIA_TUNER=m # @@ -894,7 +1022,7 @@ # CONFIG_MEDIA_TUNER_E4000=m CONFIG_MEDIA_TUNER_FC0011=m -@@ -6716,6 +6697,7 @@ +@@ -6716,6 +6679,7 @@ CONFIG_MEDIA_TUNER_M88RS6000T=m CONFIG_MEDIA_TUNER_MAX2165=m CONFIG_MEDIA_TUNER_MC44S803=m @@ -902,7 +1030,7 @@ CONFIG_MEDIA_TUNER_MT2060=m CONFIG_MEDIA_TUNER_MT2063=m CONFIG_MEDIA_TUNER_MT20XX=m -@@ -6743,9 +6725,10 @@ +@@ -6743,9 +6707,10 @@ CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_XC5000=m @@ -914,7 +1042,7 @@ # # -@@ -6813,6 +6796,7 @@ +@@ -6813,6 +6778,7 @@ CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m @@ -922,7 +1050,7 @@ CONFIG_DVB_DRXD=m CONFIG_DVB_EC100=m CONFIG_DVB_GP8PSK_FE=m -@@ -6821,6 +6805,7 @@ +@@ -6821,6 +6787,7 @@ CONFIG_DVB_NXT6000=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m @@ -930,7 +1058,7 @@ CONFIG_DVB_SI2168=m CONFIG_DVB_SP887X=m CONFIG_DVB_STV0367=m -@@ -6828,6 +6813,7 @@ +@@ -6828,6 +6795,7 @@ CONFIG_DVB_TDA1004X=m CONFIG_DVB_ZD1301_DEMOD=m CONFIG_DVB_ZL10353=m @@ -938,7 +1066,7 @@ # # DVB-C (cable) frontends -@@ -6865,6 +6851,7 @@ +@@ -6865,6 +6833,7 @@ # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # @@ -946,7 +1074,7 @@ CONFIG_DVB_TC90522=m # -@@ -6887,8 +6874,10 @@ +@@ -6887,8 +6856,10 @@ CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_IX2505V=m @@ -957,7 +1085,7 @@ CONFIG_DVB_LNBP21=m CONFIG_DVB_LNBP22=m CONFIG_DVB_M88RS2000=m -@@ -6900,6 +6889,7 @@ +@@ -6900,6 +6871,7 @@ # CONFIG_DVB_CXD2099=m CONFIG_DVB_SP2=m @@ -965,7 +1093,7 @@ # # Tools to develop new frontends -@@ -6916,7 +6906,6 @@ +@@ -6916,7 +6888,6 @@ # CONFIG_AUXDISPLAY is not set # CONFIG_PANEL is not set CONFIG_AGP=y @@ -973,7 +1101,7 @@ CONFIG_AGP_INTEL=m CONFIG_AGP_SIS=m CONFIG_AGP_VIA=m -@@ -6932,6 +6921,8 @@ +@@ -6932,6 +6903,8 @@ CONFIG_DRM_PANIC_BACKGROUND_COLOR=0x0000aa # CONFIG_DRM_PANIC_DEBUG is not set CONFIG_DRM_PANIC_SCREEN="kmsg" @@ -982,7 +1110,7 @@ CONFIG_DRM_CLIENT=y CONFIG_DRM_CLIENT_LIB=y CONFIG_DRM_CLIENT_SELECTION=y -@@ -6942,6 +6933,7 @@ +@@ -6942,6 +6915,7 @@ # CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 @@ -990,7 +1118,7 @@ # end of Supported DRM clients CONFIG_DRM_LOAD_EDID_FIRMWARE=y -@@ -6985,6 +6977,7 @@ +@@ -6985,6 +6959,7 @@ CONFIG_DRM_AMDGPU_CIK=y CONFIG_DRM_AMDGPU_USERPTR=y CONFIG_DRM_AMD_ISP=y @@ -998,7 +1126,7 @@ # # ACP (Audio CoProcessor) Configuration -@@ -7019,6 +7012,27 @@ +@@ -7019,6 +6994,27 @@ CONFIG_DRM_I915_GVT_KVMGT=m CONFIG_DRM_I915_PXP=y CONFIG_DRM_I915_DP_TUNNEL=y @@ -1026,7 +1154,7 @@ CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 CONFIG_DRM_I915_FENCE_TIMEOUT=10000 CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 -@@ -7028,10 +7042,29 @@ +@@ -7028,10 +7024,29 @@ CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 CONFIG_DRM_I915_STOP_TIMEOUT=100 CONFIG_DRM_I915_TIMESLICE_DURATION=1 @@ -1056,7 +1184,7 @@ CONFIG_DRM_XE_JOB_TIMEOUT_MAX=10000 CONFIG_DRM_XE_JOB_TIMEOUT_MIN=1 CONFIG_DRM_XE_TIMESLICE_MAX=10000000 -@@ -7040,10 +7073,10 @@ +@@ -7040,10 +7055,10 @@ CONFIG_DRM_XE_PREEMPT_TIMEOUT_MAX=10000000 CONFIG_DRM_XE_PREEMPT_TIMEOUT_MIN=1 CONFIG_DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT=y @@ -1069,7 +1197,7 @@ CONFIG_DRM_GMA500=m CONFIG_DRM_UDL=m CONFIG_DRM_AST=m -@@ -7089,14 +7122,11 @@ +@@ -7089,14 +7104,11 @@ CONFIG_TINYDRM_SHARP_MEMORY=m CONFIG_TINYDRM_ST7586=m CONFIG_TINYDRM_ST7735R=m @@ -1084,7 +1212,7 @@ CONFIG_DRM_PRIVACY_SCREEN=y CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -@@ -7143,10 +7173,8 @@ +@@ -7143,10 +7155,8 @@ # CONFIG_FB_UDL is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set @@ -1095,7 +1223,7 @@ # CONFIG_FB_SSD1307 is not set # CONFIG_FB_SM712 is not set CONFIG_FB_CORE=y -@@ -7305,7 +7333,6 @@ +@@ -7305,7 +7315,6 @@ CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y @@ -1103,7 +1231,7 @@ CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m CONFIG_SND_PCMTEST=m -@@ -7643,6 +7670,7 @@ +@@ -7643,6 +7652,7 @@ CONFIG_SND_SOC_SOF_ACPI_DEV=m CONFIG_SND_SOC_SOF_DEBUG_PROBES=m CONFIG_SND_SOC_SOF_CLIENT=m @@ -1111,7 +1239,7 @@ CONFIG_SND_SOC_SOF=m CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y CONFIG_SND_SOC_SOF_IPC3=y -@@ -8027,7 +8055,6 @@ +@@ -8027,7 +8037,6 @@ CONFIG_SND_X86=y CONFIG_HDMI_LPE_AUDIO=m CONFIG_SND_SYNTH_EMUX=m @@ -1119,7 +1247,7 @@ CONFIG_SND_VIRTIO=m CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y -@@ -8153,7 +8180,6 @@ +@@ -8153,7 +8162,6 @@ CONFIG_HID_RMI=m CONFIG_HID_GREENASIA=m CONFIG_GREENASIA_FF=y @@ -1127,7 +1255,7 @@ CONFIG_HID_SMARTJOYPLUS=m CONFIG_SMARTJOYPLUS_FF=y CONFIG_HID_TIVO=m -@@ -8190,6 +8216,13 @@ +@@ -8190,6 +8198,13 @@ CONFIG_USB_HID=m CONFIG_HID_PID=y CONFIG_USB_HIDDEV=y @@ -1141,7 +1269,7 @@ # end of USB HID support CONFIG_I2C_HID=m -@@ -8238,6 +8271,7 @@ +@@ -8238,6 +8253,7 @@ # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_PRODUCTLIST is not set @@ -1149,7 +1277,7 @@ CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_AUTOSUSPEND_DELAY=2 CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -@@ -8272,7 +8306,6 @@ +@@ -8272,7 +8288,6 @@ CONFIG_USB_HCD_BCMA=m CONFIG_USB_HCD_SSB=m # CONFIG_USB_HCD_TEST_MODE is not set @@ -1157,7 +1285,7 @@ # # USB Device Class drivers -@@ -8855,7 +8888,6 @@ +@@ -8855,7 +8870,6 @@ # CONFIG_HFI1_DEBUG_SDMA_ORDER is not set # CONFIG_SDMA_VERBOSITY is not set CONFIG_INFINIBAND_IRDMA=m @@ -1165,7 +1293,7 @@ CONFIG_MLX4_INFINIBAND=m CONFIG_MLX5_INFINIBAND=m CONFIG_INFINIBAND_MTHCA=m -@@ -8886,9 +8918,7 @@ +@@ -8886,9 +8900,7 @@ CONFIG_EDAC=y CONFIG_EDAC_LEGACY_SYSFS=y # CONFIG_EDAC_DEBUG is not set @@ -1175,7 +1303,7 @@ CONFIG_EDAC_E752X=m CONFIG_EDAC_I82975X=m CONFIG_EDAC_I3000=m -@@ -9110,7 +9140,6 @@ +@@ -9110,7 +9122,6 @@ CONFIG_UIO_PCI_GENERIC=m CONFIG_UIO_NETX=m CONFIG_UIO_MF624=m @@ -1183,7 +1311,7 @@ CONFIG_UIO_DFL=m CONFIG_VFIO=m CONFIG_VFIO_DEVICE_CDEV=y -@@ -9143,11 +9172,7 @@ +@@ -9143,11 +9154,7 @@ CONFIG_VMGENID=y CONFIG_VBOXGUEST=m CONFIG_NITRO_ENCLAVES=m @@ -1195,7 +1323,7 @@ CONFIG_VIRTIO_ANCHOR=y CONFIG_VIRTIO=y CONFIG_VIRTIO_PCI_LIB=y -@@ -9169,7 +9194,6 @@ +@@ -9169,7 +9176,6 @@ CONFIG_VDPA_SIM=m CONFIG_VDPA_SIM_NET=m CONFIG_VDPA_SIM_BLOCK=m @@ -1203,7 +1331,7 @@ CONFIG_IFCVF=m CONFIG_MLX5_VDPA=y CONFIG_MLX5_VDPA_NET=m -@@ -9193,53 +9217,8 @@ +@@ -9193,53 +9199,8 @@ # # Microsoft Hyper-V guest support # @@ -1257,7 +1385,7 @@ # CONFIG_GREYBUS is not set # CONFIG_COMEDI is not set CONFIG_STAGING=y -@@ -9380,19 +9359,6 @@ +@@ -9380,19 +9341,6 @@ CONFIG_ACERHDF=m CONFIG_ACER_WIRELESS=m CONFIG_ACER_WMI=m @@ -1277,7 +1405,7 @@ CONFIG_AMD_3D_VCACHE=m CONFIG_AMD_WBRF=y CONFIG_ADV_SWBUTTON=m -@@ -9561,7 +9527,6 @@ +@@ -9561,7 +9509,6 @@ # Clock Source drivers # CONFIG_CLKEVT_I8253=y @@ -1285,7 +1413,7 @@ CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -@@ -9597,7 +9562,6 @@ +@@ -9597,7 +9544,6 @@ CONFIG_IOMMUFD_DRIVER_CORE=y CONFIG_IOMMUFD=m CONFIG_IRQ_REMAP=y @@ -1293,7 +1421,7 @@ CONFIG_VIRTIO_IOMMU=m # -@@ -10496,6 +10460,7 @@ +@@ -10496,6 +10442,7 @@ CONFIG_SERIAL_IPOCTAL=m CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=m @@ -1301,7 +1429,7 @@ CONFIG_RESET_TI_SYSCON=m CONFIG_RESET_TI_TPS380X=m -@@ -10542,9 +10507,6 @@ +@@ -10542,9 +10489,6 @@ CONFIG_RAS=y CONFIG_RAS_CEC=y # CONFIG_RAS_CEC_DEBUG is not set @@ -1311,7 +1439,17 @@ CONFIG_USB4=m # CONFIG_USB4_DEBUGFS_WRITE is not set # CONFIG_USB4_DMA_TEST is not set -@@ -10625,8 +10587,6 @@ +@@ -10571,9 +10515,7 @@ + CONFIG_DAX=y + CONFIG_DEV_DAX=m + CONFIG_DEV_DAX_PMEM=m +-CONFIG_DEV_DAX_HMEM=m + CONFIG_DEV_DAX_CXL=m +-CONFIG_DEV_DAX_HMEM_DEVICES=y + CONFIG_DEV_DAX_KMEM=m + CONFIG_NVMEM=y + CONFIG_NVMEM_SYSFS=y +@@ -10625,8 +10567,6 @@ CONFIG_FPGA_MGR_MICROCHIP_SPI=m CONFIG_FPGA_MGR_LATTICE_SYSCONFIG=m CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI=m @@ -1320,7 +1458,7 @@ CONFIG_MULTIPLEXER=m # -@@ -11086,11 +11046,9 @@ +@@ -11086,11 +11026,9 @@ CONFIG_TRUSTED_KEYS=m CONFIG_HAVE_TRUSTED_KEYS=y CONFIG_TRUSTED_KEYS_TPM=y @@ -1332,7 +1470,7 @@ CONFIG_SECURITY_DMESG_RESTRICT=y CONFIG_PROC_MEM_ALWAYS_FORCE=y # CONFIG_PROC_MEM_FORCE_PTRACE is not set -@@ -11436,11 +11394,6 @@ +@@ -11436,11 +11374,6 @@ CONFIG_CRYPTO_DEV_ATMEL_ECC=m CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m CONFIG_CRYPTO_DEV_CCP=y @@ -1344,7 +1482,7 @@ CONFIG_CRYPTO_DEV_NITROX=m CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_QAT=m -@@ -11514,7 +11467,6 @@ +@@ -11514,7 +11447,6 @@ CONFIG_CRYPTO_LIB_UTILS=y CONFIG_CRYPTO_LIB_AES=y CONFIG_CRYPTO_LIB_AESCFB=y @@ -1352,7 +1490,7 @@ CONFIG_CRYPTO_LIB_ARC4=m CONFIG_CRYPTO_LIB_GF128MUL=m CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y -@@ -11561,7 +11513,7 @@ +@@ -11561,7 +11493,7 @@ CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_COMPRESS=m CONFIG_LZ4HC_COMPRESS=m @@ -1361,7 +1499,7 @@ CONFIG_ZSTD_COMMON=y CONFIG_ZSTD_COMPRESS=y CONFIG_ZSTD_DECOMPRESS=y -@@ -11576,12 +11528,6 @@ +@@ -11576,12 +11508,6 @@ CONFIG_XZ_DEC_MICROLZMA=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set @@ -1374,7 +1512,7 @@ CONFIG_DECOMPRESS_ZSTD=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=m -@@ -11607,11 +11553,9 @@ +@@ -11607,13 +11533,10 @@ CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y @@ -1384,9 +1522,11 @@ CONFIG_DMA_NEED_SYNC=y -CONFIG_DMA_COHERENT_POOL=y CONFIG_DMA_CMA=y - # CONFIG_DMA_NUMA_CMA is not set +-# CONFIG_DMA_NUMA_CMA is not set -@@ -11628,7 +11572,6 @@ + # + # Default contiguous memory area size: +@@ -11628,7 +11551,6 @@ # CONFIG_DMA_MAP_BENCHMARK is not set CONFIG_SGL_ALLOC=y CONFIG_CHECK_SIGNATURE=y @@ -1394,7 +1534,7 @@ CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y -@@ -11733,7 +11676,9 @@ +@@ -11733,7 +11655,9 @@ # CONFIG_HEADERS_INSTALL is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y @@ -1404,7 +1544,7 @@ # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options -@@ -11797,6 +11742,8 @@ +@@ -11797,6 +11721,8 @@ # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_PER_CPU_MAPS is not set @@ -1413,7 +1553,7 @@ # CONFIG_MEM_ALLOC_PROFILING is not set CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y -@@ -11809,6 +11756,7 @@ +@@ -11809,6 +11735,7 @@ CONFIG_KFENCE_SAMPLE_INTERVAL=100 CONFIG_KFENCE_NUM_OBJECTS=255 CONFIG_KFENCE_DEFERRABLE=y @@ -1421,7 +1561,7 @@ CONFIG_KFENCE_STRESS_TEST_FAULTS=0 CONFIG_HAVE_ARCH_KMSAN=y # end of Memory Debugging -@@ -11823,7 +11771,6 @@ +@@ -11823,7 +11750,6 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y @@ -1429,7 +1569,7 @@ # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y CONFIG_HARDLOCKUP_DETECTOR=y -@@ -11850,8 +11797,6 @@ +@@ -11850,8 +11776,6 @@ CONFIG_SCHEDSTATS=y # end of Scheduler Debugging @@ -1438,7 +1578,7 @@ # # Lock Debugging (spinlocks, mutexes, etc...) # -@@ -11898,7 +11843,6 @@ +@@ -11898,7 +11822,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # CONFIG_RCU_CPU_STALL_CPUTIME is not set @@ -1446,7 +1586,7 @@ # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # end of RCU Debugging -@@ -11949,7 +11893,6 @@ +@@ -11949,7 +11872,6 @@ CONFIG_FUNCTION_PROFILER=y CONFIG_STACK_TRACER=y # CONFIG_IRQSOFF_TRACER is not set @@ -1454,7 +1594,7 @@ CONFIG_SCHED_TRACER=y CONFIG_HWLAT_TRACER=y CONFIG_OSNOISE_TRACER=y -@@ -12084,7 +12027,6 @@ +@@ -12084,7 +12006,6 @@ # CONFIG_TEST_OBJPOOL is not set CONFIG_ARCH_USE_MEMTEST=y CONFIG_MEMTEST=y diff --git a/documentation/linux_configuration.pdf b/documentation/linux_configuration.pdf index 8efced3..d89940c 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:0c327d1db5290544154305ee00709871480b2131cf2f652c41d974ed9515cc9c -size 1793535 +oid sha256:ec178b034654812c1c5d163a59d64f627feeef34a46c749051ef94d89253bd75 +size 1843649 diff --git a/documentation/linux_configuration_01_general_setup.tex b/documentation/linux_configuration_01_general_setup.tex index 02dd597..2d43a89 100644 --- a/documentation/linux_configuration_01_general_setup.tex +++ b/documentation/linux_configuration_01_general_setup.tex @@ -72,7 +72,7 @@ Hohe Komprimierungsoptionen sind vor allem für Benutzer nützlich, die wenig Festplattenplatz zur Verfügung haben (embedded systems), für die aber die Ram-Größe weniger wichtig ist.\\ Überblick: Gzip werden von den älteren Kernelversionen unterstützt,\\ -Arch Linux (since Linux/x86 5.9.0) Standard: ZSTD (former: XZ since 4.14.4, predecessor GZIP,XZ)\\ +Arch Linux (seit Linux/x86 5.9.0) Standard: ZSTD (former: XZ seit 4.14.4, predecessor GZIP,XZ)\\ Debian 11.6: XZ\\ @TODO Weitere Linux Distributionen \subsubsection{Gzip} @@ -407,8 +407,8 @@ SCHED\_CORE ist standardmäßig deaktiviert. Wenn es aktiviert und unbenutzt ist bei Linux-Distributionen wahrscheinlich der Fall ist, sollte es keine messbaren Auswirkungen auf die Leistung haben. -% 1.21 Extensible Scheduling Class (since 6.11) -\subsection{Extensible Scheduling Class {\tiny since 6.12}} +% 1.21 Extensible Scheduling Class (seit 6.11) +\subsection{Extensible Scheduling Class {\tiny seit 6.12}} CONFIG\_SCHED\_CLASS\_EXT [=y] \textbf{[Y]}\\ Diese Option aktiviert eine neue Scheduler-Klasse sched\_ext (SCX), die es ermöglicht, dass Scheduling-Richtlinien @@ -747,7 +747,7 @@ 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. -\paragraph{Turn RCU lazy invocation off by default}{\tiny since 6.9}$~$\\ +\paragraph{Turn RCU lazy invocation off by default}{\tiny seit 6.9}$~$\\ CONFIG\_RCU\_LAZY\_DEFAULT\_OFF [=n] \textbf{[N]}\\ Erlaubt die Erstellung des Kernels mit CONFIG\_RCU\_LAZY=y, ist aber standardmäßig deaktiviert. Der Bootzeit-Parameter rcutree.enable\_rcu\_lazy=1 kann verwendet werden, um es wieder einzuschalten. @@ -938,7 +938,7 @@ Sagen Sie N, wenn Sie unsicher sind. CONFIG\_MEMCG [=y] \textbf{[Y]}\\ Ermöglicht die Kontrolle über den Speicherbedarf von Tasks in einer cgroup. \english{Provides control over the memory footprint of tasks in a cgroup.} -\paragraph{Legacy cgroup v1 memory controller}{\tiny since 6.11}$~$\\ +\paragraph{Legacy cgroup v1 memory controller}{\tiny seit 6.11}$~$\\ CONFIG\_MEMCG\_V1 [=n] \textbf{[N]}\\ Legacy cgroup v1 memory controller, der durch die cgroup v2 Implementierung veraltet ist. Der v1 ist für ältere Anwendungen gedacht, die noch nicht auf die neue cgroup v2-Schnittstelle umgestellt wurden. @@ -1062,7 +1062,7 @@ die nur innerhalb dieser Gruppen ausgeführt werden. Dies ist vor allem auf großen SMP- oder NUMA"=Systemen nützlich.\\ Sagen Sie N, wenn Sie unsicher sind. -\paragraph{Legacy cgroup v1 cpusets controller}{\tiny since 6.12}$~$\\ +\paragraph{Legacy cgroup v1 cpusets controller}{\tiny seit 6.12}$~$\\ CONFIG\_CPUSETS\_V1 [=n] \textbf{[N]}\\ Die Option v1 ist für ältere Anwendungen gedacht, die noch nicht auf die neue cgroup v2-Schnittstelle migriert wurden. Wenn Sie keine solche Anwendung haben, ist es völlig in Ordnung, wenn Sie diese Option deaktiviert lassen.\\ diff --git a/documentation/linux_configuration_03_processor_type_and_features.tex b/documentation/linux_configuration_03_processor_type_and_features.tex index 277c86d..b8c028a 100644 --- a/documentation/linux_configuration_03_processor_type_and_features.tex +++ b/documentation/linux_configuration_03_processor_type_and_features.tex @@ -21,12 +21,30 @@ möglicherweise nicht auf allen Pentium"=basierten Boards. Benutzer von Multi\-prozessor-Maschinen, die hier Y für \glqq Ja\grqq{} angeben, sollten auch \glqq Ja\grqq{} -zu \glqq Enhanced Real Time Clock Support\grqq{} (siehe unten) sagen. +zu \glqq En\-hanced Real Time Clock Support\grqq{} (siehe unten) sagen. Der \glqq Advanced Power Management\grqq{}-Code wird deaktiviert, wenn Sie hier \glqq Y\grqq{} angeben. Siehe auch $<$file:Documentation/arch/x86/i386/IO-APIC.rst$>$, $<$file:Documentation/admin-guide/lockup-watchdogs.rst$>$ und das SMP-HOWTO, verfügbar unter:\\ \url{http://www.tldp.org/docs.html\#howto}.\\ Wenn Sie nicht wissen, was Sie hier tun sollen, sagen Sie N. +\english{This enables support for systems with more than one CPU. +If you have a system with only one CPU, say N. +If you have a system with more than one CPU, say Y.\\ +If you say N here, the kernel will run on uni- and multiprocessor machines, +but will use only one CPU of a multiprocessor machine. +If you say Y here, the kernel will run on many, but not all, uniprocessor machines. +On a uniprocessor machine, the kernel will run faster if you say N here.\\ +Note that if you say Y here and choose architecture ``586'' or ``Pentium'' +under ``Processor family'', the kernel will not work on 486 architectures. +Similarly, multiprocessor kernels for the ``PPro'' architecture may not work on all Pentium based boards.\\ +People using multiprocessor machines who say Y here should also say Y to +``Enhanced Real Time Clock Support'', below. The ``Advanced Power Management'' code will be disabled +if you say Y here.\\ +See also $<$file:Documentation/arch/x86/i386/IO-APIC.rst$>$,\\ +$<$file:Documentation/admin-guide/lockup-watchdogs.rst$>$ and\\ +the SMP-HOWTO +\url{http://www.tldp.org/docs.html\#howto}.\\ +If you don't know what to do here, say N.} \note{Dies wäre nur auf kleinen Systemen mit einem Prozessorkern sinnvoll auf N zu stellen. Üblicherweise sollte das auf Y bleiben.} @@ -49,7 +67,7 @@ sind. Ohne Aktivierung dieser Option booten sie mit stark eingeschränkter Funkt \note{Sollte unterstützt werden, kann innerhalb von menuconfig gar nicht deaktiviert werden.} %3.3 Enable MSI and MSI-X delivery by posted interrupts -\subsection{Enable MSI and MSI-x delivery by posted interrupts {\tiny since 6.10}} +\subsection{Enable MSI and MSI-x delivery by posted interrupts {\tiny seit 6.10}} CONFIG\_X86\_POSTED\_MSI \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Dadurch können MSIs, die unter Interrupt-Remapping stehen, als gebuchte Interrupts an den Host-Kernel übermittelt werden. Der Unterbrechungsdurchsatz kann potenziell verbessert werden, indem CPU-Benachrichtigungen während @@ -93,8 +111,8 @@ More information about AMD QoS can be found in the AMD64 Technology Platform Qua Say N if unsure.} \note{Wir sind uns noch unsicher!} -%3.6 Flexible Return and Event Delivery, since v6.9 -\subsection{Flexible Return and Event Delivery {\tiny since 6.9}} +%3.6 Flexible Return and Event Delivery, seit v6.9 +\subsection{Flexible Return and Event Delivery {\tiny seit 6.9}} CONFIG\_X86\_FRED [=Y] \textbf{[Y]}\\ Wenn diese Funktion aktiviert ist, sollten Sie versuchen, Flexible Return and Event Delivery anstelle der alten SYSCALL/SYSENTER/IDT-Architektur für Ringübergänge und Ausnahme- bzw. Unter\-brechungs\-behandlung @@ -250,6 +268,9 @@ Der Kernel wird so verändert, dass er sich selbst modifizieren kann, wenn er un ausgeführt wird, was die Leistung gegenüber einer vollständigen Virtualisierung erheblich verbessern kann. Wenn der Kernel jedoch ohne Hypervisor ausgeführt wird, ist er theoretisch langsamer und etwas größer. +\english{This changes the kernel so it can modify itself when it is run under a hypervisor, +potentially improving performance significantly over full virtualization. +However, when run without a hypervisor the kernel is theoretically slower and slightly larger.} \subsubsection{paravirt-ops debugging} CONFIG\_PARAVIRT\_DEBUG [=n] \textbf{[N]}\\ @@ -398,6 +419,8 @@ CONFIG\_MK8 [=n] \textbf{[N]}\\ Wählen Sie diese Option für einen Prozessor der AMD Opteron- oder Athlon64 Hammer"=Fa\-mi\-lie. Er\-mög\-licht die Verwendung einiger erweiterter Anweisungen und übergibt entsprechende Optimierungsflags an den GCC. +\english{Select this for an AMD Opteron or Athlon64 Hammer-family processor. +Enables use of some extended instructions, and passes appropriate optimization flags to GCC.} \subsubsection{Intel P4 / older Netburst based Xeon} CONFIG\_MPSC [=n] \textbf{[N]}\\ @@ -406,6 +429,12 @@ die mit x86-64 kompatibel sind. Beachten Sie, dass die neuesten Xeons (Xeon 51xx auf dem Netburst-Kern basieren und diese Option nicht verwenden sollten.\\ Sie können sie anhand des Feldes cpu family in /proc/cpuinfo unterscheiden. Familie 15 ist ein älterer Xeon, Familie 6 ein neuerer. +\english{Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey Xeon CPUs with +Intel 64bit which is compatible with x86-64. +Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the Netburst core and +shouldn't use this option. +You can distinguish them using the cpu family field in /proc/cpuinfo. +Family 15 is an older Xeon, Family 6 a newer one.} %3.13.3 \subsubsection{Core 2/newer Xeon} @@ -416,6 +445,7 @@ Neuere haben 6 und ältere 15 (kein Tippfehler). \english{Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx) CPUs. You can distinguish newer from older Xeons by the CPU family in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo)} +\note{Ein moderner i7 oder i5 Intel-Prozessor wird verwendet, deshalb Y für ein Ja.} \subsubsection{Intel Atom} CONFIG\_MATOM [=n] \textbf{[N]}\\ @@ -423,10 +453,16 @@ Wählen Sie diese Option für die Intel Atom-Plattform. Intel Atom CPUs haben ei In-Order-Pipelining-Architektur und können daher von entsprechend optimiertem Code profitieren. Verwenden Sie einen aktuellen GCC mit spezieller Atom-Unterstützung, um die Vorteile dieser Option voll ausschöpfen zu können. +\english{Select this for the Intel Atom platform. +Intel Atom CPUs have an in-order pipelining architecture and thus can benefit from accordingly optimized code. +Use a recent GCC with specific Atom support in order to fully benefit from selecting this option.} \subsubsection{Generic-x86-64} CONFIG\_GENERIC\_CPU \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Allgemeine x86-64-CPU. Läuft gleich gut auf allen x86-64-CPUs. +\english{Generic x86-64 CPU.\\ +Run equally well on all x86-64 CPUs.} + %3.14 \subsection{Supported processor vendors \texorpdfstring{$\rightarrow$}{->}} CONFIG\_SELECT \colorbox{yellow!80}{[=n] \textbf{[Y]}}\\ @@ -626,21 +662,30 @@ mit Sicherheit N sagen, also nein. \subsection{Performance monitoring \texorpdfstring{$\rightarrow$}{->}} Leistungsüberwachung -%3.21 +%3.24.1 \subsubsection{Intel uncore performance events} -CONFIG\_PERF\_EVENTS\_INTEL\_UNCORE [=m] \textbf{[M]}\\ +CONFIG\_PERF\_EVENTS\_INTEL\_UNCORE \colorbox{yellow!80}{[=m] \textbf{[N]}}\\ Unterstützung für Intel-Uncore-Leistungsereignisse. Diese sind auf NehalemEX und moderneren Prozessoren verfügbar. +\english{Include support for Intel uncore performance events. +These are available on NehalemEX and more modern processors.} +\note{Das war auf [m] für Modul-Kompilat eingestellt, wir kümmern uns nicht darum und wählen N für ein Nein.} \subsubsection{Intel/AMD rapl performance events} -CONFIG\_PERF\_EVENTS\_INTEL\_RAPL [=m] \textbf{[M]}\\ +CONFIG\_PERF\_EVENTS\_INTEL\_RAPL \colorbox{yellow!80}{[=m] \textbf{[N]}}\\ Unterstützung für Intel- und AMD-RAPL-Leistungsereignisse zur Leistungsüberwachung auf modernen Prozessoren. +\english{Include support for Intel and AMD rapl performance events for power monitoring on modern processors.} +\note{Das war auf [m] für Modul-Kompilat eingestellt, wir kümmern uns nicht darum und wählen N für ein Nein.} + \subsubsection{Intel cstate performance events} -CONFIG\_PERF\_EVENTS\_INTEL\_CSTATE [=m] \textbf{[M]}\\ +CONFIG\_PERF\_EVENTS\_INTEL\_CSTATE \colorbox{yellow!80}{[=m] \textbf{[N]}}\\ Einbeziehung der Unterstützung für Intel cstate performance events für die Leistungsüberwachung auf modernen Prozessoren. +\english{Include support for Intel cstate performance events for power monitoring on modern processors.} +\note{Das war auf [m] für Modul-Kompilat eingestellt, wir kümmern uns nicht darum und wählen N für ein Nein.} + \subsubsection{AMD Processor Power Reporting Mechanism} CONFIG\_PERF\_EVENTS\_AMD\_POWER [=m] \textbf{[M]}\\ @@ -708,6 +753,7 @@ capabilities and permission from potentially active security modules.\\ The emulation restricts the functionality of the syscall to only allowing the full range I/O port access, but prevents the ability to disable interrupts from user space which would be granted if the hardware IOPL mechanism would be used.} +\note{Wir könnten diese Emulation versuchen auszuschalten, ist aber ein Sicherheitsrisiko.} %3.28 \subsection{Late microcode loading (DANGEROUS)} @@ -742,19 +788,23 @@ ausgeführt werden soll. Es handelt sich um ein Zeichengerät mit Major 203 und %3.31 \subsection{Enable 5-level page tables support} -CONFIG\_X86\_5LEVEL [=y] \textbf{[Y]}\\ +CONFIG\_X86\_5LEVEL \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ 5-Level-Paging ermöglicht den Zugriff auf einen größeren Adressraum: bis zu 128~PiB virtueller Adressraum und 4~PiB physikalischer Adressraum. Es wird von zukünftigen Intel-CPUs unterstützt werden. Ein Kernel mit aktivierter Option kann auf Rechnern gebootet werden, die 4- oder 5-Level-Paging unterstützen. Siehe Documentation/arch/x86/x86\_64/5level-paging.rst für weitere Informationen.\\ Sagen Sie N, wenn Sie unsicher sind. +\note{Wir verwenden keine so großen Maschinen, also N. 4-Level mit \qty{256}{\tebi\byte} ist momentan ausreichend.} %3.32 \subsection{Enable statistic for Change Page Attribute} -CONFIG\_X86\_CPA\_STATISTICS [=y] \textbf{[Y]}\\ +CONFIG\_X86\_CPA\_STATISTICS \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Statistiken über den Mechanismus zum Ändern von Seitenattributen offenlegen, der dabei hilft, die Wirksamkeit der Erhaltung großer und umfangreicher Seitenzuordnungen zu bestimmen, wenn Zuordnungsschutzmaßnahmen geändert werden. +\english{Expose statistics about the Change Page Attribute mechanism, which helps to determine +the effectiveness of preserving large and huge page mappings when mapping protections are changed.} +\note{Das ist ein Entwicklerwerkzeug, das wir nicht benötigen, deshalb N.} %3.33 \subsection{AMD Secure Memory Encryption (SME) support} @@ -772,7 +822,7 @@ des Systemspeichers mit der Befehlszeilenoption \texttt{mem\_encrypt=on} aktivie %3.34 \subsection{NUMA Memory Allocation and Scheduler Support} -CONFIG\_NUMA [=y] \textbf{[Y]}\\ +CONFIG\_NUMA [=y] \colorbox{yellow!80}{\textbf{[N]}}\\ Aktivieren Sie die NUMA-Unterstützung (Non-Uniform Memory Access). Der Kernel wird versuchen, den von einer CPU verwendeten Speicher dem lokalen Speicher-Controller der CPU zuzuweisen und dem Kernel mehr Kenntnis über NUMA zu geben.\\ @@ -780,6 +830,9 @@ Für 64-Bit wird dies empfohlen, wenn das System Intel Core i7 (oder höher), AMD Opteron oder EM64T NUMA ist.\\ Für 32-Bit ist dies nur erforderlich, wenn Sie einen 32-Bit-Kernel auf einer 64-Bit-NUMA-Plattform booten. Andernfalls sollten Sie N angeben. +\note{Nur erforderlich, wenn man ein System mit mehr als einem Sockel (CPUs) betreibt. +Wir setzen Laptops ein, deshalb ein N möglich. +} \subsubsection{Old style AMD Opteron NUMA detection} CONFIG\_AMD\_NUMA [=y] \textbf{[N]}\\ @@ -806,22 +859,23 @@ CONFIG\_NODES\_SHIFT [=5] \textbf{[5]}\\ Geben Sie die maximale Anzahl der auf dem Zielsystem verfügbaren NUMA-Knoten an. Erhöht den reservierten Speicherplatz für verschiedene Tabellen. -\subsubsection{Enable sysfs memory/probe interface} +\subsection{Enable sysfs memory/probe interface} CONFIG\_ARCH\_MEMORY\_PROBE [=n] \textbf{[N]}\\ Diese Option aktiviert eine sysfs-Speicher/Probe-Schnittstelle für Tests.\\ Siehe Documentation/admin-guide/mm/memory-hotplug.rst für weitere Informationen. Wenn Sie unsicher sind, wie Sie diese Frage beantworten sollen, antworten Sie mit N. -\subsubsection{Support non-standard NVDIMMs and ADR protected memory} -CONFIG\_X86\_PMEM\_LEGACY [=m] \textbf{[M]}\\ +\subsection{Support non-standard NVDIMMs and ADR protected memory} +CONFIG\_X86\_PMEM\_LEGACY \colorbox{yellow!80}{[=m] \textbf{[N]}}\\ Behandeln Sie Speicher, der mit dem nicht standardmäßigen e820-Typ von 12 markiert ist, wie er vom Intel Sandy Bridge-EP Referenz-BIOS verwendet wird, als geschützten Speicher. Der Kernel bietet diese Regionen dem \texttt{pmem}-Treiber an, so dass sie für persistenten Speicher verwendet werden können.\\ Sagen Sie Y, wenn Sie unsicher sind. +\note{Verwenden wir nicht, deshalb ein N für Nein.} -\subsubsection{Check for low memory corruption} -CONFIG\_X86\_CHECK\_BIOS\_CORRUPTION [=y] \textbf{[Y]}\\ +\subsection{Check for low memory corruption} +CONFIG\_X86\_CHECK\_BIOS\_CORRUPTION \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Regelmäßige Überprüfung auf Speicherbeschädigung im niedrigen Speicher, die vermutlich durch das BIOS verursacht wird. Auch wenn dies in der Konfiguration aktiviert ist, zur Laufzeit ist es deaktiviert. Aktivieren Sie es, indem Sie \texttt{memory\_corruption\_check=1} in der Kernel-Befehlszeile eingeben. @@ -837,8 +891,9 @@ wenn eine wiederholte BIOS-verursachte Beschädigung stets denselben Speicher be \parbox{445\unitlength}{Hinweis: Kann ausgeschaltet werden, wenn im \texttt{journalctl} niemals \glqq corrupted low memory\grqq{} erscheint.} } +\note{Wir setzen dies auf N für Nein, da auch die obengenannte Meldung nie kommt.} -\paragraph{Set the default setting of memory\_corruption\_check}$~$\\ +\subsubsection{Set the default setting of memory\_corruption\_check} CONFIG\_X86\_BOOTPARAM\_MEMORY\_CORRUPTION\_CHECK [=y] \textbf{[Y]}\\ Legt fest, ob der Standardstatus von \texttt{memory\_corruption\_check} ein- oder ausgeschaltet ist. @@ -863,13 +918,39 @@ Boot-CPU und nicht für die sekundären CPUs setzen. Das kann zu allen mögliche hier Y zu sagen.\\ Sie können sicher Y sagen, auch wenn Ihr Rechner keine MTRRs hat, Sie werden nur etwa 9 KB zu Ihrem Kernel hinzufügen. Siehe $<$file:Documentation/arch/x86/mtrr.rst$>$ für weitere Informationen. +\english{On Intel P6 family processors (Pentium Pro, Pentium II and later) the Memory Type Range Registers +(MTRRs) may be used to control processor access to memory ranges. +This is most useful if you have a video (VGA) card on a PCI or AGP bus. +Enabling write-combining allows bus write transfers to be combined into a larger transfer +before bursting over the PCI/AGP bus. +This can increase performance of image write operations 2.5 times or more. +Saying Y here creates a /proc/mtrr file which may be used to manipulate your processor's MTRRs. +Typically the X server should use this.\\ +This code has a reasonably generic interface so that similar control registers on other processors +can be easily supported as well:\\ +The Cyrix 6x86, 6x86MX and M II processors have Address Range Registers (ARRs) which provide +a similar functionality to MTRRs. +For these, the ARRs are used to emulate the MTRRs. +The AMD K6-2 (stepping 8 and above) and K6-3 processors have two MTRRs. +The Centaur C6 (WinChip) has 8 MCRs, allowing write-combining. +All of these processors are supported by this code and it makes sense to say Y here if you have one of them. +\\Saying Y here also fixes a problem with buggy SMP BIOSes which only set the MTRRs for the boot CPU +and not for the secondary CPUs. +This can lead to all sorts of problems, so it's good to say Y here.\\ +You can safely say Y even if your machine doesn't have MTRRs, you'll just add about 9 KB to your kernel.\\ +See $<$file:Documentation/arch/x86/mtrr.rst$>$ for more information.} -\paragraph{MTRR cleanup support}$~$\\ +\subsubsection{MTRR cleanup support} CONFIG\_MTRR\_SANITIZER [=y] \textbf{[Y]}\\ Umwandlung des MTRR-Layouts von kontinuierlich in diskret, damit X-Treiber Rückschreibeinträge hinzufügen können. Kann mit \texttt{disable\_mtrr\_cleanup} in der Kernel-Kommandozeile deaktiviert werden. Die größte MTRR-Eintragsgröße für einen kontinuierlichen Block kann mit \texttt{mtrr\_chunk\_size} festgelegt werden.\\ Wenn Sie unsicher sind, sagen Sie Y. +\english{Convert MTRR layout from continuous to discrete, so X drivers can add writeback entries.\\ +Can be disabled with disable\_mtrr\_cleanup on the kernel command line. +The largest mtrr entry size for a continuous block can be set with mtrr\_chunk\_size.\\ +If unsure, say Y.} +\note{Für normale Systeme Y für Ja. Nur bei einem \glqq headless server\grqq{} ein N.} \paragraph{MTRR cleanup enable value (0-1)}$~$\\ CONFIG\_MTRR\_SANITIZER [=1] \textbf{[1]}\\ @@ -880,8 +961,42 @@ CONFIG\_MTRR\_SANITIZER\_SPARE\_REG\_NR\_DEFAULT [=0] \textbf{[0]}\\ MTRR cleanup spare entries Defaulteintrag, dies kann über \texttt{mtrr\_spare\_reg\_nr=N} auf der Kernel-Be\-fehls\-zei\-le geändert werden. -\subsubsection{Indirect Branch Tracking} -CONFIG\_X86\_KERNEL\_IBT [=y] \textbf{[Y]}\\ +%3.37.4 +\subsubsection{x86 PAT support} +CONFIG\_X86\_PAT [=y] \textbf{[Y]}\\ +Verwenden Sie PAT-Attribute zur Einrichtung der Cache-Steuerung auf Seitenebene.\\ +PATs sind die modernen Äquivalente von MTRRs und sind viel flexibler als MTRRs. +Sagen Sie hier N, wenn Sie Probleme beim Booten (Boot-Absturz, Boot-Hänger, +spontane Neustarts) oder einen nicht funktionierenden Grafiktreiber feststellen.\\ +Wenn Sie unsicher sind, sagen Sie Y. +\english{Use PAT attributes to setup page level cache control.\\ +PATs are the modern equivalents of MTRRs and are much more flexible than MTRRs.\\ +Say N here if you see bootup problems (boot crash, boot hang, spontaneous reboots) +or a non-working video driver.\\ +If unsure, say Y.} +\note{Überprüfe mit \texttt{cat /proc/cpuinfo | grep pat}, ob das System PAT unterstützt.} + +%3.38 +\subsection{User Mode Instruction Prevention} +CONFIG\_X86\_UMIP [=y] \textbf{[Y]}\\ +User Mode Instruction Prevention (UMIP) ist eine Sicherheits\-funktion in einigen x86-Prozessoren. +Wenn sie aktiviert ist, wird ein allgemeiner Schutzfehler ausgegeben, wenn die Anweisungen SGDT, SLDT, +SIDT, SMSW oder STR im Benutzer\-modus ausgeführt werden. +Diese Befehle geben unnötigerweise Informationen über den Hardwarezustand preis.\\ +Die große Mehrheit der Anwendungen verwendet diese Befehle nicht. +Für die wenigen, die sie verwenden, wird in bestimmten Fällen eine Software-Emulation im geschützten und +virtuellen 8086-Modus vorgesehen. Die emulierten Ergebnisse sind Scheinergebnisse. +\english{User Mode Instruction Prevention (UMIP) is a security feature in some x86 processors. +If enabled, a general protection fault is issued if the SGDT, SLDT, SIDT, SMSW or STR instructions are +executed in user mode. +These instructions unnecessarily expose information about the hardware state.\\ +The vast majority of applications do not use these instructions. +For the very few that do, software emulation is provided in specific cases in protected and +virtual-8086 modes. Emulated results are dummy.} + +%3.39 +\subsection{Indirect Branch Tracking} +CONFIG\_X86\_KERNEL\_IBT \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Bauen Sie den Kernel mit Unterstützung für Indirect Branch Tracking auf, eine Hardware-Unterstützung, die die Integrität des Kontrollflusses an den Rändern schützt. Sie erzwingt, dass alle indirekten Aufrufe auf einer ENDBR-Anweisung landen müssen, und der Compiler wird den Code mit ihnen instrumentieren, damit dies geschieht.\\ @@ -889,15 +1004,29 @@ Zusätzlich zur Erstellung des Kernels mit IBT werden alle Funktionen, die keine um zu verhindern, dass sie jemals zu solchen werden.\\ Dies erfordert LTO wie objtool-Läufe und verlangsamt den Bau. Es reduziert jedoch die Anzahl der ENDBR-Anweisungen im Kernel-Image erheblich. +\english{Build the kernel with support for Indirect Branch Tracking, a hardware support +course-grain forward-edge Control Flow Integrity protection. +It enforces that all indirect calls must land on an ENDBR instruction, as such, +the compiler will instrument the code with them to make this happen.\\ +In addition to building the kernel with IBT, seal all functions that are not indirect call targets, +avoiding them ever becoming one.\\ +This requires LTO like objtool runs and will slow down the build. +It does significantly reduce the number of ENDBR instructions in the kernel image.} +\note{Wir können hier N wählen, hat natürlich Sicherheitsmerkmale. Compilieren geht schneller!} -\subsubsection{Memory Protection Keys} +%3.40 +\subsection{Memory Protection Keys} CONFIG\_X86\_INTEL\_MEMORY\_PROTECTION\_KEYS [=y] \textbf{[Y]}\\ Memory Protection Keys bietet einen Mechanismus zur Erzwingung seitenbasierter Schutzmaßnahmen, ohne dass die Seitentabellen geändert werden müssen, wenn eine Anwendung ihre Schutzdomänen ändert. Einzelheiten siehe Documentation/core-api/protection-keys.rst\\ Wenn Sie unsicher sind, sagen Sie Y. +\english{Memory Protection Keys provides a mechanism for enforcing page-based protections, +but without requiring modification of the page tables when an application changes protection domains.\\ +For details, see Documentation/core-api/protection-keys.rst\\ +If unsure, say y.} -\subsubsection{TSX enable mode () \texorpdfstring{$\rightarrow$}{->}} +\subsection{TSX enable mode () \texorpdfstring{$\rightarrow$}{->}} CONFIG\_X86\_INTEL\_MEMORY\_PROTECTION\_KEYS [=y] \textbf{[Y]}\\ Intels TSX-Funktion (Transactional Synchronization Extensions) ermöglicht die Optimierung von Sperrprotokollen durch Lock Elision, was zu einer spürbaren Leistungssteigerung führen kann. @@ -912,53 +1041,85 @@ eingestellt werden. Siehe Documentation/admin-guide/kernel-parameters.txt für weitere Details. Sagen Sie off, wenn Sie sich nicht sicher sind, auto, wenn TSX in Gebrauch ist, aber auf sicheren Plattformen verwendet werden sollte, oder on, wenn TSX in Gebrauch ist und der Sicherheitsaspekt von tsx nicht relevant ist. +\english{Intel's TSX (Transactional Synchronization Extensions) feature allows to optimize +locking protocols through lock elision which can lead to a noticeable performance boost.\\ +On the other hand it has been shown that TSX can be exploited to form side channel attacks (e.g. TAA) +and chances are there will be more of those attacks discovered in the future.\\ +Therefore TSX is not enabled by default (aka tsx=off). +An admin might override this decision by tsx=on the command line parameter. +Even with TSX enabled, the kernel will attempt to enable the best possible TAA mitigation setting +depending on the microcode available for the particular machine.\\ +This option allows to set the default tsx mode between tsx=on, =off and =auto. +See Documentation/admin-guide/kernel-parameters.txt for more details.\\ +Say off if not sure, auto if TSX is in use but it should be used on safe platforms or on if +TSX is in use and the security aspect of tsx is not relevant.} -\paragraph{off}$~$\\ +\subsubsection{off} CONFIG\_X86\_INTEL\_TSX\_MODE\_OFF [=n] \textbf{[N]}\\ TSX ist, wenn möglich, deaktiviert -- entspricht dem Befehlszeilenparameter \texttt{tsx=off}. -\paragraph{on}$~$\\ +\subsubsection{on} CONFIG\_X86\_INTEL\_TSX\_MODE\_ON [=n] \textbf{[N]}\\ TSX ist auf TSX-fähiger Hardware immer aktiviert -- gleichbedeutend mit dem Befehlszeilenparameter \texttt{tsx=on} -\paragraph{auto}$~$\\ +\subsubsection{auto} CONFIG\_X86\_INTEL\_TSX\_MODE\_AUTO [=y] \textbf{[Y]}\\ TSX wird auf TSX-fähiger Hardware aktiviert, die als sicher gegen Seitenkanalangriffe gilt -- gleichbedeutend mit dem Befehlszeilenparameter \texttt{tsx=auto}. -\subsubsection{Software Guard eXtensions (SGX)} -CONFIG\_X86\_SGX [=y] \textbf{[Y]}\\ +%3.42 +\subsection{Software Guard eXtensions (SGX)} +CONFIG\_X86\_SGX \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Intel(R) Software Guard eXtensions (SGX) ist eine Reihe von CPU-Befehlen, die von Anwendungen verwendet werden können, um private Code- und Datenbereiche, die so genannten Enklaven, zu reservieren. Auf den privaten Speicher einer Enklave kann nur von Code zugegriffen werden, der innerhalb der Enklave läuft. Zugriffe von außerhalb der Enklave, einschließlich anderer Enklaven, werden von der Hardware nicht zugelassen.\\ Wenn Sie unsicher sind, sagen Sie N. +\english{Intel(R) Software Guard eXtensions (SGX) is a set of CPU instructions that can be used +by applications to set aside private regions of code and data, referred to as enclaves. +An enclave's private memory can only be accessed by code running within the enclave. +Accesses from outside the enclave, including other enclaves, are disallowed by hardware.\\ +If unsure, say N.} +\note{N,\\ +Y, wenn Sie eine echte Verwendung dafür haben, denn die tatsächliche Sicherheit dieser Funktion ist umstritten.} -\subsubsection{X86 userspace shadow stack} +\subsection{X86 userspace shadow stack} CONFIG\_X86\_USER\_SHADOW\_STACK [=y] \textbf{[Y]}\\ Der Schattenstapelschutz ist eine Hardwarefunktion, die eine Beschädigung der Rücksprungadresse einer Funktion erkennt. Dies hilft, ROP-Angriffe abzuschwächen. Anwendungen müssen aktiviert sein, um sie zu nutzen, und der -alte Userspace erhält den Schutz nicht "umsonst". CPUs, die Shadow Stacks unterstützen, wurden erstmals im +alte Userspace erhält den Schutz nicht \glqq umsonst\grqq{}. CPUs, die Shadow Stacks unterstützen, wurden erstmals im Jahr~2020 vorgestellt. Weitere Informationen finden Sie unter Documentation/arch/x86/shstk.rst.\\ Wenn Sie unsicher sind, sagen Sie N. +\note{Y, ein Ja aus Sicherheitsgründen} -\subsubsection{EFI runtime service support} +\subsection{EFI runtime service support} CONFIG\_EFI [=y] \textbf{[Y]}\\ Dies ermöglicht es dem Kernel, verfügbare EFI-Laufzeitdienste (wie die EFI-Variablendienste) zu nutzen.\\ Diese Option ist nur auf Systemen mit EFI-Firmware sinnvoll. Außerdem sollten Sie den neuesten ELILO-Lader verwenden, der unter \url{http://elilo.sourceforge.net} verfügbar ist, um die Vorteile der EFI-Laufzeitdienste zu nutzen. Aber auch mit dieser Option sollte der resultierende Kernel weiterhin auf bestehenden Nicht-EFI-Plattformen booten. +\english{This enables the kernel to use EFI runtime services that are available +(such as the EFI variable services).\\ +This option is only useful on systems that have EFI firmware. +In addition, you should use the latest ELILO loader available at $<$http://elilo.sourceforge.net$>$ +in order to take advantage of EFI runtime services. +However, even with this option, the resultant kernel should continue to boot on existing non-EFI platforms.} +\note{Um von EFI booten zu können, dürfen wir dies nicht deaktivieren.} -\paragraph{EFI stub support}$~$\\ +\subsubsection{EFI stub support} CONFIG\_EFI\_STUB [=y] \textbf{[Y]}\\ Mit dieser Kernel-Funktion kann ein bzImage direkt von der EFI-Firmware geladen werden, ohne dass ein Bootloader erforderlich ist.\\ Weitere Informationen finden Sie unter Documentation/admin-guide/efi-stub.rst. +\english{This kernel feature allows a bzImage to be loaded directly by EFI firmware +without the use of a bootloader.\\ +See \texttt{Documentation/admin-guide/efi-stub.rst} for more information.} +\note{Y, nur, wenn Sie den Kernel direkt als EFI-Binary booten und nicht mit grub} -\subparagraph{EFI handover protocol (DEPRECATED)}$~$\\ -CONFIG\_EFI\_STUB [=y] \textbf{[Y]}\\ +\paragraph{EFI handover protocol (DEPRECATED)}$~$\\ +CONFIG\_EFI\_STUB \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ (EFI-Übergabeprotokoll (VERALTET))\\ Wählen Sie dies, um Unterstützung für das veraltete EFI-Handover-Protokoll zu erhalten, das alternative Einstiegspunkte in den EFI-Stub definiert. Dies ist eine Praxis, die keine Grundlage in der UEFI-Spezifikation @@ -967,49 +1128,96 @@ und initrd erfordert, und wo im Speicher diese Assets geladen werden können.\\ Im Zweifelsfall sagen Sie Y. Auch wenn die entsprechende Unterstützung im Upstream-GRUB oder anderen Bootloadern nicht vorhanden ist, bauen die meisten Distros GRUB mit zahlreichen Downstream-Patches und können sich daher auf das Handover-Protokoll verlassen. +\english{Select this in order to include support for the deprecated EFI handover protocol, +which defines alternative entry points into the EFI stub. +This is a practice that has no basis in the UEFI specification, and requires a priori knowledge +on the part of the bootloader about Linux/x86 specific ways of passing the command line and initrd, +and where in memory those assets may be loaded.\\ +If in doubt, say Y. Even though the corresponding support is not present in upstream GRUB or +other bootloaders, most distros build GRUB with numerous downstream patches applied, +and may rely on the handover protocol as as result.} +\note{Ein Versuch wäre es wert, das \glqq Handover-Protokoll\grqq{} zu deaktivieren, da es obsolet wurde.} -\subparagraph{EFI mixed-mode support}$~$\\ -CONFIG\_EFI\_MIXED [=y] \textbf{[Y]}\\ +\paragraph{EFI mixed-mode support}$~$\\ +CONFIG\_EFI\_MIXED \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ Wenn Sie diese Funktion aktivieren, kann ein 64-Bit-Kernel auf einer 32-Bit-Firmware gebootet werden, vorausgesetzt, Ihre CPU unterstützt den 64-Bit-Modus.\\ Beachten Sie, dass es nicht möglich ist, einen Mixed-Mode-fähigen Kernel über den EFI-Boot-Stub zu booten -- es muss ein Bootloader verwendet werden, der das EFI-Handover-Protokoll unterstützt.\\ Wenn Sie unsicher sind, sagen Sie N. +\english{Enabling this feature allows a 64-bit kernel to be booted on a 32-bit firmware, +provided that your CPU supports 64-bit mode.\\ +Note that it is not possible to boot a mixed-mode enabled kernel via the EFI boot stub -- a +bootloader that supports the EFI handover protocol must be used.\\ +If unsure, say N.} +\note{Nur auf alter Apple-Hardware relevant, deshalb N.} -\paragraph{Enable EFI fake memory map}$~$\\ +{\color{gray} +\subsubsection*{Enable EFI fake memory map \tiny{abgeschafft seit 6.11}} CONFIG\_EFI\_FAKE\_MEMMAP [=n] \textbf{[N]}\\ Wenn Sie hier Y angeben, wird die Boot-Option \texttt{efi\_fake\_mem} aktiviert. Durch Angabe dieses Parameters können Sie einem bestimmten Speicherbereich beliebige Attribute hinzufügen, indem Sie die ursprüngliche (von der Firmware bereitgestellte) EFI-Memmap aktualisieren. Dies ist nützlich für das Debugging von EFI-Memmap-bezogenen Funktionen, z.\,B. Address Range Mirroring. +\english{Saying Y here will enable ``efi\_fake\_mem'' boot option. By specifying this parameter, +you can add arbitrary attribute to specific memory range by updating original (firmware provided) EFI memmap. +This is useful for debugging of EFI memmap related feature, e.g. Address Range Mirroring feature.} +} -\subsubsection{Timer frequency () \texorpdfstring{$\rightarrow$}{->}} +\subsubsection{Export EFI runtime maps to sysfs {\tiny seit 6.2}} +CONFIG\_EFI\_RUNTIME\_MAP [=y] \textbf{[Y]}\\ +Exportieren Sie EFI-Laufzeitspeicherbereiche nach \texttt{/sys/firmware/efi/runtime-map}. +Diese Speichermap wird vom 2. Kernel benötigt, um virtuelle EFI-Mappings nach kexec einzurichten, +aber sie kann auch für Debugging-Zwecke verwendet werden.\\ +Siehe auch \texttt{Documentation/ABI/testing/sysfs-firmware-efi-runtime-map}. +\english{Export EFI runtime memory regions to \texttt{/sys/firmware/efi/runtime-map}. +That memory map is required by the 2nd kernel to set up EFI virtual mappings after kexec, +but can also be used for debugging purposes.\\ +See also \texttt{Documentation/ABI/testing/sysfs-firmware-efi-runtime-map}.} +\note{Kann nicht deaktiviert werden, wenn kexec und EFI runtime service eingeschaltet ist.} + +\subsection{Timer frequency () \texorpdfstring{$\rightarrow$}{->}} Ermöglicht die Konfiguration der Timer-Frequenz. Es ist üblich, den Timer-Interrupt mit 1000 Hz laufen zu lassen, aber 100 Hz kann für Server und NUMA-Systeme vorteilhafter sein, die keine schnelle Reaktion für die Benutzerinteraktion benötigen und bei denen es zu Buskonflikten und Cacheline-Bounches als Folge von Timer-Interrupts kommen kann. Beachten Sie, dass der Timer-Interrupt in einer SMP-Umgebung auf jedem Prozessor auftritt, was zu NR\_CPUS * HZ Anzahl der Timer-Interrupts pro Sekunde führt. +\note{\qty{100}{\hertz} für Server, \qty{300}{\hertz} für Desktops, +\qty{1000}{\hertz} für Anforderungen mit niedrigen Latenzzeiten} -\paragraph{100~Hz}$~$\\ +\subsubsection{100~Hz} CONFIG\_HZ\_100 [=n] \textbf{[N]}\\ -100~Hz ist eine typische Wahl für Server, SMP- und NUMA-Systeme mit vielen Prozessoren, die eine +\qty{100}{\hertz} ist eine typische Wahl für Server, SMP- und NUMA-Systeme mit vielen Prozessoren, die eine geringere Leistung aufweisen können, wenn zu viele Timer-Interrupts auftreten. -\paragraph{250~Hz}$~$\\ +\english{100~Hz is a typical choice for servers, SMP and NUMA systems with lots of processors +that may show reduced performance if too many timer interrupts are occurring.} + +\subsubsection{250~Hz} CONFIG\_HZ\_250 [=n] \textbf{[N]}\\ -250~Hz ist ein guter Kompromiss, der eine gute Serverleistung ermöglicht und auch auf SMP- und +\qty{250}{\hertz} ist ein guter Kompromiss, der eine gute Serverleistung ermöglicht und auch auf SMP- und NUMA-Systemen eine gute interaktive Reaktionsfähigkeit zeigt. Wenn Sie NTSC-Video oder Multimedia verwenden, wählen Sie stattdessen 300~Hz. -\paragraph{300~Hz}$~$\\ +\english{250~Hz is a good compromise choice allowing server performance while also showing +good interactive responsiveness even on SMP and NUMA systems. +If you are going to be using NTSC video or multimedia, selected 300Hz instead.} + +\subsubsection{300~Hz} CONFIG\_HZ\_300 [=y] \textbf{[Y]}\\ -300~Hz ist ein guter Kompromiss, der eine gute Serverleistung und gleichzeitig eine gute interaktive +\qty{300}{\hertz} ist ein guter Kompromiss, der eine gute Serverleistung und gleichzeitig eine gute interaktive Reaktionsfähigkeit selbst auf SMP- und NUMA-Systemen ermöglicht und sowohl bei PAL- als auch bei NTSC-Bildraten für Video- und Multimedia-Arbeiten genau eingehalten wird. -\paragraph{1000~Hz}$~$\\ -CONFIG\_HZ\_1000 [=n] \textbf{[N]}\\ -1000~Hz ist die bevorzugte Wahl für Desktop-Systeme und andere Systeme, die schnelle interaktive -Reaktionen auf Ereignisse erfordern. +\english{300~Hz is a good compromise choice allowing server performance while also showing +good interactive responsiveness even on SMP and NUMA systems and exactly dividing by both PAL and +NTSC frame rates for video and multimedia work.} -\subsubsection{Physical address where the kernel is loaded} +\subsubsection{1000~Hz} +CONFIG\_HZ\_1000 [=n] \textbf{[N]}\\ +\qty{1000}{\hertz} ist die bevorzugte Wahl für Desktop-Systeme und andere Systeme, die schnelle interaktive +Reaktionen auf Ereignisse erfordern. +\english{1000~Hz is the preferred choice for desktop systems and other systems requiring +fast interactive responses to events.} + +\subsection{Physical address where the kernel is loaded} CONFIG\_PHYSICAL\_START [=0x1000000] \textbf{[0x1000000]}\\ Dies gibt die physikalische Adresse an, unter der der Kernel geladen wird. Wenn der Kernel nicht verschiebbar ist (CONFIG\_RELOCATABLE=n), dekomprimiert sich bzImage an die oben genannte physikalische Adresse und wird von dort @@ -1031,18 +1239,50 @@ erstellen muss. Derselbe Kernel kann als Produktionskernel und als Erfassungsker Option sollte verschwinden, nachdem die Unterstützung von relocatable bzImage eingeführt wurde. Sie ist aber noch vorhanden, weil es Benutzer gibt, die weiterhin vmlinux für die Dump-Erfassung verwenden. Diese Option sollte im Laufe der Zeit verschwinden. Ändern Sie diese Option nicht, wenn Sie nicht wissen, was Sie tun. +\english{This gives the physical address where the kernel is loaded.\\ +If the kernel is not relocatable (CONFIG\_RELOCATABLE=n) then bzImage will decompress itself +to above physical address and run from there. +Otherwise, bzImage will run from the address where it has been loaded by the boot loader. +The only exception is if it is loaded below the above physical address, in which case +it will relocate itself there.\\ +In normal kdump cases one does not have to set/change this option as now bzImage can be compiled +as a completely relocatable image (CONFIG\_RELOCATABLE=y) and be used to load and run from a different address. +This option is mainly useful for the folks who don't want to use a bzImage for capturing the crash dump +and want to use a vmlinux instead. +vmlinux is not relocatable hence a kernel needs to be specifically compiled to run from a specific +memory area (normally a reserved region) and this option comes handy.\\ +So if you are using bzImage for capturing the crash dump, leave the value here unchanged to 0x1000000 and +set CONFIG\_RELOCATABLE=y. +Otherwise if you plan to use vmlinux for capturing the crash dump change this value to start of the +reserved region. In other words, it can be set based on the ``X'' value as specified in the +``crashkernel=YM\@XM'' command line boot parameter passed to the panic-ed kernel. +Please take a look at Documentation/admin-guide/kdump/kdump.rst for more details about crash dumps.\\ +Usage of bzImage for capturing the crash dump is recommended as one does not have to build two kernels. +Same kernel can be used as production kernel and capture kernel. +Above option should have gone away after relocatable bzImage support is introduced. +But it is present because there are users out there who continue to use vmlinux for dump capture. +This option should go away down the line.\\ +Don't change this unless you know what you are doing.} -\subsubsection{Build a relocatable kernel} +\subsection{Build a relocatable kernel} CONFIG\_RELOCATABLE [=y] \textbf{[Y]}\\ Dadurch wird ein Kernel-Image erstellt, das die Informationen über den Standortwechsel beibehält, so dass es an -einem anderen Ort als den standardmäßigen 1~MB geladen werden kann. -Die Verschiebungen machen das Kernel-Binary etwa 10~\% größer, werden aber zur Laufzeit verworfen. +einem anderen Ort als den standardmäßigen \qty{1}{\mega\byte} geladen werden kann. +Die Verschiebungen machen das Kernel-Binary etwa \qty{10}{\percent} größer, +werden aber zur Laufzeit verworfen. Eine Anwendung ist der kexec on panic-Fall, bei dem der Wiederherstellungs-Kernel an einer anderen physikalischen Adresse liegen muss als der primäre Kernel. Anmerkung: Wenn CONFIG\_RELOCATABLE=y ist, dann läuft der Kernel von der Adresse aus, an der er geladen wurde, und von der zur Kompilierzeit physische Adresse (CONFIG\_PHYSICAL\_START) als Mindeststandort verwendet. +\english{This builds a kernel image that retains relocation information so it can be loaded +someplace besides the default 1MB.\\ +The relocations tend to make the kernel binary about 10\% larger, but are discarded at runtime.\\ +One use is for the kexec on panic case where the recovery kernel must live at a different physical address +than the primary kernel.\\ +Note: If CONFIG\_RELOCATABLE=y, then the kernel runs from the address it has been loaded at and +the compile time physical address (CONFIG\_PHYSICAL\_START) is used as the minimum location.} -\paragraph{Randomize the address of the kernel image (KASLR)}$~$\\ +\subsubsection{Randomize the address of the kernel image (KASLR)} CONFIG\_RANDOMIZE\_BASE [=y] \textbf{[Y]}\\ Zur Unterstützung der Kernel Address Space Layout Randomization (KASLR) werden die physische Adresse, an der das Kernel-Image dekomprimiert wird, und @@ -1053,7 +1293,7 @@ Bei 64-Bit werden die physische und die virtuelle Adresse des Kernels getrennt r Die physische Adresse liegt irgendwo zwischen 16~MB und dem Anfang des physischen Speichers (bis zu 64~TB). Die virtuelle Adresse wird von 16~MB bis zu 1~GB randomisiert (9 Bits Entropie). -Beachten Sie, dass dadurch auchec der für Kernel-Module verfügbare Speicherplatz +Beachten Sie, dass dadurch auch der für Kernel-Module verfügbare Speicherplatz von \qty{1.5}{\giga\byte} auf \qty{1}{\giga\byte} reduziert wird. Bei 32-Bit werden die physischen und virtuellen Adressen des Kernels zusammen randomisiert. Sie werden von 16~MB bis zu 512~MB randomisiert (8 Bits Entropie).\\ @@ -1066,8 +1306,26 @@ Kernel mit 2~GB-Adressierung aufgebaut ist und dass PHYSICAL\_ALIGN mindestens Infolgedessen sind theoretisch nur 10 Bits Entropie möglich, aber die Implementierungen sind aufgrund des Speicherlayouts noch weiter eingeschränkt.\\ Wenn Sie unsicher sind, sagen Sie Y. +\english{In support of Kernel Address Space Layout Randomization (KASLR), this randomizes +the physical address at which the kernel image is decompressed and the virtual address where +the kernel image is mapped, as a security feature that deters exploit attempts relying on knowledge +of the location of kernel code internals.\\ +On 64-bit, the kernel physical and virtual addresses are randomized separately. +The physical address will be anywhere between 16MB and the top of physical memory (up to 64TB). +The virtual address will be randomized from 16MB up to 1GB (9 bits of entropy). +Note that this also reduces the memory space available to kernel modules from 1.5GB to 1GB.\\ +On 32-bit, the kernel physical and virtual addresses are randomized together. +They will be randomized from 16MB up to 512MB (8 bits of entropy).\\ +Entropy is generated using the RDRAND instruction if it is supported. +If RDTSC is supported, its value is mixed into the entropy pool as well. +If neither RDRAND nor RDTSC are supported, then entropy is read from the i8254 timer. +The usable entropy is limited by the kernel being built using 2GB addressing, and that PHYSICAL\_ALIGN +must be at a minimum of 2MB. As a result, only 10 bits of entropy are theoretically possible, +but the implementations are further limited due to memory layouts.\\ +If unsure, say Y.} -\subsubsection{Alignment value to which kernel should be aligned} +%3.48 +\subsection{Alignment value to which kernel should be aligned} CONFIG\_PHYSICAL\_ALIGN [=0x200000] \textbf{[0x200000]}\\ Dieser Wert legt die Ausrichtungsbeschränkungen für die physikalische Adresse fest, von der der Kernel geladen und ausgeführt wird. Der Kernel wird für eine Adresse kompiliert, die den obigen Ausrichtungsbeschränkungen entspricht. @@ -1081,22 +1339,55 @@ Ausrichtungsbeschränkungen. Das Endergebnis ist also, dass der Kernel von einer die die oben genannten Ausrichtungsbeschränkungen erfüllt. Bei 32-Bit muss dieser Wert ein Vielfaches von 0x2000 sein. Bei 64-Bit muss dieser Wert ein Vielfaches von 0x200000 sein.\\ Ändern Sie dies nicht, wenn Sie nicht wissen, was Sie tun. +\english{This value puts the alignment restrictions on physical address where kernel is loaded and run from. +Kernel is compiled for an address which meets above alignment restriction.\\ +If bootloader loads the kernel at a non-aligned address and CONFIG\_RELOCATABLE is set, kernel will move +itself to nearest address aligned to above value and run from there.\\ +If bootloader loads the kernel at a non-aligned address and CONFIG\_RELOCATABLE is not set, +kernel will ignore the run time load address and decompress itself to the address it has been compiled +for and run from there. The address for which kernel is compiled already meets above alignment restrictions. +Hence the end result is that kernel runs from a physical address meeting above alignment restrictions.\\ +On 32-bit this value must be a multiple of 0x2000. On 64-bit this value must be a multiple of 0x200000.\\ +Don't change this unless you know what you are doing.} -\subsubsection{Randomize the kernel memory sections} +\subsection{Randomize the kernel memory sections} CONFIG\_RANDOMIZE\_MEMORY [=y] \textbf{[Y]}\\ Randomisiert die virtuelle Basisadresse von Kernel-Speicherabschnitten (physische Speicherzuordnung, vmalloc \& vmemmap). Dieses Sicherheitsmerkmal macht Exploits, die sich auf vorhersehbare Speicherplätze verlassen, weniger zuverlässig. Die Reihenfolge der Zuweisungen bleibt unverändert. Entropie wird auf die gleiche Weise wie bei RANDOMIZE\_BASE erzeugt. Aktuelle Implementierung in der optimalen Konfiguration haben im Durchschnitt 30.000 verschiedene mögliche virtuelle Adressen für jeden Speicherabschnitt.\\ Wenn Sie unsicher sind, sagen Sie Y. +\english{Randomizes the base virtual address of kernel memory sections +(physical memory mapping, vmalloc \& vmemmap). +This security feature makes exploits relying on predictable memory locations less reliable.\\ +The order of allocations remains unchanged. Entropy is generated in the same way as RANDOMIZE\_BASE. +Current implementation in the optimal configuration have in average 30,000 different possible virtual +addresses for each memory section.\\ +If unsure, say Y.} -\subsubsection{Linear Address Masking support} +{\color{gray} +\subsubsection*{Linear Address Masking support} CONFIG\_ADDRESS\_MASKING [=y] \textbf{[Y]}\\ Linear Address Masking (LAM) ändert die Prüfung, die auf lineare 64-Bit-Adressen angewandt wird, und ermöglicht der Software die nicht übersetzten Adressbits für Metadaten zu verwenden.\\ Diese Fähigkeit kann für die effiziente Implementierung von Adress-Sanitizern (ASAN) und für Optimierungen in JITs genutzt werden. +} -\subsubsection{Disable the 32-bit vDSO (needed for glibc 2.3.3)} +%3.50 +\subsection{Physical memory mapping padding} +CONFIG\_RANDOMIZE\_MEMORY\_PHYSICAL\_PADDING [=0xa] \textbf{[0xA]}\\ +Definieren Sie die Auffüllung in Terabytes, die während der Kernel-Speicherrandomisierung zur +vorhandenen physischen Speichergröße hinzugefügt wird. +Dies ist nützlich für die Unterstützung von Speicher-Hotplug, verringert aber die für die +Adress-Randomisierung verfügbare Entropie.\\ +Wenn Sie unsicher sind, belassen Sie es beim Standardwert. +\english{Define the padding in terabytes added to the existing physical +memory size during kernel memory randomization. +It is useful for memory hotplug support but reduces the entropy available for address randomization.\\ +If unsure, leave at the default value.} + +%3.51 +\subsection{Disable the 32-bit vDSO (needed for glibc 2.3.3)} CONFIG\_COMPAT\_VDSO [=n] \textbf{[N]}\\ Bestimmte fehlerhafte Versionen der glibc stürzen ab, wenn sie mit einem 32-Bit vDSO konfrontiert werden, das nicht auf die in der Segmenttabelle angegebene Adresse abgebildet ist. @@ -1111,8 +1402,18 @@ Wenn Sie hier Y sagen, wird der Standardwert der Bootoption vdso32 von 1 auf 0 g 32-Bit vDSO vollständig deaktiviert wird. Dies umgeht zwar den Glibc-Bug, beeinträchtigt aber die Leistung.\\ Wenn Sie unsicher sind, sagen Sie N: Wenn Sie Ihren eigenen Kernel kompilieren, ist es unwahrscheinlich, dass Sie eine fehlerhafte Version der glibc verwenden. +\english{Certain buggy versions of glibc will crash if they are presented with a 32-bit vDSO that +is not mapped at the address indicated in its segment table.\\ +The bug was introduced by f866314b89d56845f55e6f365e18b31ec978ec3a and fixed\\ +by 3b3ddb4f7db98ec9e912ccdf54d35df4aa30e04a and 49ad572a70b8aeb91e57483a11dd1b77e31c4468. +Glibc 2.3.3 is the only released version with the bug, but OpenSUSE~9 contains a buggy ``glibc 2.3.2''.\\ +The symptom of the bug is that everything crashes on startup, saying: +dl\_main:\\Assertion \texttt{(void *) ph$->$p\_vaddr == \_rtld\_local.\_dl\_sysinfo\_dso} failed!\\ +Saying Y here changes the default value of the vdso32 boot option from 1 to 0, which turns off +the 32-bit vDSO entirely. This works around the glibc bug but hurts performance.\\ +If unsure, say N: if you are compiling your own kernel, you are unlikely to be using a buggy version of glibc.} -\subsubsection{vsyscall table for legacy applications () \texorpdfstring{$\rightarrow$}{->}} +\subsection{vsyscall table for legacy applications () \texorpdfstring{$\rightarrow$}{->}} Legacy-Benutzercode, der nicht weiß, wie er den vDSO finden kann, erwartet, dass er drei Syscalls ausgeben kann, indem er feste Adressen im Kernel-Bereich aufruft. Da dieser Ort nicht mit ASLR randomisiert wird, kann er dazu verwendet werden, die Ausnutzung von Sicherheitslücken @@ -1122,22 +1423,39 @@ Diese Einstellung kann zur Boot-Zeit über den Kernel-Befehlszeilenparameter Der Emulationsmodus ist veraltet und kann nur noch über die Kernel-Befehlszeile aktiviert werden. Auf einem System mit ausreichend aktueller glibc (2.14 oder neuer) und ohne statische Binärdateien können Sie \glqq None\grqq{} ohne Leistungseinbußen verwenden um die Sicherheit zu verbessern.\\ -Wenn Sie unsicher sind, wählen Sie \glqq Nur Ausführung emulieren\glqq{}. +Wenn Sie unsicher sind, wählen Sie \glqq Nur Ausführung emulieren\grqq{}. +\english{Legacy user code that does not know how to find the vDSO expects to be able to issue +three syscalls by calling fixed addresses in kernel space. +Since this location is not randomized with ASLR, it can be used to assist security vulnerability exploitation.\\ +This setting can be changed at boot time via the kernel command line parameter +vsyscall=[emulate|xonly|none]. +Emulate mode is deprecated and can only be enabled using the kernel command line.\\ +On a system with recent enough glibc (2.14 or newer) and no static binaries, you can say None +without a performance penalty to improve security.\\ +If unsure, select ``Emulate execution only''.} -\paragraph{Emulate execution only}$~$\\ +\subsubsection{Emulate execution only} CONFIG\_LEGACY\_VSYSCALL\_XONLY [=y] \textbf{[Y]}\\ Der Kernel fängt und emuliert Aufrufe in die feste vsyscall-Adresszuordnung und lässt keine Lesezugriffe zu. Diese Konfiguration wird empfohlen, wenn der Userspace den Legacy-Vsyscall-Bereich verwenden könnte, aber keine Unterstützung für die binäre Instrumentierung von Legacy-Code benötigt wird. Sie entschärft bestimmte Verwendungen des vsyscall-Bereichs als Puffer zur Umgehung von ASLR. +\english{The kernel traps and emulates calls into the fixed vsyscall address mapping and does not allow reads. +This configuration is recommended when userspace might use the legacy vsyscall area +but support for legacy binary instrumentation of legacy code is not needed. +It mitigates certain uses of the vsyscall area as an ASLR-bypassing buffer.} -\paragraph{None}$~$\\ +\subsubsection{None} CONFIG\_LEGACY\_VSYSCALL\_NONE [=n] \textbf{[N]}\\ Es wird überhaupt keine vsyscall-Zu\-ordnung geben. Dies eliminiert jegliches Risiko einer ASLR-Um\-ge\-hung aufgrund der festen vsyscall-Adressen-Zuordnung. Versuche, die vsyscalls zu verwenden, werden an dmesg gemeldet, so dass entweder alte oder bösartige Userspace-Programme identifiziert werden können. +\english{There will be no vsyscall mapping at all. +This will eliminate any risk of ASLR bypass due to the vsyscall fixed address mapping. +Attempts to use the vsyscalls will be reported to dmesg, so that either old or +malicious userspace programs can be identified.} -\subsubsection{Built-in kernel command line} +\subsection{Built-in kernel command line} CONFIG\_CMDLINE\_BOOL [=n] \textbf{[N]}\\ Ermöglicht die Angabe von Boot-Argumenten für den Kernel zur Erstellungszeit. Auf einigen Systemen (z.\,B. eingebetteten [embedded]) ist es notwendig oder praktisch, einige oder alle Kernel-Boot-Argumente mit @@ -1145,8 +1463,37 @@ dem Kernel selbst bereitzustellen (d.\,h. sich nicht darauf zu verlassen, dass d Um Kommandozeilenargumente in den Kernel zu kompilieren, setzen Sie diese Option auf Y und geben Sie dann die Boot-Argumente in CONFIG\_CMDLINE ein. Bei Systemen mit voll funktionsfähigen Bootloadern (d.\,h. nicht eingebetteten) sollte diese Option auf N gesetzt bleiben. +\english{Allow for specifying boot arguments to the kernel at build time. +On some systems (e.g. embedded ones), it is necessary or convenient to provide some or all of the +kernel boot arguments with the kernel itself (that is, to not rely on the boot loader to provide them.)\\ +To compile command line arguments into the kernel, set this option to 'Y', then fill in the +boot arguments in CONFIG\_CMDLINE.\\ +Systems with fully functional boot loaders (i.e. non-embedded) should leave this option set to 'N'.} -\subsubsection{Enforce strict size checking for sigaltstack} +%3.54 +\subsection{Enable the LDT (local descriptor table)} +CONFIG\_MODIFY\_LDT\_SYSCALL \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ +Linux kann es Benutzerprogrammen erlauben, mit dem Systemaufruf modify\_ldt(2) +eine prozessspezifische x86 Local Descriptor Table (LDT) zu installieren. +Dies ist erforderlich, um 16-Bit- oder segmentierten Code wie DOSEMU oder einige Wine-Programme auszuführen. +Sie wird auch von einigen sehr alten Threading-Bibliotheken verwendet.\\ +Das Aktivieren dieser Funktion fügt eine kleine Menge an Overhead für Kontextwechsel hinzu und vergrößert die Angriffsfläche für den Kernel auf niedriger Ebene. +Durch die Deaktivierung wird der Systemaufruf modify\_ldt(2) entfernt.\\ +Hier \glqq N\grqq{} zu sagen, kann für eingebettete oder Server-Kernel sinnvoll sein. +\english{Linux can allow user programs to install a per-process x86 Local Descriptor Table (LDT) +using the modify\_ldt(2) system call. +This is required to run 16-bit or segmented code such as DOSEMU or some Wine programs. +It is also used by some very old threading libraries.\\ +Enabling this feature adds a small amount of overhead to context switches and increases +the low-level kernel attack surface. +Disabling it removes the modify\_ldt(2) system call.\\ +Saying 'N' here may make sense for embedded or server kernels.} +\note{Sie können diese Option getrost ausschließen, wenn Sie ein einfacher WINE-Benutzer sind und +die meisten Ihrer Anwendungen funktionieren, ohne dass Sie etwas am Kernel ändern müssen. +Aktivieren Sie diese Option nur, wenn Sie über ein WINE-Programm gestolpert sind, das sie benötigt.} + +%3.55 +\subsection{Enforce strict size checking for sigaltstack} CONFIG\_STRICT\_SIGALTSTACK\_SIZE [=n] \textbf{[N]}\\ Aus historischen Gründen ist MINSIGSTKSZ eine Konstante, die mit der AVX512-Unterstützung bereits zu klein wurde. Fügen Sie einen Mechanismus hinzu, um die strenge Überprüfung der Sigaltstack-Größe gegen die tatsächliche Größe @@ -1155,10 +1502,31 @@ Kernel-Kommandozeilenoption \texttt{strict\_sas\_size} unabhängig von diesem Ko Das Aktivieren dieser Option könnte bestehende Anwendungen zerstören, die einen zu kleinen Sigaltstack zuweisen, aber \glq funktionieren\grq{}, weil sie nie ein Signal geliefert bekommen.\\ Sagen Sie N, wenn Sie diese Prüfung nicht wirklich erzwingen wollen. +\english{For historical reasons MINSIGSTKSZ is a constant which became already too small +with AVX512 support. Add a mechanism to enforce strict checking of the sigaltstack size against the +real size of the FPU frame. +This option enables the check by default. +It can also be controlled via the kernel command line option \texttt{strict\_sas\_size} +independent of this config switch. +Enabling it might break existing applications which allocate a too small sigaltstack but +\texttt{work} because they never get a signal delivered.\\ +Say 'N' unless you want to really enforce this check.} -\subsubsection{Kernel Live Patching} + +%3.56 +\subsection{Split Lock Detect and Bus Lock Detect support {\tiny seit 6.13}} +CONFIG\_X86\_BUS\_LOCK\_DETECT \colorbox{yellow!80}{[=y] \textbf{[N]}}\\ +Aktivieren der Funktionen Split Lock Detect und Bus Lock Detect.\\ +Siehe $<$file:Documentation/arch/x86/buslock.rst$>$ für weitere Informationen. +\english{Enable Split Lock Detect and Bus Lock Detect functionalities.\\ +See $<$file:Documentation/arch/x86/buslock.rst$>$ for more information.} +\note{Testweise schalten wir das vorerst ab.} + +{\color{gray} +\subsection*{Kernel Live Patching} CONFIG\_LIVEPATCH [=n] \textbf{[N]}\\ Geben Sie hier Y an, wenn Sie Kernel-Live-Patching unterstützen wollen. Diese Option hat keine Auswirkungen auf die Laufzeit, bis ein Kernel-\glqq Patch\grqq{}-Modul die von dieser Option bereitgestellte Schnittstelle verwendet, um einen Patch zu registrieren, was dazu führt, dass Aufrufe der gepatchten Funktionen auf den neuen Funktionscode im Patch-Modul umgeleitet werden. +} diff --git a/documentation/linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities.tex b/documentation/linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities.tex index 85c92bb..daa864a 100644 --- a/documentation/linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities.tex +++ b/documentation/linux_configuration_04_mitigations_for_speculative_execution_vulnerabilities.tex @@ -1,31 +1,52 @@ - +%6.13 \section{Mitigations for speculative execution vulnerabilities \texorpdfstring{$\rightarrow$}{->}} CONFIG\_SPECULATION\_MITIGATIONS [=y] \textbf{[Y]}\\ Sagen Sie hier Y, um Optionen zu aktivieren, die Abhilfemaßnahmen für Hardware-Schwachstellen durch spekulative Ausführung ermöglichen. Wenn Sie N sagen, werden alle Abhilfemaßnahmen deaktiviert. Sie sollten wirklich wissen, was Sie tun, um dies anzugeben. +\english{Say Y here to enable options which enable mitigations for hardware vulnerabilities +(usually related to speculative execution). +Mitigations can be disabled or restricted to SMT systems at runtime via the "mitigations" kernel parameter.\\ +If you say N, all mitigations will be disabled. +This CANNOT be overridden at runtime.\\ +Say 'Y', unless you really know what you are doing.} +%4.1 \subsection{Remove the kernel mapping in user mode} CONFIG\_PAGE\_TABLE\_ISOLATION [=y] \textbf{[Y]}\\ Diese Funktion reduziert die Anzahl der Hardware-Seitenkanäle, indem sie sicherstellt, dass die meisten -Kernel-Adressen nicht in den Benutzerraum abgebildet werden. Siehe Documentation/arch/x86/pti.rst für -weitere Details. +Kernel-Adressen nicht in den Benutzerraum abgebildet werden.\\ +Siehe \texttt{Documentation/arch/x86/pti.rst} für weitere Details. +\english{This feature reduces the number of hardware side channels by ensuring that +the majority of kernel addresses are not mapped into userspace.\\ +See Documentation/arch/x86/pti.rst for more details.} +%4.2 \subsection{Avoid speculative indirect branches in kernel} CONFIG\_RETPOLINE [=y] \textbf{[Y]}\\ Kompilieren Sie den Kernel mit den retpoline Compiler-Optionen, um Datenlecks zwischen Kernel und Benutzer zu verhindern, indem spekulative indirekte Verzweigungen vermieden werden. Erfordert einen Compiler mit \texttt{-mindirect-branch=thunk-extern} Unterstützung für vollen Schutz. Der Kernel kann langsamer laufen. +\english{Compile kernel with the retpoline compiler options to guard against kernel-to-user +data leaks by avoiding speculative indirect branches. +Requires a compiler with -mindirect-branch=thunk-extern support for full protection. +The kernel may run slower.} \subsubsection{Enable return-thunks} CONFIG\_RETHUNK [=y] \textbf{[Y]}\\ Kompiliere den Kernel mit der Compileroption return-thunks, um Datenlecks zwischen Kernel und Benutzer zu verhindern, indem Rückgabespekulationen vermieden werden. Erfordert einen Compiler mit \texttt{-mfunction-return=thunk-extern} Unterstützung für vollen Schutz. Der Kernel kann langsamer laufen. +\english{Compile the kernel with the return-thunks compiler option to guard against +kernel-to-user data leaks by avoiding return speculation. +Requires a compiler with -mfunction-return=thunk-extern support for full protection. +The kernel may run slower.} \paragraph{Enable UNRET on kernel entry}$~$\\ CONFIG\_CPU\_UNRET\_ENTRY [=y] \textbf{[Y]}\\ Kompiliere den Kernel mit Unterstützung für die \texttt{retbleed=unret}-Abschwächung. +\english{Compile the kernel with support for the retbleed=unret mitigation.} +\note{Wird nur bei AMD-Prozessoren angezeigt.} \subsection{Mitigate RSB underflow with call depth tracking} CONFIG\_CALL\_DEPTH\_TRACKING [=y] \textbf{[Y]}\\ @@ -33,9 +54,17 @@ Kompiliere den Kernel mit Call-Depth-Tracking, um das Intel SKL Return-Speculati zu entschärfen. Die Entschärfung ist standardmäßig ausgeschaltet und muss in der Kernel-Befehlszeile über die Option \texttt{retbleed=stuff} aktiviert werden. Für nicht betroffene Systeme ist der Overhead dieser Option marginal, da die Verfolgung der Aufruftiefe zur Laufzeit generierte Call Thunks in einem vom Compiler generierten -Padding-Bereich und Call Patching verwendet. Dies erhöht die Textgröße um $\sim 5$\%. Bei nicht betroffenen Systemen +Padding-Bereich und Call Patching verwendet. Dies erhöht die Textgröße um $\sim\qty{5}{\percent}$. Bei nicht betroffenen Systemen ist dieser Platz ungenutzt. Auf betroffenen SKL-Systemen führt dies zu einem erheblichen Leistungsgewinn gegenüber der IBRS-Abschwächung. +\english{Compile the kernel with call depth tracking to mitigate the +Intel SKL Return-Stack-Buffer (RSB) underflow issue. +The mitigation is off by default and needs to be enabled on the kernel command line via the +retbleed=stuff option. +For non-affected systems the overhead of this option is marginal as the call depth tracking +is using run-time generated call thunks in a compiler generated padding area and call patching. +This increases text size by $\sim$5\%. For non affected systems this space is unused. +On affected SKL systems this results in a significant performance gain over the IBRS mitigation.} \subsubsection{Enable call thunks and call depth tracking debugging} CONFIG\_CALL\_THUNKS\_DEBUG [=n] \textbf{[N]}\\ @@ -43,6 +72,11 @@ Aktiviere Call/Ret-Zähler zur Erkennung von Ungleichgewichten und baue ein laut Callthunks und Call-Patching zur Fehlersuche ein. Die Debug-Ausdrucke müssen in der Kernel-Befehlszeile mit \texttt{debug-callthunks} aktiviert werden. Aktivieren Sie dies nur, wenn Sie Call Thunks debuggen wollen, da dies einen spürbaren Laufzeit-Overhead erzeugt. Wenn Sie unsicher sind, sagen Sie N. +\english{Enable call/ret counters for imbalance detection and build in a noisy dmesg about +callthunks generation and call patching for trouble shooting. +The debug prints need to be enabled on the kernel command line with 'debug-callthunks'. +Only enable this when you are debugging call thunks as this creates a noticeable runtime overhead. +If unsure say N.} \subsection{Enable IBPB on kernel entry} CONFIG\_CPU\_IBPB\_ENTRY [=y] \textbf{[Y]}\\ @@ -52,6 +86,8 @@ Kompiliere den Kernel mit Unterstützung für die \texttt{retbleed=ibpb}-Abschw CONFIG\_CPU\_IBRS\_ENTRY [=y] \textbf{[Y]}\\ Kompiliere den Kernel mit Unterstützung für die \texttt{spectre\_v2=ibrs}-Abschwächung. Dadurch werden sowohl spectre\_v2 als auch retbleed auf Kosten der Leistung abgeschwächt. +\english{Compile the kernel with support for the spectre\_v2=ibrs mitigation. +This mitigates both spectre\_v2 and retbleed at great cost to performance.} \subsection{Mitigate speculative RAS overflow on AMD} CONFIG\_CPU\_SRSO [=y] \textbf{[N]}\\