免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 853 | 回复: 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更靠上层一些或更靠后一些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP