HomeFreeBSD

MFC r270666

Description

MFC r270666

Back in the days when the kernel was single threaded, testing
"vm_paging_target() > 0" was a reasonable way of determining if the
inactive queue scan met its target.  However, now that other threads
can be allocating pages while the inactive queue scan is running, it's
an unreliable method.  The effect of it being unreliable is that we
can start swapping out processes when we didn't intend to.

This issue has existed since the kernel was multithreaded, but the
changes to the inactive queue target in 10.0-RELEASE have made its
effects visible.

This change introduces a more direct method for determining if the
inactive queue scan met its target that is not affected by the actions
of other threads.

Details

Provenance
alcAuthored on
Parents
rS270994: Partially revert r270964. Don't test for C++11 to define _Thread_local.
Branches
Unknown
Tags
Unknown

Event Timeline