I really appreciate it! I really needed to know when exactly page tables get freed. As I looked at your functions, I ended up figuring out that my kernel (v5.3) defines HAVE_RCU_TABLE_FREE (I assume this is the default option) and uses __tlb_remove_table(), which frees pages. Finally, my functions work on these functions. Thanks again. 2021년 4월 6일 (화) 오전 11:42, Rik van Riel <riel@surriel.com>님이 작성:
On Tue, 2021-04-06 at 00:39 +0900, Wonkyo Choe wrote:
1. In x86, are all page-table pages released at the end of termination by using free_pgtables()? 2. In x86, a page-table page can be freed when there is no entry? In other words, does the Linux kernel release a page-table page on runtime? If so, what function would do this kind of task?
At munmap time, as well as exit and execve time, page tables can get freed. Look at the code between sys_munmap() and zap_page_range().
-- All Rights Reversed.
-- ======================= 최원교 / Wonkyo Choe Phone. +82 10-5755-4519 =======================