From nobody Sun Feb 8 19:59:40 2026 Received: from e2i340.smtp2go.com (e2i340.smtp2go.com [103.2.141.84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 61700245005 for ; Fri, 23 Jan 2026 15:06:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.2.141.84 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769180803; cv=none; b=VnhJr7DRMjQBdfE7XSdC4jhH10/yUSpux5l4BgJap0AteXusWKrdNxSjoY1FR0t6VLjpM3Ugp2U0EP2NhCrMnCl6KS/jVh89Id8Chsl/b4gX+2TIGmcgQR1ENS+qwV+yGuv/+N1X3H1PsQIkMnTMry0vYF5lbFZL1mfk6V6rmok= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769180803; c=relaxed/simple; bh=vjCLcCM2F3IicS+95q5ad2BGOrb3kOWYWjtQkuAY+fs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uVQFih4kzQPU6kuknhsey/gKDS7yG0S752l/gvPjPID638j/vXq/TOJ60FCp1WdHc6ScZ6XJ8gydX4Nljgu1oFTkCGxPGk42Mqinf2F4Rax8miTWDMZz66QTlW0XiQbXuMxXTqZMAMDtoifw/Ql+e8YJUXjHT1gpliqUhFxqdAQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=triplefau.lt; spf=pass smtp.mailfrom=em510616.triplefau.lt; dkim=fail (0-bit key) header.d=smtpservice.net header.i=@smtpservice.net header.b=kR2++EF/ reason="unknown key version"; dkim=pass (2048-bit key) header.d=triplefau.lt header.i=@triplefau.lt header.b=SWpoRkLx; arc=none smtp.client-ip=103.2.141.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=triplefau.lt Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=em510616.triplefau.lt Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="unknown key version" (0-bit key) header.d=smtpservice.net header.i=@smtpservice.net header.b="kR2++EF/"; dkim=pass (2048-bit key) header.d=triplefau.lt header.i=@triplefau.lt header.b="SWpoRkLx" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=maxzs0.a1-4.dyn; x=1769181702; h=Feedback-ID: X-Smtpcorp-Track:Message-ID:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe:List-Unsubscribe-Post; bh=6Y7DdxPq3eM3t0cx86EDuwdGb1aCri5BBH+ThrSGicw=; b=kR2++EF/l38lMLNBh1j6qKMTAs YXCI9/MpcVJ+X/AEUy5AffY0LZlyPtYnwiYInN86DZH3IeeX3xMmkO67jMZCt0rGnaf74ux0zaSuC 1bCshep41GZFHtyI6cq3iE95sSoUqNbAZ+QUK/jmljcvIEXOXxCrhPTZbOFdAcKzCq+z7/5VjqOWq 4fHsmKy4UVYmESwhNC8crZcIcaxNLKLBDMxW4bePbeW/a7skuRdbYSeb0tJoN7MmMN5cQRVAmGsi5 DLyAmCDIvz7cwIkJUjfGakp0UUfw3t8rXxxhltoH5WCT3c1dDkwqO43zDAhsrXCtPgKcinAYWvhrI ao/IPT7w==; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=triplefau.lt; i=@triplefau.lt; q=dns/txt; s=s510616; t=1769180802; h=from : subject : to : message-id : date; bh=6Y7DdxPq3eM3t0cx86EDuwdGb1aCri5BBH+ThrSGicw=; b=SWpoRkLxVmnzND3WbXrh+YnkgC3q2XMaCWDHAlhOkIToP0PALg4JO+YjXsSJwi1hGyVeV fXqiqw8FO4e/NEEn/RV8Hzqf5WS8o4R9Fh2XGnMPr8xzsS8xUGakbzxfPBfXOir+OuE8E5h q8Kz4BwJhqwwvR6pPBv3Tk8GY5FJ+qi7exXAc17ulTlkGFPlDrRW05u/Fal69tqF2N4js0o sNgRMheUa0DHf9kPpK4+KQaHQrK45Mc16cMhdZuJAIPdm7/UitFE/OAGoqjkBNAKjOMQWDI 5jc6Q0OfCxfWj60FHHDx0xWwZPI/rBmMUDq3B62X/jdXzpM7zruyrCZHv1rg== Received: from [10.176.58.103] (helo=SmtpCorp) by smtpcorp.com with esmtpsa (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.94.2-S2G) (envelope-from ) id 1vjIjO-TRk3SA-Pq; Fri, 23 Jan 2026 15:05:50 +0000 Received: from [10.12.239.196] (helo=localhost) by smtpcorp.com with esmtpsa (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.98.1-S2G) (envelope-from ) id 1vjIjO-4o5NDgrkAJF-qZA0; Fri, 23 Jan 2026 15:05:50 +0000 From: Remi Pommarel To: Peter Zijlstra , Ingo Molnar , v9fs@lists.linux.dev Cc: Juri Lelli , Vincent Guittot , Eric Van Hensbergen , Latchesar Ionkov , Dominique Martinet , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Remi Pommarel Subject: [PATCH v2 2/2] 9p: Track 9P RPC waiting time as IO Date: Fri, 23 Jan 2026 15:48:08 +0100 Message-ID: X-Mailer: git-send-email 2.50.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Smtpcorp-Track: 59JJrJTOPCO7.lXJIXKIITGf-.tY9XDQdp3ru Feedback-ID: 510616m:510616apGKSTK:510616sagCjD9iGE X-Report-Abuse: Please forward a copy of this message, including all headers, to Content-Type: text/plain; charset="utf-8" Use io_wait_event_killable() to ensure that time spent waiting for 9P RPC transactions is accounted as IO wait time. Signed-off-by: Remi Pommarel Acked-by: Dominique Martinet --- net/9p/client.c | 4 ++-- net/9p/trans_virtio.c | 14 +++++++------- net/9p/trans_xen.c | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/net/9p/client.c b/net/9p/client.c index f60d1d041adb..1b475525ac5b 100644 --- a/net/9p/client.c +++ b/net/9p/client.c @@ -590,8 +590,8 @@ p9_client_rpc(struct p9_client *c, int8_t type, const c= har *fmt, ...) } again: /* Wait for the response */ - err =3D wait_event_killable(req->wq, - READ_ONCE(req->status) >=3D REQ_STATUS_RCVD); + err =3D io_wait_event_killable(req->wq, + READ_ONCE(req->status) >=3D REQ_STATUS_RCVD); =20 /* Make sure our req is coherent with regard to updates in other * threads - echoes to wmb() in the callback diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c index 10c2dd486438..370f4f37dcec 100644 --- a/net/9p/trans_virtio.c +++ b/net/9p/trans_virtio.c @@ -284,8 +284,8 @@ p9_virtio_request(struct p9_client *client, struct p9_r= eq_t *req) if (err =3D=3D -ENOSPC) { chan->ring_bufs_avail =3D 0; spin_unlock_irqrestore(&chan->lock, flags); - err =3D wait_event_killable(*chan->vc_wq, - chan->ring_bufs_avail); + err =3D io_wait_event_killable(*chan->vc_wq, + chan->ring_bufs_avail); if (err =3D=3D -ERESTARTSYS) return err; =20 @@ -325,7 +325,7 @@ static int p9_get_mapped_pages(struct virtio_chan *chan, * Other zc request to finish here */ if (atomic_read(&vp_pinned) >=3D chan->p9_max_pages) { - err =3D wait_event_killable(vp_wq, + err =3D io_wait_event_killable(vp_wq, (atomic_read(&vp_pinned) < chan->p9_max_pages)); if (err =3D=3D -ERESTARTSYS) return err; @@ -512,8 +512,8 @@ p9_virtio_zc_request(struct p9_client *client, struct p= 9_req_t *req, if (err =3D=3D -ENOSPC) { chan->ring_bufs_avail =3D 0; spin_unlock_irqrestore(&chan->lock, flags); - err =3D wait_event_killable(*chan->vc_wq, - chan->ring_bufs_avail); + err =3D io_wait_event_killable(*chan->vc_wq, + chan->ring_bufs_avail); if (err =3D=3D -ERESTARTSYS) goto err_out; =20 @@ -531,8 +531,8 @@ p9_virtio_zc_request(struct p9_client *client, struct p= 9_req_t *req, spin_unlock_irqrestore(&chan->lock, flags); kicked =3D 1; p9_debug(P9_DEBUG_TRANS, "virtio request kicked\n"); - err =3D wait_event_killable(req->wq, - READ_ONCE(req->status) >=3D REQ_STATUS_RCVD); + err =3D io_wait_event_killable(req->wq, + READ_ONCE(req->status) >=3D REQ_STATUS_RCVD); // RERROR needs reply (=3D=3D error string) in static data if (READ_ONCE(req->status) =3D=3D REQ_STATUS_RCVD && unlikely(req->rc.sdata[4] =3D=3D P9_RERROR)) diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c index 12f752a92332..d57965e6aab0 100644 --- a/net/9p/trans_xen.c +++ b/net/9p/trans_xen.c @@ -136,8 +136,8 @@ static int p9_xen_request(struct p9_client *client, str= uct p9_req_t *p9_req) ring =3D &priv->rings[num]; =20 again: - while (wait_event_killable(ring->wq, - p9_xen_write_todo(ring, size)) !=3D 0) + while (io_wait_event_killable(ring->wq, + p9_xen_write_todo(ring, size)) !=3D 0) ; =20 spin_lock_irqsave(&ring->lock, flags); --=20 2.50.1