C 任意进程的物理页码

C 任意进程的物理页码,c,memory-management,linux-kernel,C,Memory Management,Linux Kernel,我有进程I,我想知道该进程在内存z中是否有物理页 如果我有一个给定的地址,我知道怎么做;但是,由于这些都需要某种虚拟地址 我从z->zone_start_pfn中知道z的起始页,从zone_end_pfn(z)中知道它的结束页,阅读似乎表明反向映射不可用 那么,确定进程i在区域z中是否有PPN的简单方法是什么呢 我想在内核空间中做这件事,如果这能让事情变得更简单的话。您可以通过使用从用户空间非常轻松地做这件事。不过您可以尝试使用物理地址。有两个宏:u_pa()和u va(),它们将进程的虚拟地址

我有进程
I
,我想知道该进程在内存
z
中是否有物理页

如果我有一个给定的地址,我知道怎么做;但是,由于这些都需要某种虚拟地址

我从
z->zone_start_pfn
中知道
z
的起始页,从
zone_end_pfn(z)
中知道它的结束页,阅读似乎表明反向映射不可用

那么,确定进程
i
在区域
z
中是否有PPN的简单方法是什么呢


我想在内核空间中做这件事,如果这能让事情变得更简单的话。

您可以通过使用从用户空间非常轻松地做这件事。

不过您可以尝试使用物理地址。有两个宏:u_pa()和u va(),它们将进程的虚拟地址转换为物理地址并返回。这可能是解决问题的第一步。不幸的是,这是为了用户空间,而不是内核空间。