免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 917 | 回复: 3

[硬件及驱动] 问个scsi块设备驱动的问题 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
发表于 2015-10-21 10:30 |显示全部楼层
本帖最后由 arm-linux-gcc 于 2015-10-21 10:41 编辑

scsi_request_fn是scsi disk的queue处理回调
刚进入scsi_request_fn时,从request里面取到的应该是不带scsi命令的纯负载数据
跟踪了一下代码,发现是在sd_init_command里面构建的scsi命令,然后再调用scsi_dispatch_cmd传给具体底层的queuecommand回调(如usb storage的queuecommand_lck)

但是我并没有在找到负载数据是在什么地方传给底层的,按照我对scsi的理解,scsi_request_fn需要把取到的request分为scsi命令和纯数据负载分别发送,目前只找到了构建scsi命令和发送scsi命令的过程,那么数据负载的发送是在什么地方呢?






论坛徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
发表于 2015-10-21 19:18 |显示全部楼层
scsi cmd中有request,里面有bio,bio里面就包含对应的page

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
发表于 2015-11-05 13:38 |显示全部楼层
回复 2# 镇水铁牛


再问个问题
blk_complete_request
blk_end_request
请问这两个有啥区别呢?

论坛徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
发表于 2015-11-05 19:25 |显示全部楼层
blk_complete_request是当IO在LLDD回调时,最先调用的,它触发scsi的软中断,最后在scsi层中,准备真正结束这个请求时,才会调用blk_end_request
可以简单的认为blk_end_request比blk_complete_request更靠上层一些或更靠后一些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP