kernelnewbies.kernelnewbies.org archive mirror
 help / color / mirror / Atom feed
* How to free a page table page
@ 2021-04-05 15:39 Wonkyo Choe
  2021-04-05 22:12 ` linux lover
  2021-04-06  2:42 ` Rik van Riel
  0 siblings, 2 replies; 4+ messages in thread
From: Wonkyo Choe @ 2021-04-05 15:39 UTC (permalink / raw)
  To: kernelnewbies

Hello there,

I'm trying to manage a custom page table list for my toy project.
A basic process of the custom list is to allocate few pages (struct page)
to the list from the buddy allocator and the list will give some pages
when a user process needs page table pages. In contrast, when this
process terminates,
page table pages will return to the list. Finally, when the list is
not needed, all pages will be
delivered to the buddy allocator.

This relationship can be described as:
    process - custom list - buddy allocator

My problem is that a user process' page table pages (pud, pmd, pte)
seem to free their
page to the buddy allocator instead of to the custom list. (allocation
works. I've checked it)
I put my custom functions in release_pages / free_unref_page /
free_unref_page_list,
but somehow the functions do not work as I intended. (Actually the
functions are not
called so I may choose the wrong functions.)

So, I was wondering whether I intercepted the right functions (three
functions above).
Also, I have a question about freeing a page-table page.

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?
I'm trying to find freeing functions, but I can't find them and I'm
not sure when this kind of function is called.
(I'm pretty sure that pte_free / pmd_free / pud_free functions are not
for this case.)

Any help would be greatly appreciated.

Regards,
Wonkyo

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-04-06  6:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-05 15:39 How to free a page table page Wonkyo Choe
2021-04-05 22:12 ` linux lover
2021-04-06  2:42 ` Rik van Riel
2021-04-06  6:30   ` Wonkyo Choe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).