Page MenuHomeFreeBSD

pctrie: add function to transfer between pctries
AbandonedPublic

Authored by dougm on Oct 23 2024, 10:42 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Apr 11, 8:45 AM
Unknown Object (File)
Wed, Apr 8, 5:08 PM
Unknown Object (File)
Sun, Mar 29, 5:23 PM
Unknown Object (File)
Sun, Mar 29, 3:18 AM
Unknown Object (File)
Mar 16 2026, 4:28 PM
Unknown Object (File)
Mar 3 2026, 4:58 PM
Unknown Object (File)
Mar 3 2026, 7:30 AM
Unknown Object (File)
Feb 27 2026, 2:43 AM
Subscribers

Details

Reviewers
markj
Summary

vm_page_rename, in order to move a page from one pctrie to another and renumber it, changes its index value back and forth and leaves it briefly inserted in two pctries at once. Add a new transfer function to do all this, and use it in vm_page_rename.

This depends on D46895.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

dougm created this revision.
sys/vm/vm_page.c
2002

If I'm reading this correctly, m's pindex is now set to the new pindex when executing vm_page_object_remove(m), but that routine expects the old pindex to still be in place. For example, vm_pager_page_unswapped()->swap_pager_unswapped() looks up a swap block using the page's pindex.

sys/vm/vm_radix.h
306
307
320