我在哪里可以找到有关kflushd的文档?

问题描述:

我找不到关于kflushd的任何文档,比如它究竟做了什么,它如何参与网络IO以及如何使用它/从我自己的代码中调用它。我在哪里可以找到有关kflushd的文档?

kflushd AFAIK处理写出在存储器挂起的I/O到它们相应的设备。如果你想刷新未决的I/O,你总是可以调用flush,fflush或sync来强制写入I/O设备。

从代码中调用它只需使用我提到的其中一个通话(但我觉得可能是一个更我忘了)。

内核进程(如kflushd)由内核自行启动(它们不是由fork -ing启动的init进程的后代),仅存在于内核需求。用户应用程序可能会无形中需要它们(因为它们需要内核提供的某些功能,而内核通过它自己的内核进程来实现),但不会主动使用它们。

你一定要正确使用fflush(3)库函数(这恰好使相关write(2)系统调用)。

您可能需要使用fsync(2)和相关的系统调用。

关于网络,您可以通过Nagle's algorithm感兴趣。请参阅this answer