首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内核的哪个部分管理io请求?

内核的哪个部分管理io请求?
EN

Unix & Linux用户
提问于 2015-12-16 09:39:48
回答 1查看 118关注 0票数 3

我知道Linux /O栈中的块I/O层管理和调度I/O请求。但我不知道这段代码在哪里。实际上,我希望看到内核中对应于这一层的代码部分。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2015-12-16 10:28:58

IO的调度是从调用blk_finish_plug函数开始的,它本身将调用IO调度程序的elevator_add_req_fn方法。

这是一个调用此函数以添加新IOs的写回处理的示例:

代码语言:javascript
复制
#0  deadline_add_request at block/deadline-iosched.c:102
#1  __elv_add_request at block/elevator.c:717
#2  blk_flush_plug_list at block/blk-core.c:2746
#3  blk_finish_plug at block/blk-core.c:2762
#4  generic_writepages at mm/page-writeback.c:1052
#5  do_writepages at mm/page-writeback.c:1065
#6  writeback_single_inode at fs/fs-writeback.c:388
#7  writeback_sb_inodes at fs/fs-writeback.c:549
#8  writeback_inodes_wb at fs/fs-writeback.c:592
#9  wb_writeback at fs/fs-writeback.c:724
#10 wb_check_background at fs/fs-writeback.c:804
#11 wb_do_writeback at fs/fs-writeback.c:879
#12 bdi_writeback_thread at fs/fs-writeback.c:913
#13 kthread at kernel/kthread.c:96

您可以查看堆栈跟踪中提到的文件,特别是blk-core.c文件的blk_finish_plug方法。您可以在https://lwn.net/Articles/438256/上找到更多关于插入工作方式的详细信息。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/249680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档