From nobody Wed Aug 13 12:02:02 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4c26Rt5gXvz64kGy; Wed, 13 Aug 2025 12:02:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4c26Rt3QLBz3GXH; Wed, 13 Aug 2025 12:02:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1755086522; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VTinJDC/poZDbv1MKBa6HbSxO60VZAOcHtyJ85HhnPc=; b=FAyQr536sjCLZ08ADKF8xl/aF+IkVa212H1f16jRdwv+G2KxAfZR6/U9S38VGhx/dYdKik wbzjLdeEdD7Dch3OkTm9xXqd+YGh7lvviofB5xWx3frzuivmgefdPD3Gvwmh/QClbyeXe7 FrUGiG0zYHzPfKQOtMG8kt82Ybuxl/zhr1N8c2srwcN0mxwAFq/R14D9FSAWLSRkF0QFzG zJnikxOC/iI1BXbwtsK+cVbfaT7wzm6DiA3xwun/fue9QAomVLmU4lw/3yS46uuJO3GBs/ bXOR/fPj59duYsuVN4e39Nvz3sh31esqwMgSsGcaU1aUxVMJdMB5NXdUnzqJ5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1755086522; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VTinJDC/poZDbv1MKBa6HbSxO60VZAOcHtyJ85HhnPc=; b=fjmwagW82O87wX8ageg5i3RCxN79NP9uztcM0wilfeJYJuhZGQa244eXk41jFB3+NSCnEM M3PtYTlVpFuXU+qW/zawW5/QjfWQwQPm8MfmBeXQqQ7LLf/E4pPuK1Qh7PgkwOHshvHBYv IwPa82HXiNztmtOu0KTD5rZB+iYFNG5XWuxwAl9bjn5STEk6wJIUIGtIRR7DVbd35SMSaL qKp26rJHmvrKt4bAXNRg9zN95r1gzWvQ4k0ShvDcxvrkdAMfwTslahfGH4GPtGEKC9qAyZ ZiBRwdbbp6VnlcdfMnaNAK6Ed4VooTcCJkXlHeYAasOCNcszQL9sc5zkGOpgww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1755086522; a=rsa-sha256; cv=none; b=x5qNa6sIO+zlB7Sc6xwUULVseXCABC/uazT6ycukKIVug+l+4AojohxQKnmFXqo4eOu+Nx b9qIDeyTNCgImL9dcMfzuV2jtQffKTKXNLX5+dCzGEzUH2coeF2GtHsn5QgcSMFh28Jw9V xRHAk7SRgvA4yCZKu5bFgdYlejco88WPg9nZVYBXqrA0/qYV6A+kebwKGv3oasTQ46b0eq ReqVDj0tIsbIuDrmY7jWB+6K+ummrt7Y21unmlPmLKah2MOblcDQzY0y3OAI9ynGCaI52z ZLPrkcT+ZdEG5jq8t43+/O5zPCJlDaEelmASLGlxoe/tEJu4KxjnxJ5YY/g1AQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4c26Rt2wNwz1LqB; Wed, 13 Aug 2025 12:02:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 57DC22A7010438; Wed, 13 Aug 2025 12:02:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 57DC22NH010435; Wed, 13 Aug 2025 12:02:02 GMT (envelope-from git) Date: Wed, 13 Aug 2025 12:02:02 GMT Message-Id: <202508131202.57DC22NH010435@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: bc1696f189b5 - stable/14 - virtio_p9fs: Check for completions after enabling interrupts List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bc1696f189b51bf3753ffb7097e03c9777399f84 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=bc1696f189b51bf3753ffb7097e03c9777399f84 commit bc1696f189b51bf3753ffb7097e03c9777399f84 Author: Mark Johnston AuthorDate: 2024-10-25 17:52:22 +0000 Commit: Mark Johnston CommitDate: 2025-08-13 11:56:14 +0000 virtio_p9fs: Check for completions after enabling interrupts Otherwise we can end up with a lost interrupt, causing lost request completion wakeups and hangs in the filesystem layer. Continue processing until we enable interrupts and then observe an empty queue, like other virtio drivers do. Sponsored by: Klara, Inc. (cherry picked from commit 1f6f247b3526abd4d5927684735012220aefe373) --- sys/dev/virtio/p9fs/virtio_p9fs.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/dev/virtio/p9fs/virtio_p9fs.c b/sys/dev/virtio/p9fs/virtio_p9fs.c index 67426a88bceb..24d4542e4e48 100644 --- a/sys/dev/virtio/p9fs/virtio_p9fs.c +++ b/sys/dev/virtio/p9fs/virtio_p9fs.c @@ -222,11 +222,15 @@ vt9p_intr_complete(void *xsc) P9_DEBUG(TRANS, "%s: completing\n", __func__); VT9P_LOCK(chan); +again: while ((curreq = virtqueue_dequeue(vq, NULL)) != NULL) { curreq->rc->tag = curreq->tc->tag; wakeup_one(curreq); } - virtqueue_enable_intr(vq); + if (virtqueue_enable_intr(vq) != 0) { + virtqueue_disable_intr(vq); + goto again; + } cv_signal(&chan->submit_cv); VT9P_UNLOCK(chan); }