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
Details
Details
Diff Detail
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
Comment Actions
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"? |