Index | Thread | Search

From:
Vitaliy Makkoveev <mvs@openbsd.org>
Subject:
Re: solisten() shared netlock
To:
Alexander Bluhm <bluhm@openbsd.org>
Cc:
tech@openbsd.org
Date:
Fri, 20 Jun 2025 11:50:12 +0300

Download raw body.

Thread
On Thu, Jun 19, 2025 at 07:56:44PM +0200, Alexander Bluhm wrote:
> Hi,
> 
> tcp_listen() looks MP safe.  Let's do listen(2) syscall in parallel.
> 
> ok?
> 

ok mvs

> bluhm
> 
> Index: kern/uipc_syscalls.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/kern/uipc_syscalls.c,v
> diff -u -p -r1.222 uipc_syscalls.c
> --- kern/uipc_syscalls.c	16 Jan 2025 16:35:01 -0000	1.222
> +++ kern/uipc_syscalls.c	19 Jun 2025 17:21:29 -0000
> @@ -210,9 +210,9 @@ sys_listen(struct proc *p, void *v, regi
>  	so = fp->f_data;
>  	if (so->so_state & SS_YP)
>  		return ENOTSOCK;
> -	solock(so);
> +	solock_shared(so);
>  	error = solisten(so, SCARG(uap, backlog));
> -	sounlock(so);
> +	sounlock_shared(so);
>  	FRELE(fp, p);
>  	return (error);
>  }
>