HomeFreeBSD

Relax an assertion in vm_pqbatch_process_page().

Description

Relax an assertion in vm_pqbatch_process_page().

While executing vm_pqbatch_process_page(m), m->queue may change to
PQ_NONE if the page daemon is concurrently freeing the page. In this
case m's queue state flags must be clear, so vm_pqbatch_process_page()
will be a no-op, but the race could cause spurious assertion failures.
Correct the assertion which assumed that m->queue's value does not
change while the page queue lock is held.

Reviewed by: alc, kib
Reported and tested by: pho
Approved by: re (gjb)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D17027

Details

Provenance
markjAuthored on
Reviewer
alc
Differential Revision
D17027: Fix synchronization between vm_pqbatch_process_page() and pagedaemon.
Parents
rS338535: libsa: memory leak in tftp_open()
Branches
Unknown
Tags
Unknown