我在哪里可以找到有关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。