gpt4 book ai didi

linux - 网络 block 设备 - 某些读取请求失败 - 内核 OOPS

转载 作者:太空宇宙 更新时间:2023-11-04 04:11:24 28 4
gpt4 key购买 nike

我正在为基于网络的 block 设备编写驱动程序。相同的读取操作成功,但其他读取操作似乎无法生成此内核哎呀:

[  170.289421] ------------[ cut here ]------------
[ 170.289424] Kernel BUG at ffffffff81330120 [verbose debug info unavailable]
[ 170.289425] invalid opcode: 0000 [#14] SMP
[ 170.289427] Modules linked in: dor(OF) ksocket(OF) nls_utf8(F) isofs(F) snd_ens1371(F) gameport(F) snd_ac97_codec(F) coretemp(F) ghash_clmulni_intel(F) ac97_bus(F) cryptd(F) snd_pcm(F) snd_seq_midi(F) joydev(F) snd_rawmidi(F) snd_seq_midi_event(F) hid_generic(F) snd_seq(F) vmw_balloon(F) snd_timer(F) snd_seq_device(F) microcode(F) psmouse(F) serio_raw(F) vmwgfx(F) ttm(F) snd(F) drm(F) bnep(F) i2c_piix4(F) rfcomm(F) soundcore(F) bluetooth(F) snd_page_alloc(F) ppdev(F) parport_pc(F) usbhid(F) hid(F) shpchp(F) mac_hid(F) lp(F) parport(F) e1000(F) floppy(F) mptspi(F) mptscsih(F) mptbase(F)
[ 170.289443] CPU 1
[ 170.289445] Pid: 2706, comm: read_thread Tainted: GF D O 3.8.0-29-generic #42~precise1-Ubuntu VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform
[ 170.289447] RIP: 0010:[<ffffffff81330120>] [<ffffffff81330120>] blk_finish_request+0xf0/0x100
[ 170.289450] RSP: 0018:ffff88010787de58 EFLAGS: 00010216
[ 170.289451] RAX: 0000000000000000 RBX: ffff8801282afdb0 RCX: ffffffffffffffff
[ 170.289452] RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff8801282afdb0
[ 170.289453] RBP: ffff88010787de68 R08: 000000000000007f R09: 0000000000000000
[ 170.289454] R10: 000000000000004c R11: 0000000000000033 R12: 0000000000000000
[ 170.289455] R13: ffffffffa02a62e0 R14: 0000000000000000 R15: 0000000000000000
[ 170.289456] FS: 0000000000000000(0000) GS:ffff88013ae20000(0000) knlGS:0000000000000000
[ 170.289458] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 170.289459] CR2: 00007f65ae3d7d7c CR3: 0000000001c0d000 CR4: 00000000001407e0
[ 170.289481] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 170.289500] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 170.289502] Process read_thread (pid: 2706, threadinfo ffff88010787c000, task ffff880136589740)
[ 170.289503] Stack:
[ 170.289504] ffff8801282afdb0 0000000000000000 ffff88010787de88 ffffffff81331fe4
[ 170.289507] ffff88013675e740 ffff88013675e740 ffff88010787de98 ffffffff8133201f
[ 170.289509] ffff88010787deb8 ffffffffa02a630b ffff88013675e740 ffff880137cdf8e0
[ 170.289511] Call Trace:
[ 170.289514] [<ffffffff81331fe4>] __blk_end_bidi_request+0x34/0x50
[ 170.289516] [<ffffffff8133201f>] __blk_end_request_all+0x1f/0x30
[ 170.289519] [<ffffffffa02a630b>] kThread_fun_read+0x2b/0x40 [dor]
[ 170.289522] [<ffffffff8107f1b0>] kthread+0xc0/0xd0
[ 170.289524] [<ffffffff8107f0f0>] ? flush_kthread_worker+0xb0/0xb0
[ 170.289527] [<ffffffff816fc82c>] ret_from_fork+0x7c/0xb0
[ 170.289529] [<ffffffff8107f0f0>] ? flush_kthread_worker+0xb0/0xb0
[ 170.289530] Code: 89 de e8 44 2b 00 00 e9 4b ff ff ff 83 7b 44 01 0f 85 58 ff ff ff 48 8b 7b 38 48 81 c7 60 01 00 00 e8 35 05 e1 ff e9 43 ff ff ff <0f> 0b 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00
[ 170.289553] RIP [<ffffffff81330120>] blk_finish_request+0xf0/0x100
[ 170.289555] RSP <ffff88010787de58>
[ 170.289557] ---[ end trace 697188dbdb5f7c34 ]---

知道如何解决这个问题吗?我可以将代码发送给任何愿意提供帮助的人。

提前致谢!

最佳答案

“无效操作码”通常意味着您遇到了BUG_ON()防护。由于这是在 blk_finish_request() 中,因此可能是这一行: block/blk-core.c (2111): BUG_ON(blk_queued_rq(req)); -- 3.8.x 内核的行号 2458。

http://lxr.free-electrons.com/source/block/blk-core.c?v=3.8#L2453

static void blk_finish_request(struct request *req, int error)
{
if (blk_rq_tagged(req))
blk_queue_end_tag(req->q, req);

BUG_ON(blk_queued_rq(req));

if (unlikely(laptop_mode) && blk_fs_request(req))
laptop_io_completion();

blk_delete_timer(req);

blk_account_io_done(req);

if (req->end_io)
req->end_io(req, error);
else {
if (blk_bidi_rq(req))
__blk_put_request(req->next_rq->q, req->next_rq);

__blk_put_request(req->q, req);
}
}

也许 blk_end_request_all() 在这里不是正确的调用。当一切完成后,其他驱动程序似乎会使用它。访问 lxr.free-electrons.com 了解它的常用用法。

关于linux - 网络 block 设备 - 某些读取请求失败 - 内核 OOPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905772/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com