我正在搞乱Linux内核(4.14.0),特别是页面缓存,但我无法触发页面缓存写回机制。我认为所有文件I / O都通过页面缓存,但似乎没有调用回写代码。我在page_check_dirty_writeback()周围插入了一些printk语句(第930行附近的mm / vmscan.c),但它们似乎都没有显示出来。
我尝试了两种方法来触发页面回写。我写了一个程序,它只是创建一个文本文件并写入它,我也尝试从https://www.thomas-krenn.com/en/wiki/Linux_Page_Cache_Basics运行toggleTheme(): void {
if (this.overlay.classList.contains("custom-theme")) {
this.overlay.classList.remove("custom-theme");
this.overlay.classList.add("light-custom-theme");
} else if (this.overlay.classList.contains("light-custom-theme")) {
this.overlay.getContainerElement().classList.remove("light-custom-theme");
this.overlay.classList.add("custom-theme");
} else {
this.overlay.classList.add("light-custom-theme");
}
if (document.body.classList.contains("custom-theme")) {
document.body.classList.remove("custom-theme");
document.body.classList.add("light-custom-theme");
} else if (document.body.classList.contains("light-custom-theme")) {
document.body.classList.remove("light-custom-theme");
document.body.classList.add("custom-theme");
} else {
this.overlay.classList.add("light-custom-theme");
}
}
。
我是否遗漏了一些东西,4.14.0中的页面缓存是不同的(我在阅读旧文档吗?)另外,如果可用,哪里是提问内核问题的最佳位置?在这里吗?