在MIPS(Linux)上获取指向当前转换表的指针

时间:2015-08-11 18:04:41

标签: linux linux-kernel mips paging tlb

长话短说:我想获得指向当前流程的MIPS第一级翻译表的指针。

在x86上我从CR3获得它。在ARM上,我使用TTBR来实现此目的。如何在MIPS上执行此操作(不访问当前task_struct->mm->pgd)?

以下是我需要它的原因。

我必须获得有关在QEMU系统仿真器中运行的Linux中当前进程的一些信息。我的代码作为QEMU的一部分在主机上运行。让我们假设我知道来宾内核结构中的所有相关偏移量。

当guest虚拟机处于内核模式时(如果它不是内核线程),可以通过位于内核堆栈上的task_struct直接获取当前thread_info

但是,当guest虚拟机处于用户模式时,我必须遍历task_struct列表,将每个task->mm->pgd(实际上是相应的物理地址)与当前转换进行比较表指针。后者是我正在寻找的。

1 个答案:

答案 0 :(得分:1)

可以从MIPS CP0上下文寄存器(#4)读取PTE基址。

参见See MIPS Run第16章:低级内存管理和TLB