社区
Linux_Kernel
帖子详情
generic_make_request(bio)执行错误引起内核崩溃
oldoldcow
2007-12-07 10:24:40
请问这种由generic_make_request(bio)执行错误引起的内核崩溃一般是由bio结构体中哪个成员赋值不当引起的啊?
...全文
47
回复
打赏
收藏
generic_make_request(bio)执行错误引起内核崩溃
请问这种由generic_make_request(bio)执行错误引起的内核崩溃一般是由bio结构体中哪个成员赋值不当引起的啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
2.6.32
内核
的
generic
_
make
_
request
()解读
/**************************************************************** ... * 2.6.32
内核
的
generic
_
make
_
request
解读 * Blog : noshape.cublog.cn ********************************************************
generic
_
make
_
request
函数初探
generic
_
make
_
request
()函数会接手一个已经基本初始化好的
bio
,并使用
make
_
request
_fn将请求置于驱动程序的请求队列上。即把该
bio
传给设备对应的驱动程序。参数
bio
中bi_dev和bi_sector都已经设定为要进行IO的对应的...
__
make
_
request
()函数分析
我们知道,每个块设备程序都有一个请求队列与之关联...熟悉块设备驱动的人知道,
内核
是通过
generic
_
make
_
request
函数来不断转发
bio
,直到该
bio
被挂载到物理设备的请求队列中。
generic
_
make
_
request
函数会获取
bio
所指向b
linux
内核
block层Multi queue多队列核心点分析
generic
_
make
_
request
-> blk_queue_
bio
。如果看多相关源码,会发现经常用到q->queue_lock自旋锁,在IO发送过程、IO传输完成、IO合并都有。多核多进程IO传输时,会在q->queue_lock锁上自旋等待浪费不少时间...
generic
_
make
_
request
的总结性分析
通过
generic
_
make
_
request
的不断转发,最后请求一定会到一个存在queue队列的块设备上,假设最终的那个块设备是某个scsi disk(/dev/sda)。
generic
_
make
_
request
将请求转发给sda时,调用__
make
_
request
,该函数是...
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章