Este contenido no está disponible en el idioma seleccionado.

Chapter 4. Important changes to external kernel parameters


Review major changes in the Red Hat Enterprise Linux 10.2 kernel to understand impacts on your system configuration. These changes could include, for example, updates to proc entries, sysctl and sysfs default values, boot parameters, and other kernel options.

4.1. New kernel parameters

microcode=

[X86] Control the behavior of the microcode loader.

Options:

  • base_rev=X: Set the base microcode revision of each thread when in debug mode, where X is an unsigned 32-bit integer.
  • dis_ucode_ldr: Disable the microcode loader.
  • force_minrev: Enable or disable the microcode minimal revision enforcement for the runtime microcode loader.
nvme.quirks=

[NVME] Provide a list of quirk entries to augment the built-in NVMe quirk list.

Format: nvme.quirks=<VendorID>:<ProductID>:<quirk_names>-…​

The vendor ID and product ID are 4-digit hexadecimal numbers. The quirk_names field is a comma-separated list of quirk names. You can prefix a quirk name with ^ to disable that quirk explicitly.

Example: nvme.quirks=7710:2267:bogus_nid,^identify_cns-9900:7711:broken_msi

rcutorture.gp_cond_exp=
[KNL] Use conditional or asynchronous update-side expedited-grace-period primitives, if available.
rcutorture.gp_cond_full=
[KNL] Use conditional or asynchronous update-side normal-grace-period primitives that also take concurrent expedited grace periods into account, if available.
rcutorture.gp_cond_exp_full=
[KNL] Use conditional or asynchronous update-side expedited-grace-period primitives that also take concurrent normal grace periods into account, if available.
rcutorture.gp_cond_wi=

[KNL] Set the nominal wait interval for normal conditional grace periods, in microseconds. The kernel randomly selects the actual wait interval up to this value with nanosecond granularity.

This parameter controls the wait interval for conditional grace periods that you specify through the rcutorture.gp_cond and rcutorture.gp_cond_full module parameters.

Defaults to 16 jiffies; for example, 16,000 microseconds on a system with HZ=1000.

rcutorture.gp_cond_wi_exp=

[KNL] Set the nominal wait interval for expedited conditional grace periods, in microseconds. The kernel randomly selects the actual wait interval up to this value with nanosecond granularity.

This parameter controls the wait interval for expedited conditional grace periods that you specify through the rcutorture.gp_cond_exp and rcutorture.gp_cond_exp_full module parameters.

Defaults to 128 microseconds.

rcutorture.gp_poll=
[KNL] Use polled update-side normal-grace-period primitives, if available.
rcutorture.gp_poll_exp=
[KNL] Use polled update-side expedited-grace-period primitives, if available.
rcutorture.gp_poll_full=
[KNL] Use polled update-side normal-grace-period primitives that also take concurrent expedited grace periods into account, if available.
rcutorture.gp_poll_exp_full=
[KNL] Use polled update-side expedited-grace-period primitives that also take concurrent normal grace periods into account, if available.
rcutorture.gp_poll_wi=

[KNL] Set the nominal wait interval for normal conditional grace periods when using polled update-side primitives, in microseconds. The kernel randomly selects the actual wait interval up to this value with nanosecond granularity.

This parameter controls the wait interval for conditional grace periods that you specify through the rcutorture.gp_poll and rcutorture.gp_poll_full module parameters.

Defaults to 16 jiffies; for example, 16,000 microseconds on a system with HZ=1000.

rcutorture.gp_poll_wi_exp=

[KNL] Set the nominal wait interval for expedited conditional grace periods when using polled update-side primitives, in microseconds. The kernel randomly selects the actual wait interval up to this value with nanosecond granularity.

This parameter controls the wait interval for expedited conditional grace periods that you specify through the rcutorture.gp_poll_exp and rcutorture.gp_poll_exp_full module parameters.

Defaults to 128 microseconds.

rcutorture.gpwrap_lag=

[KNL] Enable grace-period wrap lag testing in rcutorture. Set this parameter to false to prevent the gpwrap lag test from running.

The default value is true.

rcutorture.gpwrap_lag_gps=

[KNL] Set the number of grace periods to tolerate between the per-CPU RCU data structure (rdp) and the RCU node (rnp) gp_seq values before setting the overflow flag during active wrap-lag testing.

The default value is 8.

rcutorture.gpwrap_lag_cycle_mins=

[KNL] Set the total cycle duration for gpwrap lag testing, in minutes. The cycle includes both active and inactive testing periods.

The default value is 30 minutes.

rcutorture.gpwrap_lag_active_mins=

[KNL] Set the duration, in minutes, during which gpwrap lag is active in each testing cycle. During the active period, the grace-period wrap lag is controlled by the value of rcutorture.gpwrap_lag_gps.

The default value is 5 minutes.

rcutorture.preempt_duration=

[KNL] Set the duration, in milliseconds, of preemptions by a high-priority FIFO real-time task.

Set this parameter to 0 (the default) to disable the preemption test. The kernel selects CPUs to preempt randomly from the set of CPUs that are online at that moment. Races with CPUs going offline are ignored; in such cases, that preemption attempt is skipped.

rcutorture.preempt_interval=

[KNL] Set the interval, in milliseconds, between preemptions by a high-priority FIFO real-time task. The interval defaults to 1 second.

This delay is driven by an hrtimer and is fuzzed to avoid unintended synchronizations between preemptions.

rcutorture.reader_flavor=

[KNL] Set a bit mask that indicates which RCU readers to use in rcutorture.

If more than one bit is set, rcutorture enters readers in order from the lowest-order bit to the highest-order bit and exits readers in the reverse order. For SRCU, the bits have the following meanings:

  • 0x1 - normal readers
  • 0x2 - NMI-safe readers
  • 0x4 - lightweight readers
