5. I/O 请求锁补丁

本节提供关于 I/O 请求锁补丁的信息,也称为 scsi 并发队列补丁 (sior1),由 Johnathan Lahr 编写。

I/O 请求锁补丁通过提供并发 I/O 请求队列,提高了 Linux 2.4 多处理器系统上的 SCSI I/O 性能。通过允许多处理器并发驱动多个块设备,可以显著提高 I/O 性能和 CPU 利用率。

在应用此补丁之前,块 I/O 请求一次一个地排队,并持有全局自旋锁,io_request_lock。应用补丁后,SCSI 请求在持有与请求关联的队列特定的锁时进行排队。发送到不同设备的请求并发排队,而发送到同一设备的请求串行排队。

5.1. 查找补丁

您可以从 Sourceforge 下载 I/O 请求补丁,网址为http://sourceforge.net/projects/lse/io。 最新版本是 sior1-v1.2416。 还可以在 SourceForge 上找到为特定驱动程序启用并发队列的补丁。 Emulex SCSI/FC 的补丁是 lpfc_sior1-v0.249,Adaptec SCSI 的补丁是 aic_sior1-v0.249

5.2. 为 I/O 请求锁补丁修改您的驱动程序

I/O 请求锁补丁将并发队列功能安装到 SCSI 中间层。 并发队列为每个 SCSI 适配器设备驱动程序激活。 要激活驱动程序,必须设置concurrent_queue字段在Scsi_Host_Template结构中,当驱动程序注册时。

Note

激活并发队列的驱动程序必须确保驱动程序对request_queue的任何访问都受到request_queue.queue_lock.

的保护。 有关重建设备驱动程序的更多信息,请访问http://www.xml.com/ldd/chapter/book/index.html