linux – 如何将多个struct BIO组合成单个struct请求?
我正在研究
Linux内核版本2.6.39.1,并正在开发一个块设备驱动程序.在这方面,我想将多个struct bios组合成单个struct请求,然后将其添加到request_queue以供设备驱动程序处理,即 – scsi_request_fn().
我尝试使用struct bio的 – > bi_next字段来链接我编写的多个struct bios,从而创建struct bios的链接列表.当我打电话submit_bio()提交生物块设备层的I / O,this BUG_ON()被触发,因为代码期望生物> bi_next变为NULL. 有没有办法将几个struct bios链接到单个struct请求,然后再将它发送到较低层进行维护? 解决方法
我不确定如何将多个struct bio串在一起,但是你可能想看一下
libsas中的“任务收集器”实现和
aic94xx驱动程序的替代方法.文档不多,但libsas
documentation将其描述为
实际上,这使得阻止层(a.k.a.BIO)保持不变,但是多个请求在驱动程序层累积并一起提交. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |