OpenBSD Journal

Call for Testing: Parallel fault handler

Contributed by rueda on from the fault me twice dept.

In a post to tech@, Martin Pieuchot (mpi@) has requested testing of a diff (against -current) to enable running the upper part of the fault handler in parallel :

Hello,

Diff below enables running the fault handler in parallel.  Please test
an report back, with dmesg, if this increases or decreases the perfs of
your usual setup.

Thanks for the help,
Martin
Index: uvm/uvm_fault.c
===================================================================
RCS file: /cvs/src/sys/uvm/uvm_fault.c,v
diff -u -p -r1.168 uvm_fault.c
--- uvm/uvm_fault.c	29 Apr 2025 09:05:54 -0000	1.168
+++ uvm/uvm_fault.c	29 Apr 2025 09:06:11 -0000
@@ -662,13 +662,8 @@ uvm_fault(vm_map_t orig_map, vaddr_t vad
 	flt.access_type = access_type;
 	flt.narrow = FALSE;		/* assume normal fault for now */
 	flt.wired = FALSE;		/* assume non-wired fault for now */
-#if notyet
 	flt.upper_lock_type = RW_READ;
 	flt.lower_lock_type = RW_READ;	/* shared lock for now */
-#else
-	flt.upper_lock_type = RW_WRITE;
-	flt.lower_lock_type = RW_WRITE;	/* exclusive lock for now */
-#endif
 
 	error = ERESTART;
 	while (error == ERESTART) { /* ReFault: */

The CFT follows recent commits which added (but did not enable) the necessary code.

As always, your testing and feedback will be much appreciated.


Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]