第5章 外部カーネルパラメーターへの重要な変更
本章では、システム管理者向けに、Red Hat Enterprise Linux 8.8 に同梱されるカーネルにおける重要な変更の概要について説明します。変更には、たとえば、proc
エントリー、sysctl
および sysfs
のデフォルト値、ブートパラメーター、カーネル設定オプション、または重要な動作の変更などが含まれます。
新しいカーネルパラメーター
- nomodeset
このカーネルパラメーターを使用すると、カーネルモード設定を無効にすることができます。DRM ドライバーは、表示モードの変更や高速レンダリングを実行しません。システムフレームバッファーがファームウェアまたはブートローダーによって設定されている場合、システムフレームバッファーのみが使用可能になります。
nomodeset
は、フォールバックとして、またはテストとデバッグに役立ちます。- sev=option[,option…] [X86-64]
-
詳細については、
Documentation/x86/x86_64/boot-options.rst
を参照してください。 - amd_pstate=[X86]
-
disable: サポートされているプロセッサーのデフォルトのスケーリングドライバーとして
amd_pstate
を有効にしないでください。 -
passive:
amd_pstate
をスケーリングドライバーとして使用します。ドライバーはこの抽象的なスケールに基づいて必要なパフォーマンスを要求します。その要求を、電源管理ファームウェアがコア周波数、データファブリック、メモリークロックなどの実際のハードウェア状態に変換します。
-
disable: サポートされているプロセッサーのデフォルトのスケーリングドライバーとして
- retbleed=ibpb,nosmt
-
このパラメーターは
ibpb
に似ており、STIBP を持たないシステムの代替パラメーターです。このパラメーターを使用すると、STIBP が使用できない場合に SMT を無効にすることができます。
更新されたカーネルパラメーター
- amd_iommu=[HW,X86-64]
このカーネルパラメーターを使用すると、システム内の AMD IOMMU ドライバーにパラメーターを渡すことができます。可能な値は次のとおりです。
-
fullflush: 非推奨。
iommu.strict=1
と同等です。 - off: システムで見つかった AMD IOMMU を初期化しません。
force_isolation: すべてのデバイスのデバイス分離を強制します。IOMMU ドライバーは、必要に応じて分離要件を引き上げることができなくなりました。
-
このオプションは
iommu=pt
をオーバーライドしません。
-
このオプションは
force_enable: IOMMU を有効にするとバグがあることがわかっているプラットフォームで、IOMMU を強制的に有効にします。
- このオプションは注意して使用してください。
-
fullflush: 非推奨。
- crashkernel=size[KMG][@offset[KMG]]
[KNL]
kexec
を使用すると、Linux はパニック時にクラッシュカーネルに切り替えることができます。このパラメーターは、そのカーネルイメージの物理メモリー領域 [offset, offset + size] を予約します。@offset
を省略すると、適切なオフセットが自動的に選択されます。[KNL, X86-64, ARM64] 最初に 4G 未満の領域を選択し、
@offset
が指定されていない場合は 4G を超える予約領域にフォールバックします。詳細については、
Documentation/admin-guide/kdump/kdump.rst
を参照してください。- crashkernel=size[KMG],low
[KNL, X86-64, ARM64] このパラメーターを使用すると、2 番目のカーネルに 4G 未満の低範囲を指定できます。
crashkernel=X,high
が渡されると、ある程度の低メモリーが必要になります。たとえば、swiotlb
には少なくとも 64M+32K の低メモリーが必要です。また、32 ビットデバイスの DMA バッファーが不足しないようにするために十分な追加の低メモリーも必要です。カーネルは、4G 未満のデフォルトサイズのメモリーを自動的に割り当てようとします。デフォルトサイズはプラットフォームによって異なります。- x86: max(swiotlb_size_or_default() + 8MiB, 256MiB)
arm64: 128MiB
0: 低割り当てを無効にします。
crashkernel=X,high
が使用されない場合、または予約されたメモリーが 4G 未満の場合、このパラメーターは無視されます。
[KNL, ARM64] このパラメーターを使用すると、クラッシュダンプカーネルの DMA ゾーンの下限範囲を指定できます。
crashkernel=X,high
が使用されていない場合、このパラメーターは無視されます。
- intel_iommu=[DMAR]
Intel IOMMU ドライバー (DMAR) オプションを設定するためのカーネルパラメーター。
- on: intel iommu ドライバーを有効にします。
- off: intel iommu ドライバーを無効にします。
-
igfx_off [デフォルトではオフ]: デフォルトでは、gfx は通常のデバイスとしてマッピングされます。gfx デバイスに専用の DMAR ユニットがある場合、このオプションで DMAR を有効にしないと、DMAR ユニットがバイパスされます。この場合、
gfx
デバイスは DMA に物理アドレスを使用します。 -
strict [デフォルトではオフ]: 非推奨。
iommu.strict=1
と同等です。 - sp_off [デフォルトではオフ]: Intel IOMMU にスーパーページ機能がある場合、デフォルトではスーパーページがサポートされます。このオプションを使用すると、スーパーページはサポートされなくなります。
- sm_on [デフォルトではオフ]: ハードウェアがスケーラブルモード変換をサポートしていることをアドバタイズしている場合でも、デフォルトでは、スケーラブルモードは無効になります。このオプションが設定されていると、スケーラブルモードは、これをサポートすると主張するハードウェアで使用されます。
tboot_noforce [デフォルトではオフ]:
tboot
でインテル IOMMU を強制的に有効にしません。デフォルトでは、tboot
は Intel IOMMU を強制的にオンにします。これにより、ID マッピングが有効になっている場合でも、40 GBit ネットワークカードなど、一部の高スループットデバイスのパフォーマンスに悪影響が及ぶ可能性があります。注記このオプションを使用すると、システムが DMA 攻撃に対して脆弱になるため、
tboot
によって提供されるセキュリティーが低下します。
- iommu.strict=[ARM64,X86]
このカーネルパラメーターを使用すると、TLB の無効化動作を設定できます。
形式:
{ "0" | "1" }
- 0 - レイジーモード。DMA アンマップ操作でハードウェア TLB の遅延無効化を使用するように要求し、デバイスの分離を犠牲にしてスループットを向上させます。関連する IOMMU ドライバーでサポートされていない場合は、厳密モードにフォールバックします。
- 1 - 厳密モード。DMA アンマップ操作で IOMMU ハードウェア TLB を同期的に無効にします。
unset -
CONFIG_IOMMU_DEFAULT_DMA_{LAZY,STRICT}
の値を使用します。注記x86 では、従来のドライバー固有のオプションの 1 つで指定された厳密モードが優先されます。
- mem_encrypt=[X86-64]
AMD Secure Memory Encryption (SME) コントロールを設定するためのカーネルパラメーター。
有効な引数: on、off
デフォルトはカーネル設定オプションによって異なります。
- on (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=y)
- off (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=n)
- mem_encrypt=on: SME をアクティブ化する
mem_encrypt=off: SME をアクティブ化しない
メモリー暗号化をアクティブ化できる条件の詳細は、
Documentation/virt/kvm/x86/amd-memory-encryption.rst
を参照してください。
- retbleed=[X86]
このカーネルパラメーターを使用すると、RETBleed (リターン命令による任意の投機的コード実行) 脆弱性の軽減を制御できます。
AMD ベースの UNRET および IBPB の軽減策だけでは、兄弟スレッドが他の兄弟スレッドの予測に影響を与えることを防ぐことはできません。そのため、STIBP はそれをサポートするプロセッサーで使用され、STIBP をサポートしないプロセッサーでは SMT を緩和します。
- オフ - 緩和策なし
- auto - 緩和策を自動的に選択します。
- auto,nosmt - 緩和策を自動的に選択し、完全な緩和策に必要な場合は SMT を無効にします (STIBP のない Zen1 以前のみ)。
- ibpb - AMD では、基本ブロック境界での短い推測ウィンドウも軽減します。安全で最高のパフォーマンスへの影響。STIBP が存在する場合は、それも有効になります。Intel には適していません。
- unret - トレーニングされていないリターンサンクを強制的に有効にします。AMD f15h-f17h ベースのシステムのみで有効です。
- unret,nosmt - unret と似ていますが、STIBP が利用できない場合は SMT を無効にします。これは、STIBP を持たないシステムの代替手段です。
- swiotlb=[ARM,IA-64,PPC,MIPS,X86]
このカーネルパラメーターを使用すると、I/O TLB スラブの動作を設定できます。
形式:
{ <int> [,<int>] | force | noforce }
- <int> - I/O TLB スラブの数。
- <int> - コンマの後の 2 番目の整数。独自のロックを持つ swiotlb エリアの数。2 の累乗である必要があります。
- force - カーネルによって自動的に使用されない場合でも、バウンスバッファーの使用を強制します。
- noforce - バウンスバッファーを使用しません (デバッグ用)。
新しい sysctl パラメーター
- page_lock_unfairness
- この値は、ウェイターからページロックを奪うことができる回数を決定します。このファイルで指定された回数 (デフォルトは 5) だけロックが奪われると、fair lock handoff セマンティクスが適用され、ロックを取得できる場合にのみウェイターが起動されます。
- rps_default_mask
- 新しく作成されたネットワークデバイスで使用されるデフォルトの RPS CPU マスク。空のマスクは、デフォルトで RPS が無効になっていることを意味します。