什么时候和哪个函数用于修改Linux的sysfs上的文件?

时间:2018-04-29 09:10:46

标签: 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_create_group()函数在/ sysfs / hierarchy中创建的。

当我做一些I / O请求时,系统会生成如下文件。 (我使用的是nvme ssd 750系列)

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

内核会让这些文件向我们提供有关已完成的请求编号,已分派的编号,合并的编号,待处理的request_list的信息。

内核应该在处理I / O请求时更改这些文件的值。但我不知道内核何时以及如何改变这些价值。 我想知道内核何时以及如何更改属性文件的这些值,因为我必须找出属性文件的这些值究竟意味着什么。

这里是我的环境。

1。)每10个核心2个插座

2。)内核版本:4.8.17

3。)intel SSD 750系列 enter image description here

1 个答案:

答案 0 :(得分:0)

也许我找到了答案。当我读取我的属性文件时,会调用show store函数。 内核不修复属性文件的值。内核不需要。

当我使用' cat'到属性文件(在我的例子中'调度'),文件将被打开,然后,几个与该文件有关的结构将在ram中创建(在coures中,在sysfs的情况下,后备存储不会存在)。

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