fd = open("/dev/xzram0", O_RDWR); read(fd, buf, count); lseek(fd, 0, SEEK_SET); write(fd, wbuf, count);
count=4K,执行结果是内核先预读4个页面,然后写一个页面。
fd = open("/dev/xzram0", O_RDWR); write(fd, wbuf, count); lseek(fd, 0, SEEK_SET); read(fd, buf, count);
count=4K,执行结果是先写一个页面,读页面操作直接在页面缓冲层完成,没有提交到块设备层。
本文通过在xzram0设备上进行不同顺序的读写操作实验,展示了内核对于页面缓存的不同处理方式。当先读取后写入时,内核会预先加载页面;而先写入后读取时,则直接利用页面缓存完成读取操作。
2174

被折叠的 条评论
为什么被折叠?



