From 3c3a434f8ee867e6e4a69de07bf0811f2ae0c46e Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Sat, 11 Mar 2023 20:57:24 +0000 Subject: [PATCH] vm: avoid lock upgrade if possible in vm_fault_next In my tests during buildkernel fs->m was always NULL at that stage. Note the change has no impact on vm obj contention during said workload. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D39027 --- sys/vm/vm_fault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 5df66705261..fadd7dbd2fd 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -1092,7 +1092,7 @@ vm_fault_next(struct faultstate *fs) if (fs->object == fs->first_object) { fs->first_m = fs->m; fs->m = NULL; - } else { + } else if (fs->m != NULL) { if (!vm_fault_object_ensure_wlocked(fs)) { fs->can_read_lock = false; unlock_and_deallocate(fs);