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 또는 캐시 메모리 오류로 인해 가상 메모리 하위 시스템이 손상되었음을 나타냅니다.

즉, 가능한 원인 중 하나는 블록 장치에 대한 쓰기가 가상 머신의 잘못된 공간을 지정하고 어떤 방식으로든 가상 머신 하위 시스템을 손상시킬 수 있다는 것입니다.

답변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

관련 정보