在Linux的sysfs上修改文件的时间和功能是什么?

在Linux的sysfs上修改文件的时间和功能是什么?,linux,linux-kernel,driver,linux-device-driver,sysfs,Linux,Linux Kernel,Driver,Linux Device Driver,Sysfs,我正在分析块层的sysfs函数 我添加(附上)了一个文件(图表),用来解释 /usr/src/linux-source-4.8.0/linux-source/4.8.0/block/blk mq sysfs.c 我理解这些功能的关系。但我找不到内核如何更改属性文件的值。 我听说这些文件是通过调用sysfs\u create\u group()函数在/sysfs/层次结构中创建的 当我执行一些i/O请求时,系统会生成一些文件,如下所示。 (我使用nvme ssd 750系列) 内核会制作这些文件,

我正在分析块层的sysfs函数

我添加(附上)了一个文件(图表),用来解释
/usr/src/linux-source-4.8.0/linux-source/4.8.0/block/blk mq sysfs.c

我理解这些功能的关系。但我找不到内核如何更改属性文件的值。 我听说这些文件是通过调用sysfs\u create\u group()函数在/sysfs/层次结构中创建的

当我执行一些i/O请求时,系统会生成一些文件,如下所示。 (我使用nvme ssd 750系列)

内核会制作这些文件,为我们提供有关已完成请求编号、已调度编号、合并编号、待处理请求列表的信息

内核应该在处理I/O请求时更改这些文件的值。但我不知道内核何时以及如何改变这些值。 我想知道内核何时以及如何更改属性文件的这些值,因为我必须找出属性文件的这些值的确切含义

这里是我的环境

1.)每10个孔2个插座

2.)内核版本:4.8.17

3.)英特尔SSD 750系列
也许我找到了答案。当我读取属性文件时,会调用show store函数。 内核不修复属性文件的值。内核不需要这样做

当我对属性文件使用“cat”(在我的示例中为“dispatched”)时,将打开该文件,然后在ram中创建与该文件相关的几个结构(当然,在sysfs的情况下,备份存储将不存在)

将调用read()函数,然后调用show()函数

root@leedoosol:/sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/nvme/nvme0/nvme0n1/mq/0/cpu0# ls
    completed   dispatched   merged   rq_list