当io请求从io队列中删除时?

时间:2010-12-15 11:51:25

标签: linux-kernel linux-device-driver

Linux RH5.4 OS,ext3文件系统 在时间T1,当我读/写一个文件时,一个i / o请求将被发送到OS(磁盘?)工作队列,假设磁盘花费10毫秒来服务这个请求,现在时间是T2 = T1 + 10ms, 那么问题是:当从OS(磁盘?)工作队列中删除请求时?在T1或T2?

谢谢。

1 个答案:

答案 0 :(得分:0)

直到大约2.6.31,由每个设备驱动程序决定何时从内核请求队列中删除请求。

In more recent kernels,当驱动程序检索请求以发送到设备时,请求始终从队列中删除。

如果磁盘有一个队列(即ATA NCQ),请求将从驱动程序放置到磁盘的队列中保留,直到驱动程序用稍后的请求覆盖它(在磁盘发出完成信号后)第一次请求)。磁盘队列不是严格的队列,因为没有头部或尾部,它只是一个可以独立启动的命令槽池。