shmem_fault
时间: 2024-01-16 08:02:05 浏览: 125
引用\[1\]: 在共享内存中,当访问不到所需的页时,会调用shm_vm_ops的fault函数shmem_fault()。shmem_fault()会调用shmem_getpage_gfp()在page cache和swap中找一个空闲页,如果找不到就通过shmem_alloc_and_acct_page()分配一个新的页,最终会调用内存管理系统的alloc_page_vma在物理内存中分配一个页。\[1\]
引用\[3\]: 共享内存使用的page需要从磁盘中swap in。当找不到所需的页时,会调用shmem_swapin_page()函数来从磁盘中读取页。如果swap in成功,会更新相关的统计信息,如fault_type和major stats。\[3\]
综上所述,当共享内存中的页不可访问时,会通过调用相应的函数来从page cache、swap或磁盘中获取所需的页。如果找不到,则会分配一个新的页。这些操作都是在内存管理系统中进行的。
#### 引用[.reference_title]
- *1* [共享内存 设计原理-shm](https://blog.csdn.net/daocaokafei/article/details/124503339)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [BPF性能分析—内存篇page_fault](https://blog.csdn.net/happyAnger6/article/details/122629996)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文