如何查看 /sys 后端的日志

如何查看 /sys 后端的日志

我正在尝试修改 中的某些内容/sys。我的命令失败了。

例如echo 63 > /sys/bus/pci/devices/0000:62:00.0/sriov_numvfs->bash: echo: write error: Cannot allocate memory

例如echo three > /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages->bash: echo: write error: Invalid argument

我该如何调试这些故障?是否有通用方法可以找到这些虚拟文件另一端的日志?理想情况下,我希望找到生成错误消息的进程或源代码。

答案1

该过程是Linux 内核。其源代码可以在各种 Git 存储库中找到。

内核生成的日志消息将显示在dmesg(除了“调试”级别需要先启用的消息)。

Sysfs 属性由设备驱动程序定义和处理,但通常更容易git grep(或使用 Elixir 在线搜索)找到导致问题的特定文件名并从那里继续挖掘。寻找一对“存储”/“显示”函数,它们接受您的写入并为您的读取提供数据。

  • 写入sriov_numvfssriov_numvfs_store()驱动程序/pci/pci-sysfs.c它打印的错误消息(使用 pci_info 或 pci_err)发送到 dmesg。

  • 处理写入(全局 sysctl 和每个节点属性)的部分nr_hugepages似乎位于mm/hugetlb.c– 查找函数__nr_hugepages_store_common()。不幸的是,代码实际上并没有生成日志消息。

相关内容