linux内核之块设备二--- linux内核处理block设备的requests
发布时间
阅读量:
阅读量
-
触发请求request派发的时机:
- 当重新申请一个请求失败时
- 当将一个带有unplug标记的bio插入到请求队列时
- 当将请求加入调度器的调度队列,并达到unplug阈值时
- 当unplug定时时间到达,进入周期性处理时
-
前三个情况会调用__generic_unplug_device函数,最后一个情况则调用generic_unplug_device函数
-
关于互斥机制:通过加锁操作来保护请求队列,确保线程安全
-
在初始化请求队列的过程中,默认情况下块设备的请求下发接口会被设置为scsi_request_fn函数
/真正派发请求request/
void generic_unplug_device(struct request_queue *q)
{
if (blk_queue_plugged(q)) {
spin_lock_irq(q->queue_lock);
__generic_unplug_device(q);
spin_unlock_irq(q->queue_lock);
}
}
全部评论 (0)
还没有任何评论哟~
