Page MenuHomeFreeBSD

D58226.diff
No OneTemporary

D58226.diff

diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -3912,6 +3912,14 @@
KASSERT(queue < PQ_COUNT, ("invalid queue %d", queue));
+ /*
+ * Make sure queue state is visible to other CPUs. Most of the time,
+ * this doesn't matter since state updates will be handled once this
+ * per-CPU batch is processed, but the page might be dequeued or
+ * requeued from another CPU before that happens.
+ */
+ atomic_thread_fence_rel();
+
domain = vm_page_domain(m);
critical_enter();
bq = DPCPU_PTR(pqbatch[domain][queue]);

File Metadata

Mime Type
text/plain
Expires
Fri, Jul 17, 1:17 PM (9 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35103958
Default Alt Text
D58226.diff (577 B)

Event Timeline