Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Nov 2025 00:44:52 +0000
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: be9e4c000ad6 - stable/15 - vm_fault: add a verifier that the PG_ZERO page is indeed zeroed
Message-ID:  <6928f084.2592b.6fddcfc0@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=be9e4c000ad68612aef5b2d2802cb5e46b966fc6

commit be9e4c000ad68612aef5b2d2802cb5e46b966fc6
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-11-21 08:34:51 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-11-28 00:44:15 +0000

    vm_fault: add a verifier that the PG_ZERO page is indeed zeroed
    
    (cherry picked from commit d8bfcacd12aba73188c44a157c707908e275825d)
---
 sys/vm/vm_fault.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 2e150b368d71..3bf16778d987 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -85,6 +85,8 @@
 #include <sys/refcount.h>
 #include <sys/resourcevar.h>
 #include <sys/rwlock.h>
+#include <sys/sched.h>
+#include <sys/sf_buf.h>
 #include <sys/signalvar.h>
 #include <sys/sysctl.h>
 #include <sys/sysent.h>
@@ -1220,6 +1222,24 @@ vm_fault_zerofill(struct faultstate *fs)
 	if ((fs->m->flags & PG_ZERO) == 0) {
 		pmap_zero_page(fs->m);
 	} else {
+#ifdef INVARIANTS
+		if (vm_check_pg_zero) {
+			struct sf_buf *sf;
+			unsigned long *p;
+			int i;
+
+			sched_pin();
+			sf = sf_buf_alloc(fs->m, SFB_CPUPRIVATE);
+			p = (unsigned long *)sf_buf_kva(sf);
+			for (i = 0; i < PAGE_SIZE / sizeof(*p); i++, p++) {
+				KASSERT(*p == 0,
+				    ("zerocheck failed page %p PG_ZERO %d %jx",
+				    fs->m, i, (uintmax_t)*p));
+			}
+			sf_buf_free(sf);
+			sched_unpin();
+		}
+#endif
 		VM_CNT_INC(v_ozfod);
 	}
 	VM_CNT_INC(v_zfod);


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6928f084.2592b.6fddcfc0>