
块设备驱动
文章平均质量分 92
嵌入式与Linux那些事
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【驱动】块设备驱动(四)-块设备驱动层
接着,通过调用通用的文件写入函数进行实际的写入操作,并返回写入操作的结果。例如,如果读取出现错误(retval小于0),或者已经读取完所有数据(iov_iter_count(iter)为0),或者已经读取到文件末尾(*ppos >= size),或者文件是DAX文件(IS_DAX(inode)),则跳过剩余的读取操作,并更新文件的访问时间。:调用通用的执行写入操作的函数generic_perform_write,执行标准缓冲区写入操作,并将写入的起始位置保存到pos中,返回写入的状态码。原创 2024-02-05 13:51:29 · 1444 阅读 · 0 评论 -
【驱动】块设备驱(三)-IO调度层
每个块设备驱动程序都维持着自己的请求队列,它包含设备待处理的请求链表。如果磁盘控制器正在处理几个磁盘,那么通常每个物理块设备都有一个请求队列。在每个请求队列上单独执行1/O调度,这样可以提高磁盘的性能。最简单的 I/O调度算法。该算法仅适当合并用户请求,并不排序请求:新的请求通常被插在调度队列的开头或末尾,下一个要处理的请求总是队列中的第一个请求。这种算法是为不需要寻道的块设备设计的,如SSD。除了调度队列外,“最后期限”算法还使用了四个队列。原创 2024-02-05 13:47:18 · 1498 阅读 · 0 评论 -
【驱动】块设备驱动(二)-通用块层
通用块层是一个内核组件,处理来自系统其他组件发出的块设备请求。换句话说,通用块层包含了块设备操作的一些通用函数和数据结构,如通用磁盘结构gendisk,请求队列结构、请求结构request、块设备I/O操作结构bio和块设备操作结构等。原创 2024-02-05 13:46:08 · 1516 阅读 · 0 评论 -
【驱动】块设备驱动(一)-驱动框架
块设备是针对存储设备的,比如 SD 卡、EMMC、NAND Flash、Nor Flash、SPI Flash、机械硬盘、固态硬盘等。块设备可以从数据的任何位置进行访问块数据总是以固定长度进行传输,即便请求的这是一个字节对块设备的访问有大量的缓存。当进行读时,如果已经缓存了,就直接使用缓存中的数据,而不再读设备,对于写也通过缓存来进行延迟处理。块设备读写是按块(所以叫块设备)进行的,使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性读到缓冲区。原创 2024-02-05 13:40:09 · 1432 阅读 · 0 评论