第5章 外部カーネルパラメーターへの重要な変更
この章では、システム管理者向けに、Red Hat Enterprise Linux 9.7 で配布されるカーネルの重要な変更点の概要を説明します。これらの変更には、たとえば、追加または更新された proc エントリー、sysctl と sysfs のデフォルト値、ブートパラメーター、カーネル設定オプション、または注目すべき動作の変更などが含まれます。
新しいカーネルパラメーター
arm64.nompam=
[ARM64] Memory Partitioning And Monitoring のサポートを無条件に無効にします。
indirect_target_selection=
[X86、Intel] Intel CPU における Indirect Target Selection (ITS) バグに対する緩和策を制御します。IBPB の修正には、マイクロコードの更新も必要です。
可能な値:
on - 緩和策を有効にします (デフォルト)。off - 緩和策を無効にします。force - ITS のバグを強制的に適用し、デフォルトの緩和策をデプロイします。vmexit - CPU が ITS のゲスト/ホスト間の分離に関する部分の影響を受ける場合にのみ、緩和策をデプロイします。stuff - retpoline がデプロイされている場合に、RSB-fill 緩和策もデプロイします。そうでない場合は、デフォルトの緩和策をデプロイします。
ドキュメント /admin-guide/hw-vuln/indirect-target-selection.rst を参照してください。
pcie.notph
[PCIE] PCIE_TPH カーネル設定パラメーターが有効な場合、このカーネルブートオプションを使用して、PCIe TLP Processing Hints のサポートをシステム全体で無効にできます。
rcutree.csd_lock_suppress_rcu_stall=
[KNL] CSD ロックの待機が長引いている場合に、RCU CPU ストール警告を 1 行だけ表示します。
rcuscale.kfree_by_call_rcu=
[KNL] CONFIG_RCU_LAZY=y でビルドされたカーネルで、kfree_rcu() の代わりに call_rcu() をテストします。
rcuscale.kfree_mult=
[KNL] サイズが kfree_obj のオブジェクトを割り当てる代わりに、kfree_mult * sizeof(kfree_obj) のいずれかを割り当てます。デフォルトは 1 です。
rcuscale.scale_type=
[KNL] テストする RCU 実装を指定します。
rcutorture.stall_cpu_repeat=
[KNL] ストールシーケンスを繰り返す回数。rcutorture.stall_cpu_repeat=3 の場合、ストールシーケンスは 4 回実行されます。
refscale.lookup_instances=
[KNL] SLAB_TYPESAFE_BY_RCU テストの形式に使用するデータ要素の数。負の数を指定すると、符号を反転させたものに nr_cpu_ids を掛けた値が使用されます。一方、ゼロを指定すると、nr_cpu_ids が使用されます。
smp.panic_on_ipistall=
[KNL] 指定されたミリ秒数を超えて csd_lock_timeout が続いた場合、システムをパニック状態にします。デフォルトでは、CSD ロックの取得に必要なだけ時間をかけることが許可されます。この値に 300000 を指定すると、5 分間のタイムアウトが指定されます。
spectre_bhi=
[X86] Branch History Injection (BHI) の緩和策を制御します。
on - (デフォルト) 必要に応じて HW または SW 緩和策を有効にします。これにより、カーネルがシステムコールと仮想マシンの両方から保護されます。vmexit - HW 緩和策が利用できないシステムで、vmexit 時にのみ SW 緩和策を有効にします。このようなシステムでは、ホストカーネルは仮想マシンを発生源とする BHI 攻撃から保護されますが、syscall 攻撃に対しては依然として脆弱である可能性があります。off - 緩和策を無効にします。
tsa=
[X86] AMD CPU に対する Transient Scheduler Attacks の緩和策を制御します。詳細は、任意の検索エンジンで以下を検索してください。
Technical guidance for mitigating transient scheduler attacks。off - 緩和策を無効にします。on - 緩和策を有効にします (デフォルト)。user - ユーザー/カーネル間の遷移にのみ緩和策を適用します。vm - ゲスト/ホスト間の遷移にのみ緩和策を適用します。
削除されたカーネルパラメーター
clocksource.max_cswd_read_retries=
[KNL] 外部の遅延が原因で clocksource_watchdog() の再試行が発生した際に、クロックが不安定とマークされるまでに行われる再試行の回数。デフォルトは 2 回の再試行です。つまり、テスト対象のクロックの読み取りが 3 回試行されます。
disable_cpu_apicid=
[X86、APIC、SMP] 形式: <int>。ブート時に無効にすべき当該 CPU の初期 APIC ID 番号。主に kdump のセカンドカーネルで使用され、BSP を無効にするために使用されます。その目的は、AP から BSP に INIT を送信することで発生するシステムのリセットやハングを防ぎつつ、複数の CPU を起動させることです。
カーネルパラメーターの変更
nohz_full=
[KNL] 単一のタスクの実行中にティックを無効にします。また、RCU コールバックのオフロードするなどして、他のカーネルノイズも無効にします。これは nohz_full パラメーターと同等です。残りの 1Hz ティックは、ワークキューにオフロードされます。ユーザーはこのワークキューを、グローバルの sysfs インターフェイスを通じて、ハウスキーピング用 CPU に割り当てる必要があります。
mce=
[X86-64] ドキュメント /arch/x86/x86_64/boot-options.rst を参照してください。
mem_encrypt=
[X86-64] メモリー暗号化をアクティブ化できる条件の詳細は、ドキュメント /virt/kvm/x86/amd-memory-encryption.rst を参照してください。
mitigations=
[ALL] mitigations=off を選択することは、以下の項目をオフにすることと同じです。
nokaslr が指定されている場合、kpti=0 [ARM64]gather_data_sampling=off [X86]indirect_target_selection=off [X86]kvm.nx_huge_pages=off [X86]l1tf=off [X86]mds=off [X86]meltdown=off [X86]mmio_stale_data=off [X86]pcid=off [X86]pti=off [X86]spectre_v1=off [X86]spectre_v2=off [X86]tsx=off [X86]tsx_async_abort=off [X86]uhi=off [X86]
pci=config_acs=
[PCI] 形式: <ACS flags>@<pci_dev>[; …]
各ビットの値:
0 - 強制的に無効化 1 - 強制的に有効化 x - 変更なし。たとえば、pci=config_acs=10x@pci:0:0 と指定した場合、ACS をサポートしているすべてのデバイスに対して、P2P Request Redirect を有効にし、Translation Blocking を無効にし、Source Validation を電源投入時またはファームウェアによって設定された状態のまま維持します。
これにより、デバイス間の分離が削除され、より多くのデバイスが IOMMU グループに追加される可能性があります。
pirq=
[SMP、APIC] ドキュメント /arch/x86/i386/IO-APIC.rst を参照してください。
prot_virt=
[S390] ハイパーバイザーから分離された保護対象の仮想マシンのホスティングを有効にします (ハードウェアがサポートしている場合)。有効にすると、Kernel Address Space Layout Randomization が無効な場合でも、デフォルトのカーネルベースアドレスがオーバーライドされる可能性があります。形式: <bool>
sev=
[X86-64] ドキュメント /arch/x86/x86_64/boot-options.rst を参照してください。
spectre_v2_user=
[X86] ユーザー空間における Spectre バリアント 2 の緩和策を制御します。on を選択すると、ユーザー空間タスク間の攻撃に対する緩和策も有効になります。特定の緩和策を選択しても、ユーザーの緩和策が強制的に有効になるわけではありません。off を選択すると、カーネルとユーザー空間の保護の両方が無効になります。
rcutorture.stall_cpu_irqsoff=
[KNL] 設定されている場合、ストール中の割り込みを無効にします。ただし、これはセット内の最初のストールにのみ適用されます。
新しい sysctl パラメーター
timer_migration
ゼロ以外の値に設定すると、アイドル状態の CPU が低電力状態をより長時間維持できるように、アイドル状態の CPU からタイマーを移行することを試みます。デフォルト: 1