• Uncategorized

About c++ : How-to-update-the-PMD-and-PTE-tables-of-page-table-by-allocating-or-relocating-memory

Question Detail

I have a requirement of forcing the PTE and PMD levels of the page-table to be updated or in other words, to make the process frequently hold the PMD and PTE locks. This is for research purposes.

I know this could be done in one of two ways:

  • Allocate a MAP_ANONYMOUS memory using mmap, touch the allocated memory (to allocate a physical memory), and then munmap it; both mmap and munmap update the page-table. But I don’t know how to make this allocation/deallocation touch both tables.

  • Allocate a memory using mmap like above, and frequently relocate the memory in such a way that modifies both PMD and PTE levels. For this, I couldn’t find a way to move pages to a new location that causes both tables to be updated.

So my question is, how to allocate or relocate a mapped memory in such a way that both the PTE and PMD tables are updated? I presume any solution based on the above is a matter of finding a proper virtual address to map to or relocate to.

My processor is an Intel Xeon Gold 6142 with 4 levels page table.

Question Answer

No answer for now.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.