我找不到关于kflushd的任何文档,例如它的确切内容,它如何参与网络IO以及如何使用它/从我自己的代码中调用它。
答案 0 :(得分:2)
kflushd AFAIK处理将内存中的待处理I / O写入相应的设备。如果要刷新挂起的I / O,可以随时调用flush,fflush或sync来强制写入I / O设备。
要从你的代码中调用它,只需使用我提到的一个调用(虽然我认为可能还有一个我忘了)。
答案 1 :(得分:1)
kflushd
- ing启动的init进程的后代),仅存在于内核需求中。用户应用程序可能无形地需要它们(因为它们需要内核提供的某些功能,内核在其自己的内核进程的帮助下实现)但不主动使用它们。
你绝对应该恰当地使用fflush(3)库函数(这恰好会产生相关的write(2)系统调用)。
您可能希望使用fsync(2)及相关的系统调用。
关于网络,您可能会对Nagle's algorithm感兴趣。请参阅this answer。