Page MenuHomeFreeBSD

defer inactive processing
AbandonedPublic

Authored by kmacy on Jan 25 2015, 11:44 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 12 2025, 4:26 AM
Unknown Object (File)
Jan 8 2025, 4:06 AM
Unknown Object (File)
Jan 6 2025, 2:01 AM
Unknown Object (File)
Nov 16 2024, 5:51 AM
Unknown Object (File)
Oct 31 2024, 7:39 PM
Unknown Object (File)
Oct 22 2024, 8:41 AM
Unknown Object (File)
Oct 22 2024, 3:53 AM
Unknown Object (File)
Oct 21 2024, 5:54 AM
Subscribers

Details

Reviewers
alc
Summary

Don't immediately enqueue pages to inactive list, instead place on a list protected by the page lock then move pages to inactive when scanning

Test Plan

stress2, buildworld, netflix deployment

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

kmacy retitled this revision from to defer inactive processing.
kmacy updated this object.
kmacy edited the test plan for this revision. (Show Details)
kmacy added a reviewer: alc.

In general, I'd like to see a little stricter fixup. Either wakeup the pagedaemon once the global deferred count crosses a threshold, or directly call fixup in the enqueue.
Other than that, this looks good to me.

sys/vm/vm_page.c
2121–2122

Since there is no lock order issue here, I'd like to see either a "forced" option to _fixup() to really collect if we are falling behind our target in the pagedaemon, or a secondary threshold that forces the consolidation (regardless of lock contention).

sys/vm/vm_pageout.c
1358–1362

Read v_inactive_deferred_count instead of looking at "merged"?

mlaier's comments were addressed by my latest commit: 09fe122