我正在尝试在Linux上创建自己的proc节点"os_pagemap"(使用odroid)
该节点的目标是打印所有物理内存页面的信息.(sudo cat/proc/os_pagemap)
像这样 :
[PHY] Virt 483252 Phy 266908 VMA 0 PID 5773 PNAME com.sec.android.app.keyboard
[PHY] Virt 483253 Phy 266909 VMA 0 PID 5773 PNAME com.sec.android.app.keyboard
[PHY] Virt 483254 Phy 266910 VMA 0 PID 5773 PNAME com.sec.android.app.keyboard
[PHY] Virt 398391 Phy 266920 VMA /dev/ashmem/dalvik-bitmap-1 PID 5773 PNAME com.sec.android.app.keyboard
Run Code Online (Sandbox Code Playgroud)
其中VMA是指VMA名称
为了实现目标,我的设计是这样的:
1. read_lock(&tasklock)
2. for_each_process(p) => get pids
3. read_unlock(&tasklock)
4. Loop for each pid
1)task = get_pid_task(pid)
2)if task==NULL => skip
3)mm=task->mm
4)down_read(&mm->mmap_sem)
5)Loop for each vma in mm …Run Code Online (Sandbox Code Playgroud)