Где я могу найти документацию по kflushd? - PullRequest
1 голос
/ 06 февраля 2012

Я не могу найти какую-либо документацию по kflushd, например, что именно она делает, как она задействована в сетевом вводе-выводе и как я могла бы использовать / вызывать ее из своего собственного кода.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2012

kflushd AFAIK выполняет запись ожидающих операций ввода-вывода в память на соответствующие устройства.Если вы хотите сбросить ожидающие ввод-вывод, вы всегда можете вызвать сброс, fflush или синхронизировать, чтобы принудительно выполнить запись на устройство ввода-вывода.

Чтобы вызвать его из своего кода, просто используйте один из упомянутых мной вызовов.(хотя я думаю, что может быть еще один, я забыл).

1 голос
/ 06 февраля 2012

Процессы ядра, такие как kflushd, запускаются ядром самостоятельно (они не являются потомками процесса init, запущенного с помощью fork -ing) и существуют только для нужд ядра. Пользовательские приложения могут невидимо нуждаться в них (потому что им нужны некоторые функции, предлагаемые ядром, которые ядро ​​реализует с помощью своих собственных процессов ядра), но не используют их активно.

Вам определенно следует соответствующим образом использовать библиотечную функцию fflush (3) (которая просто делает соответствующие write (2) системные вызовы).

Вы можете использовать fsync (2) и связанные системные вызовы.

Что касается сети, вас может заинтересовать алгоритм Нейгла . См. этот ответ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...