Page zapping and page table reclaim

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi folks,

I was wondering, is there any mechanism that reclaims basically empty page tables in a running process?

Like: When I MADV_DONTNEED a huge range, there could be plenty of basically empty (e.g., all entries invalid) page tables we could reclaim. As soon as we zap a complete PMD we could reclaim (depending on the architecture) a whole page.

Zapping on the PMD level might make most impact I guess.

For 1 GB, we need 262144 4k pages. If we assume each PTE is 8 bytes, we need a total of 8 MB for the lowest level page tables (PTE).

OTOH, we would need 512 PMD entries - a single 4k page. Zapping 1 TB would mean we can free up another 4MB - rather a corner case and we can live with that.


Of course, the same might apply to other cases where we can restore all page table content from the VMA again. One example would be after MADV_FREE zapped a whole range of entries we marked.

Looks like if we happen to zap a THP, we should already get what we want (no page table, nothing to remove)

I haven't immediately stumbled over anything, but could be I am missing the obvious. I guess what would need some thought is concurrent discards/pagefaults - but it feels like being similar to collapsing/splitting a THP while there is other system activity.

Maybe there is already something and I am just not aware of it.

Thanks!

--
Thanks,

David / dhildenb






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux