【问题标题】:When and which function is used for modifying file on sysfs of Linux?Linux sysfs 上的文件修改何时以及使用哪个函数?
【发布时间】:2018-04-29 09:10:46
【问题描述】:

我正在分析块层的 sysfs 函数。

我添加(附加)了一个文件(图表),用于解释
的函数序列流程 /usr/src/linux-source-4.8.0/linux-source/4.8.0/block/blk-mq-sysfs.c.

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

当我执行一些 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

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

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

这里是我的环境。

1.) 每 10 核 2 个插槽

2.) 内核版本:4.8.17

3.) 英特尔 SSD 750 系列

【问题讨论】:

    标签: linux linux-kernel driver linux-device-driver sysfs


    【解决方案1】:

    也许我找到了答案。当我读取我的属性文件时调用显示存储函数。 内核不修复其属性文件的值。内核不需要。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-25
      • 2011-02-06
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多