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

时间:2012-02-05 23:21:51

标签: linux linux-kernel

我找不到关于kflushd的任何文档,例如它的确切内容,它如何参与网络IO以及如何使用它/从我自己的代码中调用它。

2 个答案:

答案 0 :(得分:2)

kflushd AFAIK处理将内存中的待处理I / O写入相应的设备。如果要刷新挂起的I / O,可以随时调用flush,fflush或sync来强制写入I / O设备。

要从你的代码中调用它,只需使用我提到的一个调用(虽然我认为可能还有一个我忘了)。

答案 1 :(得分:1)

像<{1}}这样的内核进程由内核自己启动(它们不是由kflushd - ing启动的init进程的后代),仅存在于内核需求中。用户应用程序可能无形地需要它们(因为它们需要内核提供的某些功能,内核在其自己的内核进程的帮助下实现)但不主动使用它们。

你绝对应该恰当地使用fflush(3)库函数(这恰好会产生相关的write(2)系统调用)。

您可能希望使用fsync(2)及相关的系统调用。

关于网络,您可能会对Nagle's algorithm感兴趣。请参阅this answer