我认为 x86 arch 上有缓存刷新指令“CLFLUSH”,它可以用于此页面刷新。 然而,flush_dcache_page() 并不像上面的源代码那样运行任何 CPU 指令。 为什么flush_dcache_page()不在x86架构上运行任何指令? 它是否保证将 dcache 中的页面写入主内存?
ERROR: "flush_dcache_page" [fs/jffs2/jffs2.ko] undefined! make[3]: *** [__modpost] Error 1 make[2]: *** [modules] Error 2 make[2]: *** Waiting for unfinished jobs... UIMAGE arch/nios2/boot/vmImage Image Name: Linux-2.6.30-00494-g84a224b Created: ...
Pages passed to block drivers can be mapped page cache pages, so we must use flush_dcache_page here instead of the more limited flush_kernel_dcache_page that is intended for highmem pages only. Link: https://lkml.kernel.org/r/20210712060928.4161649-3-hch@lst.de Signed-off-by: Christoph...
b) the kernel is about to read from a page cache page and user space shared/writable mappings of this page potentially exist. Note that {get,pin}_user_pages{_fast} already call flush_dcache_page on any page found in the user address space and thus driver code rarely needs to take thi...