Download raw body.
unlock socket splice idle timeout
On Thu, Aug 01, 2024 at 02:26:02PM +0200, Alexander Bluhm wrote:
> Hi,
>
> The socket splice idle timeout does not need kernel lock.
>
> ok?
>
ok mvs
> bluhm
>
> Index: kern/uipc_socket.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/kern/uipc_socket.c,v
> diff -u -p -r1.340 uipc_socket.c
> --- kern/uipc_socket.c 29 Jul 2024 10:35:22 -0000 1.340
> +++ kern/uipc_socket.c 31 Jul 2024 17:36:32 -0000
> @@ -361,7 +361,8 @@ sofree(struct socket *so, int keep_lock)
> #ifdef SOCKET_SPLICE
> if (so->so_sp) {
> /* Reuse splice idle, sounsplice() has been called before. */
> - timeout_set_proc(&so->so_sp->ssp_idleto, soreaper, so);
> + timeout_set_flags(&so->so_sp->ssp_idleto, soreaper, so,
> + KCLOCK_NONE, TIMEOUT_PROC | TIMEOUT_MPSAFE);
> timeout_add(&so->so_sp->ssp_idleto, 0);
> } else
> #endif /* SOCKET_SPLICE */
> @@ -1487,7 +1488,8 @@ sosplice(struct socket *so, int fd, off_
> so->so_idletv = *tv;
> else
> timerclear(&so->so_idletv);
> - timeout_set_proc(&so->so_idleto, soidle, so);
> + timeout_set_flags(&so->so_idleto, soidle, so,
> + KCLOCK_NONE, TIMEOUT_PROC | TIMEOUT_MPSAFE);
> task_set(&so->so_splicetask, sotask, so);
>
> /*
>
unlock socket splice idle timeout