liuw 发于 2010年12月02日 16:33
| 点击: 769
|
展开摘要
代码版本2.6.18-xen。
Linux在进程退出的时候,会调用mmput,mmput再调用exit_mmap。
先调用unmap_vmas去回收物理页框。unmap_vmas调用unmap_page_range。
unmap_page_range使用依次释放pud,pmd和pte。
相关函数是zap_pud_range,zap_pmd_range和zap_pte_range。
在zap_pte_range中,使用vm_normal_page把page结构取回,然后使用ptep_get_and_clear_full把PTE清0。最后把page的引用计数减1。
在unmap_vmas完成之后,再调用free_pgtabl
查看全文:
http://www.udpwork.com/item/3649.html