通用块学习4 激活设备

如果没有待处理的请求,则激活设备,启动定时器,到点之后触发硬件传输

blk_plug_device
	=>test_and_set_bit(QUEUE_FLAG_PLUGGED, &q->queue_flags)
	=>mod_timer(&q->unplug_timer, jiffies + q->unplug_delay)
		=>blk_unplug_timeout //q->unplug_timer.function = blk_unplug_timeout;到点之后激活blk_unplug_timeout
			=>kblockd_schedule_work(&q->unplug_work);
				=>blk_unplug_work //INIT_WORK(&q->unplug_work, blk_unplug_work)
					=>q->unplug_fn(q);
						=>generic_unplug_device //q->unplug_fn		= generic_unplug_device;
							=>__generic_unplug_device(q);
								=>q->request_fn(q); //对应scsi_request_fn

定时器到时批量提交有点像图书馆代理处或者银行。
图书还书或者借书不必去图书馆,可以在社区附近的代理点排队办理。例如排队还书,代理处将书分门别类。每天定点会有人将书运回图书馆。
银行也是一样,大家排队存取钱。银行下班时将钱放到银行小金库。

块设备的读流程分析
http://blog.youkuaiyun.com/chenyu105/article/details/8604149

https://www.cnblogs.com/wuchanming/p/3835713.html //这位仁兄的博客不少关于文件系统和块设备驱动

kernel 3.10内核源码分析–块设备层request plug/unplug机制
http://blog.chinaunix.net/uid-30282771-id-5755244.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值