Я пытаюсь отслеживать I/O
с помощью eBPF. Ниже упоминается моя спецификация сервера
(Ubuntu 18.04, kernel 5.2, virtual machine)
Я присоединяю kprobe к функции blk_mq_start_request , и я отслеживаю тип запроса, проверяя поле cmd_flags
в запросе структуры , В результате я вижу REQ_OP_READ и REQ_OP_WRITE. Несмотря на попытку удалить файл, REQ_OP_DISCARD
...
не вызывается системный вызов unlink при удалении файла, и, похоже, это приводит к функции blk_mq_start_request
, но я не могу найти, почему REQ_OP_DISCARD
не отображается.
(Как ни странно, запросы на сброс отображаются в blktrace. Похоже, что на био-уровне существует сброс ввода / вывода).