CPU: 13 PID: 15452 通信: ssd_blk/0 汚染: GBIE 3.19.0+ #1

CPU: 13 PID: 15452 通信: ssd_blk/0 汚染: GBIE 3.19.0+ #1

ブロックデバイス用のエミュレータとして機能するモジュールを開発しました。ブロックデバイスに書き込むと、dmesgにこのメッセージが表示され、モジュールがクラッシュします。何が起こっているのかについてのヒントを得ることはできませんか?

[82013.054224] CPU: 9 PID: 15452 Comm: my_blk/0 Tainted: G    B     I E  3.19.0+ #1
[82013.054226] Hardware name: Dell Inc. PowerEdge R730xd/0599V5, BIOS 1.0.4 08/28/2014
[82013.054229]  ffffffff81aa8fb8 ffff881fe1613778 ffffffff817a7f98 0000000000000000
[82013.054234]  0000000000000009 ffff881fe16137a8 ffffffff813c45b5 ffff880030243600
[82013.054239]  ffff881fe0a4c798 ffff883feb3ced00 ffff881fe00c3900 ffff881fe16137b8
[82013.054244] Call Trace:
[82013.054251]  [<ffffffff817a7f98>] dump_stack+0x4f/0x7b
[82013.054257]  [<ffffffff813c45b5>] check_preemption_disabled+0xf5/0x110
[82013.054262]  [<ffffffff813c4607>] debug_smp_processor_id+0x17/0x20
[82013.054276]  [<ffffffffc03599dd>] megasas_build_io_fusion+0x54d/0x5a0 [megaraid_sas]
[82013.054287]  [<ffffffffc0359af1>] megasas_build_and_issue_cmd_fusion+0x71/0x110 [megaraid_sas]
[82013.054296]  [<ffffffffc034cf35>] megasas_queue_command+0x145/0x1b0 [megaraid_sas]
[82013.054301]  [<ffffffff8154ae03>] scsi_dispatch_cmd+0x103/0x370
[82013.054306]  [<ffffffff8154dcbf>] scsi_request_fn+0x4af/0x6c0
[82013.054311]  [<ffffffff81374177>] __blk_run_queue+0x37/0x50
[82013.054315]  [<ffffffff81374dd1>] queue_unplugged+0x41/0xf0
[82013.054320]  [<ffffffff8137a042>] blk_flush_plug_list+0x1d2/0x210
[82013.054325]  [<ffffffff8137a098>] blk_finish_plug+0x18/0x50
[82013.054331]  [<ffffffff8127e54b>] ext4_writepages+0x55b/0xd10
[82013.054336]  [<ffffffff812144ad>] ? __mnt_drop_write+0x2d/0x50
[82013.054342]  [<ffffffff8109d624>] ? finish_task_switch+0x64/0x110
[82013.054348]  [<ffffffff81187ea0>] do_writepages+0x20/0x40
[82013.054352]  [<ffffffff8117c1a9>] __filemap_fdatawrite_range+0x59/0x60
[82013.054356]  [<ffffffff8117c1e7>] filemap_write_and_wait_range+0x37/0x80
[82013.054360]  [<ffffffff8127376a>] ext4_sync_file+0x12a/0x390
///// calling some functions in my_blk
[82013.054397]  [<ffffffff81097b19>] kthread+0xc9/0xe0
[82013.054402]  [<ffffffff81097a50>] ? flush_kthread_worker+0x90/0x90
[82013.054407]  [<ffffffff817af7bc>] ret_from_fork+0x7c/0xb0
[82013.054412]  [<ffffffff81097a50>] ? flush_kthread_worker+0x90/0x90

答え1

最初の行:CPU: 9 PID: 15452 通信: my_blk/0 汚染: GB

ここから:https://www.novell.com/support/kb/doc.php?id=3582750

汚染された旗第二意味:プロセスが無効なページ状態にあることが確認されました。これは、RAM またはキャッシュメモリエラーによって仮想メモリサブシステムが破損していることを示します。

つまり、考えられる原因の1つは、ブロックデバイスへの書き込みが仮想マシンの誤ったスペースを指定し、任意の方法で仮想マシンサブシステムを損傷する可能性があることです。

答え2

CONFIG_PREEMPT=yこの問題は、カーネル構成を設定すると発生します。 Linux 3.19.0の問題を解決するには、次のパッチを適用する必要がありましたsmp_processor_id()。パッチは次のリンクにあります。raw_smp_processor_id()drivers/scsi/megaraid/megaraid_sas_io_fusion.c

http://permalink.gmane.org/gmane.linux.scsi/100408

関連情報