如何获取具有页面结构的页面内容?

How can I get contents of page with page structure?

我目前正在寻找有关页面缓存的内核源代码。

我得到了一个 struct page (include/linux/mm_type.h),我想读取并保存该页面描述符指向的真实内容。

我找到了address_space_operations,它似乎对我有帮助,但我不知道它们是如何工作的以及如何使用。另外,aops->readpage 得到 structure file 作为我没有的参数。

我想做的只是打印页面缓存的内容(使用 printk)。

不确定但可能更安全的方法是使用 linux/highmem.h 中的 kmap() 如果页面已经映射,它将 return 关联虚拟地址,否则将为给定的创建映射页面和 return 您可以从模块中取消引用的相同地址。