Когда и какая функция используется для изменения файла в sysfs Linux?

я анализирую функции sysfs блочного слоя.

я добавил (прикрепил) файл (диаграмму), который я сделал, чтобы объяснить последовательность функций
/usr/src/linux-source-4.8.0/linux-source/4.8.0/block/blk-mq-sysfs .с.

Я понял взаимосвязь этих функций. но я не мог найти, как ядро ​​меняет значения файла атрибутов. я слышал, что эти файлы создаются в иерархии /sysfs/ вызовом функции sysfs_create_group().

Когда я выполняю некоторые запросы ввода-вывода, система создает некоторые файлы, как показано ниже. (я использую 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.

И ядро ​​должно было изменить значение этого файла при обработке запроса ввода-вывода. но я не знаю, когда и как ядро ​​меняет это значение. я хочу знать, когда и как ядро ​​изменяет эти значения файла атрибутов, потому что я должен выяснить, что именно означают эти значения файла атрибутов.

здесь мои окружения.

1.) 2 сокета на 10 ядер

2.) Версия ядра: 4.8.17

3.) Intel SSD серии 750 введите здесь описание изображения


person 이두솔    schedule 29.04.2018    source источник


Ответы (1)


может быть, я нашел ответ. функции show store вызываются, когда я читаю свой файл атрибутов. ядро ​​не исправляет их значение файла атрибутов. ядру не нужно.

когда я использую «cat» для файла атрибута (в моем примере «отправлено»), файл будет открыт, а затем в оперативной памяти будет создано несколько структур, связанных с этим файлом (конечно, в случае sysfs резервное хранилище будет не существует).

Будет вызвана функция read(), а затем будет вызвана функция show().

person 이두솔    schedule 01.05.2018