Page MenuHomeFreeBSD

vm_page_queue(9): expand from existing vm_page_deactivate(9)
Needs ReviewPublic

Authored by mhorne on Nov 8 2023, 7:01 PM.
Tags
None
Referenced Files
Unknown Object (File)
Dec 23 2023, 1:34 AM
Unknown Object (File)
Dec 15 2023, 8:03 AM
Unknown Object (File)
Nov 21 2023, 8:42 AM
Unknown Object (File)
Nov 21 2023, 5:56 AM
Unknown Object (File)
Nov 12 2023, 7:55 PM
Subscribers

Details

Reviewers
markj
kib
alc
dougm
Summary

Document the different functions that modify a page's pagequeue
membership, and the helper functions to test queue membership. Give a
short description of the different pagequeues themselves.

For me, this was a good study of how the pageout process works. I tried
to keep the details brief but relevant. What else should this page say?

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 54335
Build 51225: arc lint + arc unit

Event Timeline

mhorne requested review of this revision.Nov 8 2023, 7:01 PM
share/man/man9/vm_page_queue.9
85

I think it's a bit clearer to write "page queue".

92

Whether or not a page may be paged out is really up to its pager. In practice a page not belonging to a queue will not be paged out, but it doesn't have to be that way.

93
98
100

More specifically, pages in the active queue are (probably) mapped into some address space.

104

You might note that the page daemon periodically visits active pages in order to decide whether they have been recently accessed.

106

This is a bit imprecise: "referenced via a page table mapping" is more correct. Unmapped pages may be recently referenced (e.g., by sendfile) but still end up in the inactive queue.

107

A page itself is dirty, not its contents. It may be helpful to explain what "dirty" means, or reference some documentation which already does so.

112

This only happens when the system is under memory pressure. The laundry thread does not free cleaned pages, it moves them to the (head of the) inactive queue for reclamation.

115

Typically we use this when swap is full or no swap devices are configured.

117

What does "touched" mean? In general, most kernel code does not need to know about page queues at all.

170

"Each .Xr numa 4 domain in the system has its own set of page queues."