Index | Thread | Search

From:
Anton Lindqvist <anton@basename.se>
Subject:
Re: Please test: parallel fault handling
To:
tech@openbsd.org
Cc:
Martin Pieuchot <mpi@grenadille.net>
Date:
Wed, 30 Apr 2025 19:45:07 +0200

Download raw body.

Thread
On Wed, Apr 30, 2025 at 11:39:15AM +0200, Martin Pieuchot wrote:
> 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

Survived amd64 snapshot build and regress. No noticeable change in
elapsed time.

> 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: */
> 
>