From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6EA7CF6495 for ; Sun, 29 Sep 2024 09:12:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A1F666B0204; Sun, 29 Sep 2024 05:12:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9CE9F6B0205; Sun, 29 Sep 2024 05:12:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 86FA16B0206; Sun, 29 Sep 2024 05:12:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 62B156B0204 for ; Sun, 29 Sep 2024 05:12:53 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 63F60A7CF3 for ; Sun, 29 Sep 2024 09:12:52 +0000 (UTC) X-FDA: 82617210984.13.A30098C Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf13.hostedemail.com (Postfix) with ESMTP id 8432520003 for ; Sun, 29 Sep 2024 09:12:49 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=H9qxlis2; spf=pass (imf13.hostedemail.com: domain of dhowells@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727601044; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JiqqlxmQYH/fiwHpJ0K7lC2A6lz/Rw3eIk1FtzNUMEY=; b=BEtLDWaNyycsJ1f3t8HoU0JNOBS7EJ3KEg/H6b+/26yv0HzCL/ncg3zuQfVOUMhuVdrPlo Jx6BEUGgj+nnQIb1HJXiIBIHhUO8Y1Vg8RlEcVnoS6iqM/aX4wlWhxVva2YR1edJQ7Ro6x MA7cUnv7DwGypakPLKqNBuV5DMgH63M= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727601044; a=rsa-sha256; cv=none; b=UYTZFtFxhecsI+C5X32Ai3ypucQ8uk+YowKqMcOMroLp9zDLal6CK/eP7QyhcbtpTqGlfo 8lRFwWjMewb773YC9E5t8WE3Sm9Sp529m9aBPk/skiIRDB2ZmSwzpnGtB+JxO0nk8t9nVp dXEQBqSKz2efiSyJ8HK3NK1OiU/M/QQ= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=H9qxlis2; spf=pass (imf13.hostedemail.com: domain of dhowells@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1727601168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JiqqlxmQYH/fiwHpJ0K7lC2A6lz/Rw3eIk1FtzNUMEY=; b=H9qxlis2y3VOGsiZ3bhL86nHU6iN0yBa1MCzv/Hd7lvs3cNOBUz+gTWyibgUe7hflptBNa HBiLgdEB6drxhp0N68kJdypgy/Q2O1FCy+VVlSM3+6w4w3mu+/4mZ2jEK2E33Qks+34rRZ lGCm4AbqSerwld8stht57TVSyPqzQOk= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-263-ngDjsBEOMcCfzSSWO9NFYQ-1; Sun, 29 Sep 2024 05:12:45 -0400 X-MC-Unique: ngDjsBEOMcCfzSSWO9NFYQ-1 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (unknown [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3F5D4195FE25; Sun, 29 Sep 2024 09:12:42 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.42.28.145]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id F1CB519560AE; Sun, 29 Sep 2024 09:12:34 +0000 (UTC) Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 3798903 From: David Howells In-Reply-To: <20240925103118.GE967758@unreal> References: <20240925103118.GE967758@unreal> <20240923183432.1876750-1-chantr4@gmail.com> <20240814203850.2240469-20-dhowells@redhat.com> <1279816.1727220013@warthog.procyon.org.uk> <4b5621958a758da830c1cf09c6f6893aed371f9d.camel@gmail.com> To: Leon Romanovsky Cc: dhowells@redhat.com, Eduard Zingerman , Christian Brauner , Manu Bretelle , asmadeus@codewreck.org, ceph-devel@vger.kernel.org, christian@brauner.io, ericvh@kernel.org, hsiangkao@linux.alibaba.com, idryomov@gmail.com, jlayton@kernel.org, linux-afs@lists.infradead.org, linux-cifs@vger.kernel.org, linux-erofs@lists.ozlabs.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-nfs@vger.kernel.org, marc.dionne@auristor.com, netdev@vger.kernel.org, netfs@lists.linux.dev, pc@manguebit.com, smfrench@gmail.com, sprasad@microsoft.com, tom@talpey.com, v9fs@lists.linux.dev, willy@infradead.org Subject: Re: [PATCH v2 19/25] netfs: Speed up buffered reading MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <2808174.1727601153.1@warthog.procyon.org.uk> Content-Transfer-Encoding: quoted-printable Date: Sun, 29 Sep 2024 10:12:33 +0100 Message-ID: <2808175.1727601153@warthog.procyon.org.uk> X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Stat-Signature: zt41dubuyzxkdigsxy95fwcbc1tbr7dw X-Rspamd-Queue-Id: 8432520003 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1727601169-426836 X-HE-Meta: U2FsdGVkX18D+8WAsSuOhdOsymdOEC+SHK9nrnhL5sFVPrNiBh3Vr8a8EYEb/UHNgooqhr8ZCF3aWWFikmqROfROWHiPHgQ2CZE1h4YALha9S14E+lbVyEM2ufGMOCz61spD0tn8/W7u8XYdKRO0Gw4/Zov9hBnsfY6OJ91ED86KQT2iXx2e87SiXC39wjK7nmG9PdOvHhvqL3YzRr/dAfASUEc7eMIXV7K20c/9PQHnProJ6AND1T9RNdD+T3xyWrUbfJ+yToUO7LpMvrWLcgXKxaCojfBCzdII7yELf7jQbPnvP3b/JEamNHhtqm0++x4/6oWvAo+sg8GtaXxImcpgfti2f9n6FwXdVTprTVI49VD6z8Q++N+DzRI/Xe3lzLRlmuEMEUZ1p4NgwagU4NCYSLo0GVLj+MayRwBrC13ojrdUrxzaDCjBf9YelbqfooBe0Shc7YJqVMJasrv49bxLXFG5I3B92ME0N3VEd3234JWc9QefGFNVS9+fLRBZQE/HG9bBOurFRbovkYkjjD80t9RiJKrD9QskuU30mCJ+zUVCzgA2ZcquMpa9qBtFww1YKj3dAjKaCscuKs6wTN2ryqxZZPcE3v6IP/tiat5AWswxH+HkfolLCWhIZbdpAWAyOuoN9a5c7LJg9ihZPWhrEei07AXmyuQE/L+HUBVFQBSDx46upIrkZnJKvBLPTVw2+vFqPXO8fDCaOA1+J10bJI5Mrj3ZBMqb/3+DJn5KcRaQjuS6vzZl0+pn2Laaakf89BQEU5a10rYealjNxlEZ/bDR2qSRjBqQ+bUixSOy/PzCDt0r2yiKeq8xsjP5HVU2SWGl5guBYaQ0nVBBzAhUT9cfd3w+DW4LPqgMfJH4UjgoKkvmcs9iR3F7V1Cjp7meB9Q09I8o1E9+/HN5Kx7anI1q2AxoBD7xHisGEJgRMqeDxxTjBguQIEcme8TIrLCXc33k1Bn6LKMd5ug Dzpt/zDh 5SloUowYwDhugKbhf2tAdVLF2XHmWwqKjVkD2lItmCjunuoHb2/dKNEUZFIERJFJO9sv3ZZXaQ8csWddRxXQT3sc33eLsEj/bHQ+P0tbGILryDR1+JO24oov1Q+kB8ArXhBXM+zybw2SjY3Dy2J3Aeu5sk7VTsEK6t5kdYMnUy8NHZLsWfx7Ptp8LsUD7DpdDBAr5ktHDP1tk4Z0yDmqyVkSkMSflSBHuEPook7yKu+vvBC20QqWvx3Q9+2KmWKRKaHtl8Zb7ogbsUbGZOOr7tfgeX4QE5TmVAu0rdtvpGrI7I7nbBUY50Lmm7ZAyqFOLUGRBgMs/s61Jkg1xETW/wGGY/XxgnlMtGTOJfEjMXaJasDr+HPBWCVYXvMZmYsq5VqIpHYokaFodT7bFuakRIfsLeVGl084a/uUaehpiUO+FpNTFdDu4pyNg91SG115Ysa2MCfznv6fKJ3GgEadhbF5xnFAvpAGB1EM/ru+33bfOkb7z436ClWeRMGoEvMCk+0KRcrZZ6H1Ge7wAJd8TBidjvDKA4HaaPnFKDFRGZHWclsYt9F6xg5O2xw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Can you try the attached? I've also put it on my branch here: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/= ?h=3Dnetfs-fixes David --- 9p: Don't revert the I/O iterator after reading Don't revert the I/O iterator before returning from p9_client_read_once(). netfslib doesn't require the reversion and nor doed 9P directory reading. Make p9_client_read() use a temporary iterator to call down into p9_client_read_once(), and advance that by the amount read. Reported-by: Manu Bretelle Reported-by: Eduard Zingerman Reported-by: Leon Romanovsky Signed-off-by: David Howells cc: Eric Van Hensbergen cc: Latchesar Ionkov cc: Dominique Martinet cc: Christian Schoenebeck cc: v9fs@lists.linux.dev cc: netfs@lists.linux.dev cc: linux-fsdevel@vger.kernel.org --- net/9p/client.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/net/9p/client.c b/net/9p/client.c index 5cd94721d974..be59b0a94eaf 100644 --- a/net/9p/client.c +++ b/net/9p/client.c @@ -1519,13 +1519,15 @@ p9_client_read(struct p9_fid *fid, u64 offset, str= uct iov_iter *to, int *err) *err =3D 0; = while (iov_iter_count(to)) { + struct iov_iter tmp =3D *to; int count; = - count =3D p9_client_read_once(fid, offset, to, err); + count =3D p9_client_read_once(fid, offset, &tmp, err); if (!count || *err) break; offset +=3D count; total +=3D count; + iov_iter_advance(to, count); } return total; } @@ -1567,16 +1569,12 @@ p9_client_read_once(struct p9_fid *fid, u64 offset= , struct iov_iter *to, } if (IS_ERR(req)) { *err =3D PTR_ERR(req); - if (!non_zc) - iov_iter_revert(to, count - iov_iter_count(to)); return 0; } = *err =3D p9pdu_readf(&req->rc, clnt->proto_version, "D", &received, &dataptr); if (*err) { - if (!non_zc) - iov_iter_revert(to, count - iov_iter_count(to)); trace_9p_protocol_dump(clnt, &req->rc); p9_req_put(clnt, req); return 0; @@ -1596,8 +1594,6 @@ p9_client_read_once(struct p9_fid *fid, u64 offset, = struct iov_iter *to, p9_req_put(clnt, req); return n; } - } else { - iov_iter_revert(to, count - received - iov_iter_count(to)); } p9_req_put(clnt, req); return received;