Linux がシステムを意図的にクラッシュさせるツールを入手
Linux 7.5 ソース ツリーには、コンピュータに特定のメモリ問題を意図的に引き起こしてクラッシュを引き起こす hwpoison-panic と呼ばれる新しいツールが導入されます。開発者はこのツールを使用して Linux カーネルをテストし、予期したときにクラッシュすることを確認できます。
Linux カーネル アーカイブのリリース ノートによると、hwpoison-panic は「カーネルが所有する PFN を選択し、その物理アドレスをhard_offline_page に書き込みます。 -k では、rodata (デフォルト)、slab、または pgtable の 3 つのページ タイプを選択できます。いずれの場合も、ホストはパニックを起こすはずです。
これは、特定の種類のカーネル メモリで回復不能なエラーが発生した場合に、vm.panic_on_unrecoverable_memory_failure が即時カーネル パニックを適切にトリガーすることをテストします。開発者は、実際のハードウェア障害を待たずに、これらのエラーを挿入して応答をテストできます。
「カーネル パニックを意図的にトリガーする hwpoison-panic ツールは、カーネルの読み取り専用データ「rodata」範囲、スラブ ページ、またはページ テーブル ページをターゲットにする機能を備えた、カーネルが所有するページにハードウェア ポイズン エラーを挿入します。このツールを正常に実行すると、実行中のカーネルがクラッシュし、 –はい、パニック、私のカーネル このツールが誤って起動されることを避けるためにも引数が必要です」と Phoronix 氏は説明します。
このツールを使用する理由は、ハードウェア障害が発生した後もコンピューターを使用し続けると、単純なクラッシュよりもはるかに悪いことが発生する可能性があるためです。破損したメモリに重要なカーネル データが保持されている場合、システムが予期せぬ動作をしたり、データが破損したりする可能性があります。カーネル パニックは、データの破損を継続する可能性のある機能の実行をコンピュータが停止するクラッシュ応答です。設定によっては、クラッシュによって、根本的な問題を切り分けるのに役立つ重要な診断データが得られることもあります。
hwpoison-panicの使い方
Linux カーネル アーカイブでは、このツールが実際にどのように動作するかを示す例が提供されています。 「例: # ./hwpoison-panic -k slab –yes-panic-my-kernel phys 0x100032000 (pfn 0x100032, kind=slab) に hwpoison を注入しています。カーネル パニックが予想されます: ‘メモリ障害:
「メモリ障害: 0x100032: 処理不能なページが表示されます。メモリ障害: 0x100032: 予約されたカーネル ページの回復アクション: 無視されたカーネル パニック — 同期していません: メモリ障害: 0x100032: 回復不能なページです。実行が成功するたびにマシンがクラッシュするため、これは selftests/mm ではなく tools/mm にありますが、これは CI から実行できるものではありません。
わかりやすく言えば、コマンドを使用してツールを実行し、対象となるカーネル メモリを選択することを意味します。次に、メモリ障害をシミュレートします (長い 16 進数は、障害のあるメモリの位置を示します)。この後、回復不能なメモリ障害とそれに続くカーネル パニックを示す結果が得られるはずです。システムがクラッシュした場合、通常はテストが成功したことを意味します。
このツールはシステム全体をダウンさせるため、開発者は定期的な日常テストの一部としてこのツールを使用することは避けるべきです。代わりに、開発者は特定のメモリ障害テストにこのニッチなツールを使用します。これは主に仮想マシンのテストに使用され、開発者は診断メッセージを記録してカーネルがクラッシュしたことを確認できます。開発者は、Linux が更新されるたびにテストを再実行して、メモリ エラーが発生してもシステムが停止するかどうかを確認できます。
出典: Phoronix (The Linux Kernel Archives.org 経由)
関連情報は以下のリンクからご確認いただけます
関連記事
- 非同期P2との不必要な会議を回避する10の方法-WordPress.comニュース
- ムーンナイトのイーサンホークがコミックにインスパイアされた悪役をデビュー
- iPhone、iPad、Mac、または Windows で Apple ID を見つけるにはどうすればよいですか?