Module Name: src Committed By: martin Date: Thu Aug 17 10:00:01 UTC 2023
Modified Files: src/sys/dev [netbsd-10]: vnd.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #330): sys/dev/vnd.c: revision 1.289 Neither limit the number of requests for the page daemon. Otherwise you may deadlock when the backend needs to allocate memory and the page daemon needs to flush dirty vnd buffers. See PR 57421 for details. To generate a diff of this commit: cvs rdiff -u -r1.287.4.1 -r1.287.4.2 src/sys/dev/vnd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/vnd.c diff -u src/sys/dev/vnd.c:1.287.4.1 src/sys/dev/vnd.c:1.287.4.2 --- src/sys/dev/vnd.c:1.287.4.1 Thu Mar 16 07:19:51 2023 +++ src/sys/dev/vnd.c Thu Aug 17 10:00:01 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: vnd.c,v 1.287.4.1 2023/03/16 07:19:51 martin Exp $ */ +/* $NetBSD: vnd.c,v 1.287.4.2 2023/08/17 10:00:01 martin Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2008, 2020 The NetBSD Foundation, Inc. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.287.4.1 2023/03/16 07:19:51 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.287.4.2 2023/08/17 10:00:01 martin Exp $"); #if defined(_KERNEL_OPT) #include "opt_vnd.h" @@ -123,6 +123,8 @@ __KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.28 #include <sys/compat_stub.h> #include <sys/atomic.h> +#include <uvm/uvm.h> + #include <net/zlib.h> #include <miscfs/genfs/genfs.h> @@ -559,7 +561,7 @@ vndstrategy(struct buf *bp) * thread to add requests, as a wedge on vnd queues * requests with biodone() -> dkstart() -> vndstrategy(). */ - if (curlwp != vnd->sc_kthread) { + if (curlwp != vnd->sc_kthread && curlwp != uvm.pagedaemon_lwp) { while (vnd->sc_pending >= VND_MAXPENDING(vnd)) tsleep(&vnd->sc_pending, PRIBIO, "vndpc", 0); }