UPD Mitigation
Dieser Commit ist enthalten in:
+22
-43
@@ -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:
|
||||
|
||||
+269
-129
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0c327d1db5290544154305ee00709871480b2131cf2f652c41d974ed9515cc9c
|
||||
size 1793535
|
||||
oid sha256:ec178b034654812c1c5d163a59d64f627feeef34a46c749051ef94d89253bd75
|
||||
size 1843649
|
||||
|
||||
@@ -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.\\
|
||||
|
||||
@@ -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.
|
||||
}
|
||||
|
||||
+40
-4
@@ -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]}\\
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren