当前位置: 首页 > news >正文

厦门模板网站苏州建设交通高等职业技术学校

厦门模板网站,苏州建设交通高等职业技术学校,什么空间可以做网站,商家推广平台有哪些文章目录 概述scsi_cmd#xff1a;SCSI命令result字段proto_op字段proto_type字段 SCSI命令下发scsi_request_fnscsi_dev_queue_readyscsi_host_queue_ready SCSI命令响应命令请求完成的软中断处理 相关参考 概述 SCSI子系统向上与块层对接#xff0c;由块层提交的对块设备的… 文章目录 概述scsi_cmdSCSI命令result字段proto_op字段proto_type字段 SCSI命令下发scsi_request_fnscsi_dev_queue_readyscsi_host_queue_ready SCSI命令响应命令请求完成的软中断处理 相关参考 概述 SCSI子系统向上与块层对接由块层提交的对块设备的IO请求会由SCSI子系统转换成SCSI协议的标准命令然后调用Scsi_Host结构的queuecommand回调下发到低层驱动执行低层驱动会将SCSI命令和数据发送给真实的设备并在请求完成后调用scsi_cmd结构中的scsi_done回调将请求响应信息返回给SCSI中层SCSI中层完成请求响应的解析后将结果返回给块层。 scsi_cmdSCSI命令 struct scsi_cmnd {struct scsi_request req;struct scsi_device *device;struct list_head list; // 用于链入到关联SCSI设备的SCSI命令链表中struct list_head eh_entry; // 用于链入到SCSI Host的错误恢复链表中struct delayed_work abort_work;struct rcu_head rcu;int eh_eflags;unsigned long serial_number;unsigned long jiffies_at_alloc;int retries; // SCSI命令已重试的次数int allowed; // SCSI命令允许重试的次数unsigned char prot_op; // DIF操作类型unsigned char prot_type; // DIF保护类型unsigned char prot_flags;unsigned short cmd_len;enum dma_data_direction sc_data_direction;unsigned char *cmnd;struct scsi_data_buffer sdb; // SCSI命令的数据缓冲区struct scsi_data_buffer *prot_sdb; // SCSI命令的保护数据缓冲区unsigned underflow; unsigned transfersize;struct request *request;unsigned char *sense_buffer; // 存放sense信息的缓冲区void (*scsi_done) (struct scsi_cmnd *); // 底层驱动完成IO请求后调用scsi_done将结果返回给SCSIunsigned char *host_scribble; int result; // 存放低层驱动返回的IO状态信息int flags; }; result字段 result携带了驱动或SCSI中层在完成SCSI命令处理后返回的一些结果信息一共包含4个字段。 driver_byte由SCSI中层进行设置host_byte存放底层驱动返回的状态信息msg_byte存放主机适配自身的一些信息status_byte存放目标设备返回的状态信息由SCSI协议定义。 proto_op字段 proto_op字段描述了SCSI命令的DIF操作类型由scsi_prot_operations枚举类型定义 enum scsi_prot_operations {SCSI_PROT_NORMAL 0,SCSI_PROT_READ_INSERT,SCSI_PROT_WRITE_STRIP,SCSI_PROT_READ_STRIP,SCSI_PROT_WRITE_INSERT,SCSI_PROT_READ_PASS,SCSI_PROT_WRITE_PASS, }proto_type字段 proto_type字段描述了SCSI命令支持的DIF保护类型由t10_dif_type枚举类型定义 enum t10_dif_type {T10_PI_TYPE0_PROTECTION 0x0,T10_PI_TYPE1_PROTECTION 0x1,T10_PI_TYPE2_PROTECTION 0x2,T10_PI_TYPE3_PROTECTION 0x3, }SCSI命令下发 scsi_request_fn scsi_dev_queue_ready scsi_dev_queue_ready检查SCSI设备运行IO情况确认是否允许下发新的IO。函数检查的维度有两个 检查SCSI设备的IO请求队列是否已满。若满则不允许下发新的IO检查SCSI设备是否设置了device_blocked。若设置则需要等待device_blocked计数减为0时才允许下发IO。 scsi_host_queue_ready scsi_host_queue_ready检查主机适配器能否下发新的IO检查逻辑与scsi_dev_queue_ready类似。 SCSI命令响应 SCSI中层在将SCSI命令请求下发给驱动时会设置scsi_cmnd结构中的done回调函数驱动在完成IO请求时通过调用done回调将IO响应信息返回给中层。 命令请求完成的软中断处理 IO请求完成的处理流程前半部分在硬中断上下文处理后半部分的工作回切换到软中断进行处理SCSI提供的软中断处理入口是scsi_softirq_done函数。scsi_softirq_done的工作如下 调用scsi_decide_disposition解析scsi_cmd的返回信息包括驱动返回状态、sense数据等确定如何进一步处理scsi_cmd根据scsi_decide_disposition返回的动作处理scsi_cmnd分为几种情况 SUCCESSIO成功完成将结果返回上层NEEDS_RETRY/ADD_TO_MLQUEUEIO重试。把scsi_cmnd重新加入到块设备请求队列处理默认情况IO错误处理。调用scsi_en_scmd_add把scsi_cmnd加入到错误处理队列中等待错误恢复。 scsi_softirq_done流程示意如下 相关参考 《存储技术原理分析基于Linux 2.6内核源代码分析》
http://www.hkea.cn/news/14570069/

相关文章:

  • 建服务网站需要多少钱17网站一起做网店的流程
  • 怎么做网站流量统计惠州市两学一做网站
  • 本地拖拽网站建设上海新增感染呈下降趋势
  • 网站建设链接毕业设计 网站建设选题
  • 佛山企业网站设计惠州企业网站seo
  • wordpress双站 中英文在中国建设工程造价管理协会网站
  • 官方制作网站长沙网站seo报价
  • 网站首页被k 做跳转怎么做系部网站首页
  • 高清免费观看电视网站如何把自己做的网站
  • 做公众号必了解的网站域名收录提交入口
  • 蓝色 宽屏 网站 模板下载餐饮网站方案
  • 做打鱼网站需要多少钱企业邮箱如何申请
  • 做类似简书的网站俄罗斯ip地址
  • 网站布局的好坏的几个要素雨花区最新情况
  • 自助建站基础工作主要包括()深圳网站建设推选上榜网络
  • 手机端网站加盟网站开发重点难点
  • 金融行业网站开发易企秀h5制作官网
  • php做的网站安全吗怎么投诉网站制作公司
  • 网站怎么做才被收录快正邦设计招聘
  • 医院网站开发违法吗做PS的赚钱的网站
  • 做的好的微信商城网站能上外国网站dns
  • 网站模板怎么改移动网站有哪些
  • 网站建设设计平台做外贸怎么登陆国外网站
  • 淄博 网站建设个人网站设计图片
  • 坂田做网站的公司给自己广告公司宣传
  • 用群晖nas做网站创业项目排行榜前十名
  • 网站建设企业排行榜wordpress快速部署
  • 手机网站用模版苏州互联网公司集中在哪里
  • 东莞网站开发前三强网站建设需要什么条件
  • 个人购物网站怎么备案吴江建设工程招标中心网站