rcutorture.test_boost_holdoff=

[KNL] Set the holdoff time, in seconds, from the start of a rcutorture test to the start of RCU priority-boost testing.

The default value is 0, which disables any holdoff period.

tsa=

[X86] Control mitigation for transient scheduler attacks on AMD CPUs.

For additional technical background, search for the document titled "Technical guidance for mitigating transient scheduler attacks".

Values:

  • off: Disable the mitigation.
  • on (default): Enable the mitigation.
  • user: Mitigate only user-to-kernel transitions.
  • vm: Mitigate only guest-to-host transitions.
vmscape=

[X86] Control mitigation for VMscape attacks.

VMscape attacks can leak information from a userspace hypervisor to a guest through speculative side-channel techniques.

Values:

  • off: Disable the mitigation.
  • ibpb (default): Use the Indirect Branch Prediction Barrier (IBPB) mitigation.
  • force: Force vulnerability detection even on processors that would otherwise be treated as unaffected.

4.2. Updated kernel parameters

mitigations=

[X86, PPC, S390, ARM64, EARLY] Control optional mitigations for CPU vulnerabilities through curated, architecture-independent options.

The off option now also disables the vmscape mitigation on x86:

  • off: Disable all optional CPU mitigations. This option improves system performance but can expose users to several CPU vulnerabilities.

The off setting is equivalent to the following per-architecture options, if supported:

  • vmscape=off: Disable VMscape mitigations on x86 systems in addition to previously documented settings.

On x86, after you specify one of the main mitigation modes (such as off, auto, or auto,nosmt), you can additionally use attack-vector based controls as described in Documentation/admin-guide/hw-vuln/attack_vector_controls.rst.

rcutree.rcu_normal_wake_from_gp=

[KNL] Reduce the latency of synchronize_rcu() calls by maintaining an independent list of callers. This mechanism does not interact with regular RCU callbacks because it does not rely on the call_rcu() or call_rcu_hurry() paths and applies to normal grace periods only.

You can enable the behavior by writing 1 to /sys/module/rcutree/parameters/rcu_normal_wake_from_gp or by passing rcutree.rcu_normal_wake_from_gp=1 on the kernel command line.

By default, this behavior is now enabled when num_possible_cpus() ⇐ 16, unless you explicitly disable it by passing rcutree.rcu_normal_wake_from_gp=0 on the kernel command line.

rcutorture.gp_cond=

[KNL] Use conditional or asynchronous update-side normal-grace-period primitives, if available.

Previously, this option was documented as using conditional or asynchronous update-side primitives without explicitly clarifying that they apply to normal grace periods.

rh_waived=

Enable waived items in RHEL.

Some specific features or security mitigations can be waived, that is, toggled on or off on demand, in RHEL. However, you should use waivers cautiously, because waiving a mitigation or feature can render a system insecure or even out of scope for support.

Format: <item-1>,<item-2>,…​,<item-n>

Use the rh_waived parameter to enable all waived items that are listed in Documentation/admin-guide/rh-waived-features.rst.

4.3. Removed kernel parameters

microcode.force_minrev=

[X86] This dedicated parameter for controlling microcode minimal revision enforcement has been removed.

You can now use the microcode= parameter with the force_minrev option to enable or disable minimal revision enforcement for the runtime microcode loader.

4.4. New sysctl parameters

core_sort_vma

The core dump facility now supports sorting virtual memory areas (VMAs) by size in the generated core file.

By default, the kernel writes VMAs in address order. When you set core_sort_vma to 1, the kernel writes VMAs from the smallest size to the largest size. This behavior is known to break at least elfutils, but it can be useful when you work with very large or truncated core dumps where the most useful debugging information resides in smaller VMAs.

net.vsock.ns_mode

Control how AF_VSOCK sockets in a network namespace participate in CID allocation and cross-namespace communication.

This setting is read-only. It reports the current namespace’s mode, which is determined when the namespace is created and cannot be changed afterwards.

Values:

  • global: The namespace shares system-wide CID allocation. Sockets in this namespace can communicate with any VM or socket in any namespace that also uses the global mode. Sockets in this namespace cannot reach sockets in namespaces that use the local mode.
  • local: The namespace uses private CID allocation. Sockets in this namespace can communicate only with VMs or sockets within the same namespace.

The init_net namespace always operates in the global mode.

net.vsock.child_ns_mode

Control the default ns_mode value for newly created child network namespaces that use AF_VSOCK.

At namespace creation, the kernel initializes ns_mode in the child namespace from the parent namespace’s child_ns_mode. Initially, a namespace’s child_ns_mode matches its own ns_mode.

Values:

  • global: Child namespaces share system-wide CID allocation. Their VSOCK sockets can communicate with any VM or socket that is reachable from a global namespace.
  • local: Child namespaces use private CID allocation. Their VSOCK sockets can communicate only within their own namespace.

The first write to child_ns_mode locks its value. Later writes that set the same value succeed, but writes that attempt to change the value return -EBUSY.

Changing child_ns_mode affects only namespaces that the kernel creates after the change. Existing namespaces and their children are not modified.

If a namespace runs with ns_mode=local, it cannot change child_ns_mode to global. Attempts to do so fail with -EPERM.

4.5. Updated sysctl parameters

core_pattern

The core_pattern parameter now supports the %F specifier to record the pidfd number in core file names.

The following additional format specifier is available:

  • %F: Insert the pidfd number of the crashing task into the core file name.
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de la documentación de Red Hat

Legal Notice

Theme

© 2026 Red Hat
Volver arriba