nullb driver分析5-读裸设备过程(禁用调度器)

0.前言

内核版本:4.19

文档目的: 主要以null_dev为例来研究多队列的工作机制。本文主要以ext4文件系统为例,介绍null block dev读流程。注意本文所述流程是在禁用blk-mq调度器的情况下进行的,禁用方法为null blk驱动

中g_no_sched设为1。

1.通过/dev/nullb设备节点读取

 

我们知道在创建设备节点的时候,通过系统调用mknod,最终会为设备文件创建inode,并通过init_special_inode来初始化inode->i_fop,如果是块设备则为def_blk_fops;

当通过系统调用open打开设备文件时就会将块设备文件的inode->i_fop赋值给file->f_op,也就是将def_blk_fops赋值给file->f_op;

当读取块设备文件节点时,就会调用到def_blk_fops的blkdev_read_iter,如图中调用栈所示

读取null block dev就遵循这个过程

之后的过程将与通过文件系统读流程一致

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值