电脑总是 TMD 坏!很让人烦气!
块设备实验做完了,那个令人纠结的错误竟然是自己没有在意 x86 平台和 ARM 平台的驱动,所以 Makefile 是直接 cp 以前 ARM 平台的驱动来的,一堆错误!
让人蛋疼拘谨!查啊查,后来找到国嵌源码,一看 Makefile,擦!顿时石化!
好了,上一篇文章是关于内核的一个 IO 调度器,对于 ramdisk、U 盘、记忆棒之类的设备,并不存在磁盘所面临的寻道时间问题,因此对这样的“块设备”而言,一个 IO 调度器不但发挥不了作用,反而其本身将白白耗掉不少内存和 CPU。
补充:
使用 blk_init_queue() 函数来初始化一个请求队列,默认会将请求队列的 make_request_fn 方法设置为内核缺省的处理函数 __make_request()。该函数会使用 IO 调度器将多个 bio 的访问顺序进行优化,整合,合并为一个请求放入请求队列。
对于上面的问题,今天主要是需要实现自己的 make_request_fn 函数,通过函数 blk_alloc_queue() 我们可以分配一个请求队列结构而不将 make_request_fn 方法设置为默认的处理函数 __make_request()。
主要过程:
①、 分配一个请求队列
blk_alloc_queue();
②、 为请求队
【Tiny6410 And Linux】—(5.2)—RamDisk 驱动实现(自己绑定 make_request_fn() )——原理
最新推荐文章于 2023-03-29 16:09:06 发布
![](https://img-home.csdnimg.cn/images/20240709112858.png)