[{"id":3678174,"web_url":"http://patchwork.ozlabs.org/comment/3678174/","msgid":"<aeDjui2LGSidEHcJ@bfoster>","list_archive_url":null,"date":"2026-04-16T13:27:22","subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","submitter":{"id":13037,"url":"http://patchwork.ozlabs.org/api/people/13037/","name":"Brian Foster","email":"bfoster@redhat.com"},"content":"On Thu, Apr 16, 2026 at 11:06:42AM +0800, Fengnan Chang wrote:\n> When iomap_iter() finishes its iteration (returns <= 0), it is no longer\n> necessary to memset the entire iomap and srcmap structures.\n> \n> In high-IOPS scenarios (like 4k randread NVMe polling with io_uring),\n> where the majority of I/Os complete in a single extent map, this wasted\n> memory write bandwidth, as the caller will just discard the iterator.\n> \n> Use this command to test:\n> taskset -c 30 ./t/io_uring -p1 -d512 -b4096 -s32 -c32 -F1 -B1 -R1 -X1\n> -n1 -P1 /mnt/testfile\n> IOPS improve about 5% on ext4 and XFS.\n> \n> However, we MUST still call iomap_iter_reset_iomap() to release the\n> folio_batch if IOMAP_F_FOLIO_BATCH is set, otherwise we leak page\n> references. Therefore, split the cleanup logic: always release the\n> folio_batch, but skip the memset() when ret <= 0.\n> \n> Signed-off-by: Fengnan Chang <changfengnan@bytedance.com>\n> ---\n>  fs/iomap/iter.c | 5 +++--\n>  1 file changed, 3 insertions(+), 2 deletions(-)\n> \n> diff --git a/fs/iomap/iter.c b/fs/iomap/iter.c\n> index c04796f6e57f..91eb5e6165ff 100644\n> --- a/fs/iomap/iter.c\n> +++ b/fs/iomap/iter.c\n> @@ -15,8 +15,6 @@ static inline void iomap_iter_reset_iomap(struct iomap_iter *iter)\n>  \t}\n>  \n>  \titer->status = 0;\n> -\tmemset(&iter->iomap, 0, sizeof(iter->iomap));\n> -\tmemset(&iter->srcmap, 0, sizeof(iter->srcmap));\n>  }\n>  \n>  /* Advance the current iterator position and decrement the remaining length */\n> @@ -106,6 +104,9 @@ int iomap_iter(struct iomap_iter *iter, const struct iomap_ops *ops)\n>  \tif (ret <= 0)\n>  \t\treturn ret;\n>  \n> +\tmemset(&iter->iomap, 0, sizeof(iter->iomap));\n> +\tmemset(&iter->srcmap, 0, sizeof(iter->srcmap));\n> +\n\nThis seems reasonable to me in principle, but it feels a little odd to\nleave a reset helper that doesn't really do a \"reset.\" I wonder if this\nshould be refactored into an iomap_iter_complete() (i.e. \"complete an\niteration\") helper that includes the ret assignment logic just above the\nreset call and returns it, and then maybe leave a oneline comment above\nthe memset so somebody doesn't blindly fold it back in the future. So\nfor example:\n\n\tret = iomap_iter_complete(iter);\n\tif (ret <= 0)\n\t\treturn ret;\n\n\t/* save cycles and only clear the mappings if we plan to iterate */\n\tmemset(..);\n\t...\n\nWe'd probably have to recheck some of the iter state within the new\nhelper, but that doesn't seem like a big deal to me. Thoughts?\n\nBrian\n\n>  begin:\n>  \tret = ops->iomap_begin(iter->inode, iter->pos, iter->len, iter->flags,\n>  \t\t\t       &iter->iomap, &iter->srcmap);\n> -- \n> 2.39.5 (Apple Git-154)\n> \n>","headers":{"Return-Path":"\n <SRS0=CQne=CP=vger.kernel.org=linux-ext4+bounces-15871-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=BTIJ0olr;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=150.107.74.76; helo=mail.ozlabs.org;\n envelope-from=srs0=cqne=cp=vger.kernel.org=linux-ext4+bounces-15871-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c0a:e001:db::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=redhat.com","gandalf.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=BTIJ0olr;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15871-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com\n header.b=\"BTIJ0olr\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=170.10.133.124","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=redhat.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=redhat.com"],"Received":["from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxJtG6Wbbz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 23:35:33 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fxJtF1Y4Dz4w9h\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 23:35:33 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fxJtF1VG5z4wB4; Thu, 16 Apr 2026 23:35:33 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fxJt95P6Vz4w9h\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 16 Apr 2026 23:35:29 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 1DC8E3153062\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 16 Apr 2026 13:27:36 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id AFCF31922F5;\n\tThu, 16 Apr 2026 13:27:34 +0000 (UTC)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 449763890E9\n\tfor <linux-ext4@vger.kernel.org>; Thu, 16 Apr 2026 13:27:33 +0000 (UTC)","from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-482-AVTfZuPtPHq98oCOk9kJhg-1; Thu,\n 16 Apr 2026 09:27:28 -0400","from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id E7B6E1955F29;\n\tThu, 16 Apr 2026 13:27:26 +0000 (UTC)","from bfoster (unknown [10.22.88.58])\n\tby mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with\n ESMTPS id 8448218004AD;\n\tThu, 16 Apr 2026 13:27:24 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776346533; cv=pass;\n\tb=Lx54efTCxqMTzcUZ5JUXQ1g5Ir7xvpE9KUIKyhcWAWLigPIOsiXVScXlopwIupQhfnl5sFHcCGxrm/CA6TCBSpFIrqQdBIymZDrDnxV9uw/kIrBNI4Kz+uEKOqnhc3rxX5LvwTksznRqUzB9iZeTQiglpoKWztFl6bQOsQhPRa+5U8xC/fuBnp6DCalK7MTFeUtX1EUWqrj6PRl/6AvY8LcP9U7ITg+USKzrJABtiauHD0fYzieQixGGuZQGdCHWXCBZ1FiMs486ox/lS0CWUzNVwTkEvegjGS+xHdyCJBT4KogT3BvnQrLcbJgBTO9xSUVzEdqsx0GIepxCxzwXFQ==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776346054; cv=none;\n b=mnbhjPuqoMgRxA8SazMzP66sG5Vw0q2NRGAgCpTmQDRbblCP60kc5VsX+bhyeg6qp93EXLKzSzFXAigPnGJFQsjxRnT5trInjwLL2V7cHQGtLQla34jIrsZRxcRbL+PXutfaLfwMCiLKT9AgwBJ5Qr+aY2bEVBNBANir/lsuKUM="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776346533; c=relaxed/relaxed;\n\tbh=Kd4xzrW3cdgab5XjQjDHE08ZAJkyG+TMqdOu59r6BZc=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=vCkwTfiQXgFSzlBna1CNdy7nG9u0EDgSQwxz4rJUKSyTKPqUjrHWdORM/kd7QB3S6KXC0Le43Zl6jsIs1icT3t/plCGhLZ1Wn9TFJqLeq3CLo3QazCTynPbnfRK3D0udUkHnjoi+ta8X6hGrmOVhl8vCTjnqfXtkQ3KgSNBwkjqlTFcQFkXG9iSsMTmOfuKtmysmT5znhqvSHG//o9pUWY7CazWfeBiU+Y1X1qxgWTgMoTkVpc0trOAKTj63qZr7/awGk2srxBntq63a3zIx2BbHBMMl1fGNgRVvglJpnLRZRzep2TLlD7xSlOhTwNobRW7oQaF1kLEJIEeVtz+Elg==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776346054; c=relaxed/simple;\n\tbh=2bUHpcR1VdsiaIYxdeAHmpdfrXvaIuwbl5WykP7k+M8=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=BwljcmQQ+zCUCJzGcNqgRq/7ZZLvVX71icwgp0xegTDHNxPu3CeLtE1nZPwLEPFfeIkvQyk17/ZaMoUJrxpynek3qpjm7SzZhHrkSO0spKAkNMV+dYy4faEOnMlLMVW9aTNh//Nzv5nwDlhEoftXqSq5n3y5iCgWp2UaU0YLCvo="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=redhat.com;\n dkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=BTIJ0olr; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15871-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=redhat.com;\n spf=pass smtp.mailfrom=redhat.com;\n dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com\n header.b=BTIJ0olr; arc=none smtp.client-ip=170.10.133.124"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1776346052;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\t to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=Kd4xzrW3cdgab5XjQjDHE08ZAJkyG+TMqdOu59r6BZc=;\n\tb=BTIJ0olr+NbKuTHGZvPVxlB5eYeMkmbdMxbPVql3L3+TRjF0P7JcOm1ufczz8YiTMQ4+Kt\n\taGNbQV1bfS/q7o0/f9eABolhYIbQum3EcnKeBPfLF/kxItgnMjt7IOUEMTLq1nD72JN2qO\n\t5VyBSffEZKkR2ReqkmLIf/Z42ge35EM=","X-MC-Unique":"AVTfZuPtPHq98oCOk9kJhg-1","X-Mimecast-MFC-AGG-ID":"AVTfZuPtPHq98oCOk9kJhg_1776346047","Date":"Thu, 16 Apr 2026 09:27:22 -0400","From":"Brian Foster <bfoster@redhat.com>","To":"Fengnan Chang <fengnanchang@gmail.com>","Cc":"brauner@kernel.org, djwong@kernel.org, hch@infradead.org,\n\tlinux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,\n\tlinux-ext4@vger.kernel.org, lidiangang@bytedance.com,\n\tFengnan Chang <changfengnan@bytedance.com>","Subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","Message-ID":"<aeDjui2LGSidEHcJ@bfoster>","References":"<20260416030642.26744-1-changfengnan@bytedance.com>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20260416030642.26744-1-changfengnan@bytedance.com>","X-Scanned-By":"MIMEDefang 3.4.1 on 10.30.177.93","X-Spam-Status":"No, score=2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tHEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_SBL_CSS,\n\tSPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1","X-Spam-Level":"**","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}},{"id":3678254,"web_url":"http://patchwork.ozlabs.org/comment/3678254/","msgid":"<20260416152705.GC114239@frogsfrogsfrogs>","list_archive_url":null,"date":"2026-04-16T15:27:05","subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","submitter":{"id":77032,"url":"http://patchwork.ozlabs.org/api/people/77032/","name":"Darrick J. Wong","email":"djwong@kernel.org"},"content":"On Thu, Apr 16, 2026 at 09:27:22AM -0400, Brian Foster wrote:\n> On Thu, Apr 16, 2026 at 11:06:42AM +0800, Fengnan Chang wrote:\n> > When iomap_iter() finishes its iteration (returns <= 0), it is no longer\n> > necessary to memset the entire iomap and srcmap structures.\n> > \n> > In high-IOPS scenarios (like 4k randread NVMe polling with io_uring),\n> > where the majority of I/Os complete in a single extent map, this wasted\n> > memory write bandwidth, as the caller will just discard the iterator.\n> > \n> > Use this command to test:\n> > taskset -c 30 ./t/io_uring -p1 -d512 -b4096 -s32 -c32 -F1 -B1 -R1 -X1\n> > -n1 -P1 /mnt/testfile\n> > IOPS improve about 5% on ext4 and XFS.\n> > \n> > However, we MUST still call iomap_iter_reset_iomap() to release the\n> > folio_batch if IOMAP_F_FOLIO_BATCH is set, otherwise we leak page\n> > references. Therefore, split the cleanup logic: always release the\n> > folio_batch, but skip the memset() when ret <= 0.\n> > \n> > Signed-off-by: Fengnan Chang <changfengnan@bytedance.com>\n> > ---\n> >  fs/iomap/iter.c | 5 +++--\n> >  1 file changed, 3 insertions(+), 2 deletions(-)\n> > \n> > diff --git a/fs/iomap/iter.c b/fs/iomap/iter.c\n> > index c04796f6e57f..91eb5e6165ff 100644\n> > --- a/fs/iomap/iter.c\n> > +++ b/fs/iomap/iter.c\n> > @@ -15,8 +15,6 @@ static inline void iomap_iter_reset_iomap(struct iomap_iter *iter)\n> >  \t}\n> >  \n> >  \titer->status = 0;\n> > -\tmemset(&iter->iomap, 0, sizeof(iter->iomap));\n> > -\tmemset(&iter->srcmap, 0, sizeof(iter->srcmap));\n> >  }\n> >  \n> >  /* Advance the current iterator position and decrement the remaining length */\n> > @@ -106,6 +104,9 @@ int iomap_iter(struct iomap_iter *iter, const struct iomap_ops *ops)\n> >  \tif (ret <= 0)\n> >  \t\treturn ret;\n> >  \n> > +\tmemset(&iter->iomap, 0, sizeof(iter->iomap));\n> > +\tmemset(&iter->srcmap, 0, sizeof(iter->srcmap));\n> > +\n> \n> This seems reasonable to me in principle, but it feels a little odd to\n> leave a reset helper that doesn't really do a \"reset.\" I wonder if this\n> should be refactored into an iomap_iter_complete() (i.e. \"complete an\n> iteration\") helper that includes the ret assignment logic just above the\n> reset call and returns it, and then maybe leave a oneline comment above\n> the memset so somebody doesn't blindly fold it back in the future. So\n> for example:\n> \n> \tret = iomap_iter_complete(iter);\n> \tif (ret <= 0)\n> \t\treturn ret;\n> \n> \t/* save cycles and only clear the mappings if we plan to iterate */\n> \tmemset(..);\n> \t...\n> \n> We'd probably have to recheck some of the iter state within the new\n> helper, but that doesn't seem like a big deal to me. Thoughts?\n\nWhat kind of computer is this where there's a 5% hit to iops from a\nmemset of ~150 bytes?\n\n--D\n\n> Brian\n> \n> >  begin:\n> >  \tret = ops->iomap_begin(iter->inode, iter->pos, iter->len, iter->flags,\n> >  \t\t\t       &iter->iomap, &iter->srcmap);\n> > -- \n> > 2.39.5 (Apple Git-154)\n> > \n> > \n>","headers":{"Return-Path":"\n <SRS0=cs6D=CP=vger.kernel.org=linux-ext4+bounces-15874-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=Wk5JJUcc;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=cs6d=cp=vger.kernel.org=linux-ext4+bounces-15874-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c0a:e001:db::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=Wk5JJUcc;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15874-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"Wk5JJUcc\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxMRH5V95z1yG9\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 01:30:51 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fxMRB4N3Xz4wQg\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 01:30:46 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fxMRB4217z4wSQ; Fri, 17 Apr 2026 01:30:46 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fxMR70Jx0z4wQg\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 01:30:43 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id AABAA3126B3A\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 16 Apr 2026 15:27:07 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id E01533D412C;\n\tThu, 16 Apr 2026 15:27:06 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id A1FC082866;\n\tThu, 16 Apr 2026 15:27:06 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 3C1EDC2BCB3;\n\tThu, 16 Apr 2026 15:27:06 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776353446; cv=pass;\n\tb=X9ooQimFxxxeQjJfmp2wKyeJwKNxUg7xNxT1Drvg+nOunN7Hmv+jPKtkJWpX+qRKHuGqqGvEx8w6obc4Il6WHnJZtadcGwkvdWXQBLht6mHDx+nKD8Y+vnFsGAYtN9QodgBz4Ua/DxYepLLfXeZnqfALm155s2GP52LXOJ55JKDCUiTcnZezzUVpIcQkoKRhsv/L8eEQBnEZlcgCKIEtyVXdL+NP5T6Zp5ntTqLrxBEVNuOF3gG41yb7GDndUez5X3AX5G2CuZBeVOS7+ACdQDOWR3Z+qmqgo2bxkIqQxFNM9xzxA2OK0DQIlXCtlTzAoZWZq1KCPZ5iySROCC8vYQ==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776353226; cv=none;\n b=WVuVbbMRcF7N4CbwgcEDhAwHZ3GL+x8Z1hnx2UhxacMy435VyCt2HGO3cr4pjcLZV2JcbCRfBwnntt5ltyX83vKrNt9hV28jpjleDc9wfr9wXgO7hJepG1dYwiB+I4AOT1j7kUEHy27F/y1uoWtSxOgQbQbm541Ymr+FgD4w0Lc="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776353446; c=relaxed/relaxed;\n\tbh=dn7URpm+9wUg0VoW5XhLzSac0yvwT7+OpoCDAwDNU9E=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=qkKqr1OhG1rf6PWJttY1ZMvvPG9EeFGeQHsSllkiD3HVb2GKL17QJSxf2EqReDeoyaCyB522DCvLxnkyKG6NA9iKDTxmcQky/slB2j9oShk60luqobKUSoiebWX4lubj4okSh+atpzsNnd4ivTpjo/5kKiqwJIxo+QyAiL80bmTjO9KXPdmd+BjhD/DvFwHI7sRuHlQVccqUHtmA0KgQwGZWMcc4GJmRgknQ5d7yI20imuv4WUbFHDVC2EoJ6XitBWU9Ya+XwvNWeHIXgu08D/pyTdqrtW2RKq7m3SmVKjdgBk6Lu1935JWfKvJaJ71axNqunOJypHzBWSUt110CEA==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776353226; c=relaxed/simple;\n\tbh=H4BmPxyqX2E4a8qYvk7g0xnwqxdhSY+TSXE2SIW32J0=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=ZO0SGbP7k91rPtVEN2SrkOvCGq2ucISTUg1EvrkuPZ8hghn8X3bVKnM2sO/bK98tmFHhkwEOvkqnoMw+Enbqs8HEVjmkAgtvqYFsUk/esjo/2AFp6Rp24tKbyVW8DxeOuDsJgyxYpWFujreTzQWTHt7oxq0L03+CLp5gOMpUmq4="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=Wk5JJUcc; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15874-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=Wk5JJUcc; arc=none smtp.client-ip=10.30.226.201"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776353226;\n\tbh=H4BmPxyqX2E4a8qYvk7g0xnwqxdhSY+TSXE2SIW32J0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Wk5JJUccoCgVfYPao+2KUosa+4qGSBvc4Nt3UX4Tv8EUx7LGabDYyCeMly4ha2Q3s\n\t ekgjW43HNhDzmJOyVqGrtYhktQheQP8oFoaCzK9FNeywritXUpI7VbHgGGMjPfoP3j\n\t Q+GuzmZ1V5UGH6I2O5la2JbFeu8BlmDF38/lK3QGpebQfttA9f/PhISwLan+71fI8m\n\t WPwf7+AJSswFCCBHTN2axGhbcRn6ScI3stiP9qnqrOGRjB3V8vkvzxT9bYUa9eoK/m\n\t 2VDzvH32BTDkLN6dJNpym+L707efOO1WpMI6pZ2iA91MSXDESV8eQPgEFo1caBZGbg\n\t nqeEoNYnCQA+w==","Date":"Thu, 16 Apr 2026 08:27:05 -0700","From":"\"Darrick J. Wong\" <djwong@kernel.org>","To":"Brian Foster <bfoster@redhat.com>","Cc":"Fengnan Chang <fengnanchang@gmail.com>, brauner@kernel.org,\n\thch@infradead.org, linux-xfs@vger.kernel.org,\n\tlinux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,\n\tlidiangang@bytedance.com,\n\tFengnan Chang <changfengnan@bytedance.com>","Subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","Message-ID":"<20260416152705.GC114239@frogsfrogsfrogs>","References":"<20260416030642.26744-1-changfengnan@bytedance.com>\n <aeDjui2LGSidEHcJ@bfoster>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<aeDjui2LGSidEHcJ@bfoster>","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}},{"id":3678415,"web_url":"http://patchwork.ozlabs.org/comment/3678415/","msgid":"<aeFlvXDShzIuOU9z@dread>","list_archive_url":null,"date":"2026-04-16T22:42:05","subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","submitter":{"id":93171,"url":"http://patchwork.ozlabs.org/api/people/93171/","name":"Dave Chinner","email":"dgc@kernel.org"},"content":"On Thu, Apr 16, 2026 at 08:27:05AM -0700, Darrick J. Wong wrote:\n> On Thu, Apr 16, 2026 at 09:27:22AM -0400, Brian Foster wrote:\n> > On Thu, Apr 16, 2026 at 11:06:42AM +0800, Fengnan Chang wrote:\n> > > When iomap_iter() finishes its iteration (returns <= 0), it is no longer\n> > > necessary to memset the entire iomap and srcmap structures.\n> > > \n> > > In high-IOPS scenarios (like 4k randread NVMe polling with io_uring),\n> > > where the majority of I/Os complete in a single extent map, this wasted\n> > > memory write bandwidth, as the caller will just discard the iterator.\n> > > \n> > > Use this command to test:\n> > > taskset -c 30 ./t/io_uring -p1 -d512 -b4096 -s32 -c32 -F1 -B1 -R1 -X1\n> > > -n1 -P1 /mnt/testfile\n> > > IOPS improve about 5% on ext4 and XFS.\n> > > \n> > > However, we MUST still call iomap_iter_reset_iomap() to release the\n> > > folio_batch if IOMAP_F_FOLIO_BATCH is set, otherwise we leak page\n> > > references. Therefore, split the cleanup logic: always release the\n> > > folio_batch, but skip the memset() when ret <= 0.\n> > > \n> > > Signed-off-by: Fengnan Chang <changfengnan@bytedance.com>\n> > > ---\n> > >  fs/iomap/iter.c | 5 +++--\n> > >  1 file changed, 3 insertions(+), 2 deletions(-)\n> > > \n> > > diff --git a/fs/iomap/iter.c b/fs/iomap/iter.c\n> > > index c04796f6e57f..91eb5e6165ff 100644\n> > > --- a/fs/iomap/iter.c\n> > > +++ b/fs/iomap/iter.c\n> > > @@ -15,8 +15,6 @@ static inline void iomap_iter_reset_iomap(struct iomap_iter *iter)\n> > >  \t}\n> > >  \n> > >  \titer->status = 0;\n> > > -\tmemset(&iter->iomap, 0, sizeof(iter->iomap));\n> > > -\tmemset(&iter->srcmap, 0, sizeof(iter->srcmap));\n> > >  }\n> > >  \n> > >  /* Advance the current iterator position and decrement the remaining length */\n> > > @@ -106,6 +104,9 @@ int iomap_iter(struct iomap_iter *iter, const struct iomap_ops *ops)\n> > >  \tif (ret <= 0)\n> > >  \t\treturn ret;\n> > >  \n> > > +\tmemset(&iter->iomap, 0, sizeof(iter->iomap));\n> > > +\tmemset(&iter->srcmap, 0, sizeof(iter->srcmap));\n> > > +\n> > \n> > This seems reasonable to me in principle, but it feels a little odd to\n> > leave a reset helper that doesn't really do a \"reset.\" I wonder if this\n> > should be refactored into an iomap_iter_complete() (i.e. \"complete an\n> > iteration\") helper that includes the ret assignment logic just above the\n> > reset call and returns it, and then maybe leave a oneline comment above\n> > the memset so somebody doesn't blindly fold it back in the future. So\n> > for example:\n> > \n> > \tret = iomap_iter_complete(iter);\n> > \tif (ret <= 0)\n> > \t\treturn ret;\n> > \n> > \t/* save cycles and only clear the mappings if we plan to iterate */\n> > \tmemset(..);\n> > \t...\n> > \n> > We'd probably have to recheck some of the iter state within the new\n> > helper, but that doesn't seem like a big deal to me. Thoughts?\n> \n> What kind of computer is this where there's a 5% hit to iops from a\n> memset of ~150 bytes?\n\nEven small costs can have a big impact when you have to pay it many\ntimes.\n\ni.e. 2 million IOPS * 2 * 72 bytes per IO = 288MB/s of memory being\nzeroed unnecessarily in very small (inefficient) chunks.\n\nThat's definitely enough to cause a 5% drop in IOPS when the\nworkload is CPU or memory bandwidth bound....\n\n-Dave.","headers":{"Return-Path":"\n <SRS0=Es2d=CP=vger.kernel.org=linux-ext4+bounces-15878-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=KoZyHhk8;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=es2d=cp=vger.kernel.org=linux-ext4+bounces-15878-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=172.234.253.10 arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=KoZyHhk8;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15878-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"KoZyHhk8\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxY1N3QDSz1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 08:42:32 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fxY1G5v6Hz4wKw\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 08:42:26 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fxY1G5cwDz4wL0; Fri, 17 Apr 2026 08:42:26 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fxY1C3FY0z4wKw\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 08:42:23 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id DD87E305D6CB\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 16 Apr 2026 22:42:17 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id ABD4A382396;\n\tThu, 16 Apr 2026 22:42:16 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 6964935AC2F;\n\tThu, 16 Apr 2026 22:42:16 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id A8994C2BCAF;\n\tThu, 16 Apr 2026 22:42:10 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776379346; cv=pass;\n\tb=eZX07BwkpfCb7Ll4nrzBZ3NJvw54hhfuS9b767p5CtdXcj/RkttRIvGujhVYoV43/taBe8EmpTygbVu35XBrwADnEEC/p2aR4d/FexPIo/CRjw9PPFFSltgLcW1KWN1aZbAZHQaqZGS/86D466y8L93srNADPqje5R/jNZ3ENwuiRzgrkx6KQcUkO34HBA2r3QtdEQ4/0mZicKpsJZ/TC1CUMPz/KqEnKNrq8SSmv8OnulSuESI5SDQBlli0lyRQNx2wAW99F7TD3yCSQxqCY0YlgWFi/6el8asqskyJXQqBr+ZM73a6+8khjj/qJ82WoSqTwjTfvi1vjkwKBuJ3hw==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776379336; cv=none;\n b=u6mbLVZSnRSunSui/JnzUDHtZF7mf8457ICv1sEu+TSiIAdlkHywWxAutzFUsYHZ4DwQXAHXejn2OFMmAeBUega8lXtzcFiPddqUit8mUtM6cVusmLay4cjtVMfgsDjU+dxatqmGJ/6/tpSYyME8hkHvC6J5tdYtcRHnsUgLMTQ="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776379346; c=relaxed/relaxed;\n\tbh=Ea6Q7ybomkyCoMUc1HeE5p5eGP7eiKC5K/XlszPuV+o=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=lFe4+RjdAEHthm4p9xKwkV3bW5N79H8CiHfs3BuBiCTdqXzSq1CyXVYq8cWtIXXs7iBOnikdVjGSgS7Xr7Hqnpak93PIPNgT1nzQz3+J+a+lA8J1nDFvuUTHoqGCEVh5u85DXzJAZrhJcMbLm4JA00klNVXTchmRkIXQpibQCpD2JTbIVUxFeJJfdIRBIYimkSI9FdPmpizg3ouXeWnmwhGy2TQg+dtuElublSkgF6dZvSs+5V4wYFunH1t19os7m9bxFkTvGWY7sfug5ryWCqXukhRvBrQ1AYXbJOo4alcIIpoChAN5Yd8Im5j+7JQfhg0ulthGtmpwIFA51WnqsA==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776379336; c=relaxed/simple;\n\tbh=lapdISy5RqxJgrImNGTKA7C/+JI+0anxuZfW02LMH1U=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=jmb7kl0c8hORJI+hGcX0NHuhGCvX6NBsEK5uff8ShOjEj1lVb3RpKMtiaqEAG8ZloTy6Nqk0vewUb1zWNPkmCvVQmAPgszkeTD/piM4grwJ1O0ewDpvHhPMidgV2s7JNx02HAbu/yjMjbzRDfgCNI6mZ8+K5D/6eaPD8hMb12Qc="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=KoZyHhk8; dkim-atps=neutral;\n spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15878-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=KoZyHhk8; arc=none smtp.client-ip=10.30.226.201"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776379336;\n\tbh=lapdISy5RqxJgrImNGTKA7C/+JI+0anxuZfW02LMH1U=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=KoZyHhk8fCQGYDsMFMrFstPGBhyKqaz6hhSvWwqTtmllYak7w0Rv5jehwIh5+sQQi\n\t vUhTz4WwcSQPqsQq9wXo6nLSuWntQHd+iacia7NbM//BOhwWuPcktLjtycXn9pa+at\n\t UDj23839d7b1eFVy3u0bZ3PNZ2nxfTF9XRcGb9ZSUXKwlktVXy83usG2qm1AQM8paJ\n\t byMpPNc6bOSHivyW5CtEaG+ZExgKi1IX/5D88u0AmGLOV1TJEM7pN+jdWPWOs6LX6+\n\t GvyBdRWzAjaImNQiwDTj4laVfTZYlC4eMUHkvOw6mkteoXuIfCNK2Y9Nh+nQoWNFOa\n\t g/9lAexFRteoA==","Date":"Fri, 17 Apr 2026 08:42:05 +1000","From":"Dave Chinner <dgc@kernel.org>","To":"\"Darrick J. Wong\" <djwong@kernel.org>","Cc":"Brian Foster <bfoster@redhat.com>,\n\tFengnan Chang <fengnanchang@gmail.com>, brauner@kernel.org,\n\thch@infradead.org, linux-xfs@vger.kernel.org,\n\tlinux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,\n\tlidiangang@bytedance.com,\n\tFengnan Chang <changfengnan@bytedance.com>","Subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","Message-ID":"<aeFlvXDShzIuOU9z@dread>","References":"<20260416030642.26744-1-changfengnan@bytedance.com>\n <aeDjui2LGSidEHcJ@bfoster>\n <20260416152705.GC114239@frogsfrogsfrogs>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20260416152705.GC114239@frogsfrogsfrogs>","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}},{"id":3678431,"web_url":"http://patchwork.ozlabs.org/comment/3678431/","msgid":"<hgug5jbkwk352zrwcngdofwiy2hq4nk7eq7yvzi6nru5zyebd2@fe64yziutvlk>","list_archive_url":null,"date":"2026-04-16T23:20:27","subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","submitter":{"id":85593,"url":"http://patchwork.ozlabs.org/api/people/85593/","name":"Mateusz Guzik","email":"mjguzik@gmail.com"},"content":"On Thu, Apr 16, 2026 at 08:27:05AM -0700, Darrick J. Wong wrote:\n> What kind of computer is this where there's a 5% hit to iops from a\n> memset of ~150 bytes?\n> \n\nSuch a memset is not free in its own right, but here the real problem is\n*how* it is done: by default gcc emits inlined 'rep stosq' which has\nutterly horrid performance (same as 'rep movsq') and in this particular\ncase the 2 memsets in the source code result in 2 separate 'rep movsq'\ninvocations.\n\nI complained about it numerous times, see this to get a taste:\nhttps://lore.kernel.org/all/20250605164733.737543-1-mjguzik@gmail.com/\n\nAlso see\nhttps://lore.kernel.org/all/202504181042.54ea2b8a-lkp@intel.com/\n\nIf memory serves right gcc is going to fix it, so this is largely going\nto clear itself down the road.","headers":{"Return-Path":"\n <SRS0=HN0q=CP=vger.kernel.org=linux-ext4+bounces-15879-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=m4J6vtIQ;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=hn0q=cp=vger.kernel.org=linux-ext4+bounces-15879-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=172.234.253.10 arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=m4J6vtIQ;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15879-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"m4J6vtIQ\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.128.50","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxYtq5ynLz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 09:21:54 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fxYtp2RLjz4wJJ\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 09:21:54 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fxYtp2MqTz4wLD; Fri, 17 Apr 2026 09:21:54 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fxYtk0jprz4wJJ\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 09:21:50 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 427BC305377C\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 16 Apr 2026 23:21:45 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 3ACBE3A0B1D;\n\tThu, 16 Apr 2026 23:21:43 +0000 (UTC)","from mail-wm1-f50.google.com (mail-wm1-f50.google.com\n [209.85.128.50])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id C05BA39DBDB\n\tfor <linux-ext4@vger.kernel.org>; Thu, 16 Apr 2026 23:21:41 +0000 (UTC)","by mail-wm1-f50.google.com with SMTP id\n 5b1f17b1804b1-4888375f735so698985e9.3\n        for <linux-ext4@vger.kernel.org>;\n Thu, 16 Apr 2026 16:21:41 -0700 (PDT)","from f (cst-prg-89-171.cust.vodafone.cz. [46.135.89.171])\n        by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-43fe43021cfsm429354f8f.2.2026.04.16.16.21.37\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Thu, 16 Apr 2026 16:21:39 -0700 (PDT)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776381714; cv=pass;\n\tb=G/J+KiNRPH88vkA7CG4L1gaJ1H9j0mEAOwZKnLgAN+JtEJnXql+llTasG0XREi0dUgTphEJ1cnQFHwhocqBxv6hti+gtU28nc8ps0OnXEjH1Cc+EbP6/ab58YlAKwOl133gj6aPFxC8Ene9f7qyfEVobbTjhphCGvHtgakRIOpvtuSABYmsqvimAk9/gWKhVqqg/hdxLXeHLfrZ3IKLZ1csCkvjsJcAOkuRrbWskXwMXifoWOjYWWdlTrcBMeqg6Gcn26iXOFLW34MYXlghFNtNll8ouPZOEbrFCWS3Uxk/lc6QF/U6j0dBN3vL9RwVWt6q7Rhi8eXEMWvi6+QEYhQ==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776381703; cv=none;\n b=fu7hfNir9w696urMc0FYNf84e8wVRvFioOGHkf8HV5LcldZj3kHbeuMyLtDo67MbI5MQD5A6OxKqFjgxZl96DA04qUlsmSCgPCRjU9n5ZAW9I0nxogrvy06DLRjPKHlRor707FIN3mEFjnBaBy9E8FxcPELcYSdR79Vy8NmNzeQ="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776381714; c=relaxed/relaxed;\n\tbh=gtSi1JUHvm8h9ZtScbheLnAanBRgPo0T9nN7jS0tLq8=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=AYRlAEQJeJVrhxESnEWnPbL/mOZ3fnFjyaZ53wkpbXW9sO4iMh4hGTsXBdDCREpTqPJns14HmijZqEaNjGUwmh7i8nkqUd1eH1Rh7CByQJNHrC9G3d0EZD4KFl15DG3R7dAQgU/6GCCY38dUJapb9MhDD9Id9s4xMMadwa/oM9BcMDTx1uLIfXhDcWckqs5rMvGNIIgM157d6qDFiLq6TnK1Ea49DuwlWUcKDDDlEo2hslhUisa6fOBHG6jbqe2IrFilrgE06a7kL9iUA43metnG4xZXNr7aeEt3UaPtG7xBFA5cd/iv74YSApmZ+Fb7YzGFvVezu+hsL7ExW36Czg==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776381703; c=relaxed/simple;\n\tbh=1zJh+gMNLh3n9Gp3wdZERWR7klivM5dIWbl3gOrvCZw=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=F5zatPnBgcg51QUeyxPkIVQ9SEloS6BS1X3U0lYPXZT+ChLyL6FjI+uQ6uR5gnQlzqDdmxdhMe8317GApZjlqryBqO6LNzsv6hiv5I+rzIor29UJ4eBgsdy0vbm9qKmKzagcuMxOwUXqDgs5EovbTthwz0Po1ohbXL37cd2+teo="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com; dkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=m4J6vtIQ; dkim-atps=neutral;\n spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15879-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=m4J6vtIQ; arc=none smtp.client-ip=209.85.128.50"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1776381700; x=1776986500;\n darn=vger.kernel.org;\n        h=in-reply-to:content-disposition:mime-version:references:message-id\n         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;\n        bh=gtSi1JUHvm8h9ZtScbheLnAanBRgPo0T9nN7jS0tLq8=;\n        b=m4J6vtIQ0er4WBcUyW7Vs+GyWO0eI3k33YIr6/cLkiRai6ad7kokNdfk6bnBBbVgu7\n         p03pcRtlu4Wga1uf7P1AV3TP6JETrN+3zf+UemEd1fio6FClZGj2UzHczYkQcHxdDTeI\n         0s4j0Zw/AGYXKZ9g/3lNbLmfKfUeRDHMBtdOM2LENcL97WWm0tpNQwSV1ityaWu7Eqk+\n         0cASWkUhGEYG+oO9GB4ZqcGIw7nWo7h9rnXljqMD1YnlFu/VCC/Rsv3DkQaFd2f66vQ+\n         64ErKCHXqABWqma8RppIWHqO/jLA7SIT5TAjvYUm0HRoYkwNcSAGjl/tzthmVqZ/Six8\n         LQyA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1776381700; x=1776986500;\n        h=in-reply-to:content-disposition:mime-version:references:message-id\n         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc\n         :subject:date:message-id:reply-to;\n        bh=gtSi1JUHvm8h9ZtScbheLnAanBRgPo0T9nN7jS0tLq8=;\n        b=glM0ER1IhoQgczJPvwaLkHhF4XpiihF+vuZB9J+LIAggBXeAxyne5JbnHGywFdt3wc\n         GIARiaqTqCPkMH6BFQFbL8R1nr+xy2M3EhFDG2VUUyyctpLqao9x93a1G6IhgViL4BQa\n         0dF9HdPt2aXrtUvacPKMT1IFr6U7NDphNlYBja8kCYDqMyOdhZqqu6RFLhwpoK6VcYXg\n         hO2MdVoUDE7eqU5rw5/BohZ6jT/iDF5I2TlXgQ3cTlnipdgb0BiZclQQCXK4j6SAkcQ2\n         TslLmQwa76O0mvasEK/awOmpfz8RFU8upqkUEO6BDflmSlH83y1Gbv533oEsS9INbUbU\n         F45A==","X-Forwarded-Encrypted":"i=1;\n AFNElJ9MZnfgD9GwnzNWZmAxJ+6QRcIcpgJyZT76raMUazGver3tLwyXmHxTU942MFu8OKXiutbSzaZWVfx7@vger.kernel.org","X-Gm-Message-State":"AOJu0Yw2n6aqr09MIawdSD/c+Jlie576KTGfx3ugdQohTcL/o94lr9pf\n\tdcPXUK0OL4L6ASEuabrkweazehD4HaQTBk/4yTt5jTUN+tT7ER5SkPSY","X-Gm-Gg":"AeBDiet4n/NRGE0DuNZHJY2ESmAGrgru0YspWtKxXJP/qqVcsfWM/rXqT973U/Nlhp5\n\t772ocRi98gRNc/RSARoPzt1+KqwBz0P94zxGewcEJ6NCDd/GXA5egX0uxVTvL6FrnvuBae+m3xk\n\tNmdFfWN5tLGHiSynB7ycI9YGPX1l22rvY/BcYW3fJTHb0NJ49BWUpcwY4Kf0M1aFsP2BXO5+8os\n\t0HuAYj8n73ByfcyT7mnkOmyCvg4cLISQ0cjHsH0FMhoSCbpz/Xr2o8eZVsQtEKXO9XNiCueRmlH\n\tS+P/PO1d6KwC+0e8eSVeLiTm34wDUbETZEOp76bVjKEMIH+MCRq+WesmaHj7/vTnD6iISnt3h7V\n\tX1FnlgBu4Ciu4ACPBcv3c/cTD0EUmOaQ5OZdZQoapS2u9NMzUI9OQJB5Zdhdt//XmHIa/qa95Po\n\tqJYzv00jCcrI0eJlQvQXHIiBwKQzhaRUEuZN5/I1pRVE9iF1sACi1HpW7p4YigqMKqgZyWqdndB\n\tviYUcTvcmgWPz8bAODa","X-Received":"by 2002:a05:600c:34c3:b0:485:41c4:e2e4 with SMTP id\n 5b1f17b1804b1-488fb792dd0mr7666275e9.23.1776381700006;\n        Thu, 16 Apr 2026 16:21:40 -0700 (PDT)","Date":"Fri, 17 Apr 2026 01:20:27 +0200","From":"Mateusz Guzik <mjguzik@gmail.com>","To":"\"Darrick J. Wong\" <djwong@kernel.org>","Cc":"Brian Foster <bfoster@redhat.com>,\n\tFengnan Chang <fengnanchang@gmail.com>, brauner@kernel.org,\n hch@infradead.org, linux-xfs@vger.kernel.org,\n\tlinux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,\n lidiangang@bytedance.com,\n\tFengnan Chang <changfengnan@bytedance.com>","Subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","Message-ID":"<hgug5jbkwk352zrwcngdofwiy2hq4nk7eq7yvzi6nru5zyebd2@fe64yziutvlk>","References":"<20260416030642.26744-1-changfengnan@bytedance.com>\n <aeDjui2LGSidEHcJ@bfoster>\n <20260416152705.GC114239@frogsfrogsfrogs>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20260416152705.GC114239@frogsfrogsfrogs>","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tFREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}},{"id":3678450,"web_url":"http://patchwork.ozlabs.org/comment/3678450/","msgid":"<d9210bcdf73fbe1ac8b6ec132865609a3ed68688.2a887e59.940e.4103.87d7.62770ee521ce@bytedance.com>","list_archive_url":null,"date":"2026-04-17T02:15:14","subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","submitter":{"id":85004,"url":"http://patchwork.ozlabs.org/api/people/85004/","name":"Fengnan Chang","email":"changfengnan@bytedance.com"},"content":"> From: \"Dave Chinner\"<dgc@kernel.org>\n> Date:  Fri, Apr 17, 2026, 06:42\n> Subject:  Re: [PATCH] iomap: avoid memset iomap when iter is done\n> To: \"Darrick J. Wong\"<djwong@kernel.org>\n> Cc: \"Brian Foster\"<bfoster@redhat.com>, \"Fengnan Chang\"<fengnanchang@gmail.com>, <brauner@kernel.org>, <hch@infradead.org>, <linux-xfs@vger.kernel.org>, <linux-fsdevel@vger.kernel.org>, <linux-ext4@vger.kernel.org>, <lidiangang@bytedance.com>, \"Fengnan Chang\"<changfengnan@bytedance.com>\n> On Thu, Apr 16, 2026 at 08:27:05AM -0700, Darrick J. Wong wrote:\n> > On Thu, Apr 16, 2026 at 09:27:22AM -0400, Brian Foster wrote:\n> > > On Thu, Apr 16, 2026 at 11:06:42AM +0800, Fengnan Chang wrote:\n> > > > When iomap_iter() finishes its iteration (returns <= 0), it is no longer\n> > > > necessary to memset the entire iomap and srcmap structures.\n> > > > \n> > > > In high-IOPS scenarios (like 4k randread NVMe polling with io_uring),\n> > > > where the majority of I/Os complete in a single extent map, this wasted\n> > > > memory write bandwidth, as the caller will just discard the iterator.\n> > > > \n> > > > Use this command to test:\n> > > > taskset -c 30 ./t/io_uring -p1 -d512 -b4096 -s32 -c32 -F1 -B1 -R1 -X1\n> > > > -n1 -P1 /mnt/testfile\n> > > > IOPS improve about 5% on ext4 and XFS.\n> > > > \n> > > > However, we MUST still call iomap_iter_reset_iomap() to release the\n> > > > folio_batch if IOMAP_F_FOLIO_BATCH is set, otherwise we leak page\n> > > > references. Therefore, split the cleanup logic: always release the\n> > > > folio_batch, but skip the memset() when ret <= 0.\n> > > > \n> > > > Signed-off-by: Fengnan Chang <changfengnan@bytedance.com>\n> > > > ---\n> > > >  fs/iomap/iter.c | 5 +++--\n> > > >  1 file changed, 3 insertions(+), 2 deletions(-)\n> > > > \n> > > > diff --git a/fs/iomap/iter.c b/fs/iomap/iter.c\n> > > > index c04796f6e57f..91eb5e6165ff 100644\n> > > > --- a/fs/iomap/iter.c\n> > > > +++ b/fs/iomap/iter.c\n> > > > @@ -15,8 +15,6 @@ static inline void iomap_iter_reset_iomap(struct iomap_iter *iter)\n> > > >          }\n> > > >  \n> > > >          iter->status = 0;\n> > > > -        memset(&iter->iomap, 0, sizeof(iter->iomap));\n> > > > -        memset(&iter->srcmap, 0, sizeof(iter->srcmap));\n> > > >  }\n> > > >  \n> > > >  /* Advance the current iterator position and decrement the remaining length */\n> > > > @@ -106,6 +104,9 @@ int iomap_iter(struct iomap_iter *iter, const struct iomap_ops *ops)\n> > > >          if (ret <= 0)\n> > > >                  return ret;\n> > > >  \n> > > > +        memset(&iter->iomap, 0, sizeof(iter->iomap));\n> > > > +        memset(&iter->srcmap, 0, sizeof(iter->srcmap));\n> > > > +\n> > > \n> > > This seems reasonable to me in principle, but it feels a little odd to\n> > > leave a reset helper that doesn't really do a \"reset.\" I wonder if this\n> > > should be refactored into an iomap_iter_complete() (i.e. \"complete an\n> > > iteration\") helper that includes the ret assignment logic just above the\n> > > reset call and returns it, and then maybe leave a oneline comment above\n> > > the memset so somebody doesn't blindly fold it back in the future. So\n> > > for example:\n> > > \n> > >         ret = iomap_iter_complete(iter);\n> > >         if (ret <= 0)\n> > >                 return ret;\n> > > \n> > >         /* save cycles and only clear the mappings if we plan to iterate */\n> > >         memset(..);\n> > >         ...\n> > > \n> > > We'd probably have to recheck some of the iter state within the new\n> > > helper, but that doesn't seem like a big deal to me. Thoughts?\n> > \n> > What kind of computer is this where there's a 5% hit to iops from a\n> > memset of ~150 bytes?\n> \n> Even small costs can have a big impact when you have to pay it many\n> times.\n> \n> i.e. 2 million IOPS * 2 * 72 bytes per IO = 288MB/s of memory being\n> zeroed unnecessarily in very small (inefficient) chunks.\n> \n> That's definitely enough to cause a 5% drop in IOPS when the\n> workload is CPU or memory bandwidth bound....\n\nMy CPU is  Intel(R) Xeon(R) Platinum 8457C with 1TB RAM, NVMe is \nPS1010 and the system is very idle, only run one command with one core:\ntaskset -c 30 ./t/io_uring -p1 -d512 -b4096 -s32 -c32 -F1 -B1 -R1 \\\n-X1 -n1 -P1 /mnt/mytest，IOPS  improved from 1.9M to 2.0M.\nMy test is a CPU bound case，these two memset operations should\nhave taken only about 15 nanoseconds. at 2.0 million IOPS, the total \nCPU time budget per I/O operation averages just 500 nanoseconds.\nTaking into account the impact on the pipeline and the L1 cache, a 5%\nimprovement is reasonable.\n\n> \n> -Dave.\n> -- \n> Dave Chinner\n> dgc@kernel.org\n>","headers":{"Return-Path":"\n <SRS0=kI+8=CQ=vger.kernel.org=linux-ext4+bounces-15880-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=bytedance.com header.i=@bytedance.com\n header.a=rsa-sha256 header.s=2212171451 header.b=IG4gWBEY;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=ki+8=cq=vger.kernel.org=linux-ext4+bounces-15880-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c0a:e001:db::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=bytedance.com header.i=@bytedance.com\n header.a=rsa-sha256 header.s=2212171451 header.b=IG4gWBEY;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15880-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com\n header.b=\"IG4gWBEY\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.127.230.114","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=bytedance.com"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxdnf6V44z1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 12:17:42 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fxdnY1lnmz4wM8\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 12:17:37 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fxdnY1DgBz4wQg; Fri, 17 Apr 2026 12:17:37 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fxdnS4sN3z4wM8\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 12:17:32 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id AC7E830880BB\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 02:15:32 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 35389274641;\n\tFri, 17 Apr 2026 02:15:32 +0000 (UTC)","from va-1-114.ptr.blmpb.com (va-1-114.ptr.blmpb.com\n [209.127.230.114])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 37F122AD00\n\tfor <linux-ext4@vger.kernel.org>; Fri, 17 Apr 2026 02:15:29 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776392257; cv=pass;\n\tb=D7FjA9zrQVTDH62K3iti78zJFNB8yOxLPWY+MVf0ZhZlO2p8HBZmTzNuasX55M1svoJLWlfT2Iv0mbedJL49wmdfq7V6xx4Lp2w8pd8KQgZEgbl4upYlh+Obl/kPk0RAb2D0JWmDnZ4mze1HfSF+iOG87BkEiT3f7GDcVy9CnFAFNdIOmIRmHm9zQX2miN9T4hRZ6xtGte18RcsqOz5bco+cFPgFOyYgNUbBVutCJKIvJqtsi+raRLQCxuA9s+MgEWMYcWj9HN/iE5m7zBBWyv7cwdJbz7w9gkm9xKctSpU75HarRkILPsyZ81jNyS1jIjFC88XYm5w51el5qVaXeg==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776392132; cv=none;\n b=mX1JXAbXhPN9ukliJA60KcVUT5AV8bAflC7SbWr49bPCgj+Bf16OOcXON8myykwFbgfi6F29zb8Sifcf58j2X7dIsFWJjvAronFRYyC6IuClSUGonIlgxrYNXSE77v5Cl3cN3Jn/0yLXsr3qjpdGwEmvLjTgA518AdpeyRN+FA0="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776392257; c=relaxed/relaxed;\n\tbh=0/lyXGkKFiSZc8pIApTKDpiVFRf4a8ueh+JFKqqvjT4=;\n\th=Cc:Subject:References:Content-Type:Date:Message-Id:To:From:\n\t Mime-Version:In-Reply-To;\n b=M2P6fYnifVa1JRG8D+cMfHLCck93zS2QUodp5la6K6Sdcjrans0gsSy9d8XFo0/z28unc+s3lWPCxLua+sr+kD/0039U4wNKgL3aQTUB7LGpQkHDln1y/0Ws4sqlM0VFrHcDyrRWcYY1/fXT3eguJXtC1/eMsLBafIn5zemlwFZpkzP1qbto+cJqTY2VeKd7bRpvDR3AVtg1Sss/iCi6J/KXdCaW3AdA7noXnDu/s30i+fjFLn8SCDYEh+DL+KIeWSPwYBG3pgytH9AW6ccTHV+TCmlMYcdhM612fDAq60asO1HIc81aJvvJDNjCTOSuqt9dBVKWt1clMg1ezXbpVg==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776392132; c=relaxed/simple;\n\tbh=0/lyXGkKFiSZc8pIApTKDpiVFRf4a8ueh+JFKqqvjT4=;\n\th=Cc:Subject:References:Content-Type:Date:Message-Id:To:From:\n\t Mime-Version:In-Reply-To;\n b=s5AkLUR8FiRA64ebJHroQyYzK7HYpZr2bu6Nj01FWjq42tiGddIifrpzUKHYYe7TFWpuOv5NeMvo56U9rbc0MrNOhj221x71wx0NbkyL45XN79yQ18kt/gXTicrpcNzqMfFpxLkD1zATPpuQYVMOruCoDNU7DVBCmXpXU0QSDGk="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com;\n dkim=pass (2048-bit key;\n unprotected) header.d=bytedance.com header.i=@bytedance.com\n header.a=rsa-sha256 header.s=2212171451 header.b=IG4gWBEY; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15880-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com;\n spf=pass smtp.mailfrom=bytedance.com;\n dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com\n header.b=IG4gWBEY; arc=none smtp.client-ip=209.127.230.114"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n s=2212171451; d=bytedance.com; t=1776392119; h=from:subject:\n mime-version:from:date:message-id:subject:to:cc:reply-to:content-type:\n mime-version:in-reply-to:message-id;\n bh=0/lyXGkKFiSZc8pIApTKDpiVFRf4a8ueh+JFKqqvjT4=;\n b=IG4gWBEYPN7WuL+7hJjpHjd+pK+IA6Gs24WdYh2ASImovTh0jxLUNxrhlDV7voWUTVWDVe\n c8Whv6nuWQNxsfp2qI4SnWMk+aZFDd4rrX44KPivVwGfu6vWNmL4siOUGdvhXFuopUgDab\n uQU+yyPTGk9PGkw+b8OqNHr0idPkRr8/eLe/uOPKqJNI/4XQn45w9JBAaGjHtypjHP6OoP\n MzwivbOPCNeMkZUPiylv3pgmkNPL0ZQ52RXY9I6LavaeAieytLshxTdO0v6WziWlLBxSV8\n ID1u/HsypE7EIfPgxsZK6eGO2azZJ9PNnBw9x+GAJEhpXvW4R6njVzYzxIn2rw==","Cc":"\"Darrick J. Wong\" <djwong@kernel.org>,\n\t\"Brian Foster\" <bfoster@redhat.com>,\n\t\"Fengnan Chang\" <fengnanchang@gmail.com>, <brauner@kernel.org>,\n\t<hch@infradead.org>, <linux-xfs@vger.kernel.org>,\n\t<linux-fsdevel@vger.kernel.org>, <linux-ext4@vger.kernel.org>,\n\t<lidiangang@bytedance.com>","Subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","References":"<20260416030642.26744-1-changfengnan@bytedance.com>\n <aeDjui2LGSidEHcJ@bfoster> <20260416152705.GC114239@frogsfrogsfrogs>\n\t<aeFlvXDShzIuOU9z@dread>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","Date":"Fri, 17 Apr 2026 10:15:14 +0800","Message-Id":"\n <d9210bcdf73fbe1ac8b6ec132865609a3ed68688.2a887e59.940e.4103.87d7.62770ee521ce@bytedance.com>","To":"\"Dave Chinner\" <dgc@kernel.org>","From":"\"changfengnan\" <changfengnan@bytedance.com>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","Mime-Version":"1.0","In-Reply-To":"<aeFlvXDShzIuOU9z@dread>","X-Lms-Return-Path":"\n <lba+169e197b5+6cf6a2+vger.kernel.org+changfengnan@bytedance.com>","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tHEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}},{"id":3678451,"web_url":"http://patchwork.ozlabs.org/comment/3678451/","msgid":"<d9210bcdf73fbe1ac8b6ec132865609a3ed68688.1dc3ba4b.a0f6.420b.a9f2.f3d89396b545@bytedance.com>","list_archive_url":null,"date":"2026-04-17T02:19:00","subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","submitter":{"id":85004,"url":"http://patchwork.ozlabs.org/api/people/85004/","name":"Fengnan Chang","email":"changfengnan@bytedance.com"},"content":"> From: \"Mateusz Guzik\"<mjguzik@gmail.com>\n> Date:  Fri, Apr 17, 2026, 07:21\n> Subject:  Re: [PATCH] iomap: avoid memset iomap when iter is done\n> To: \"Darrick J. Wong\"<djwong@kernel.org>\n> Cc: \"Brian Foster\"<bfoster@redhat.com>, \"Fengnan Chang\"<fengnanchang@gmail.com>, <brauner@kernel.org>, <hch@infradead.org>, <linux-xfs@vger.kernel.org>, <linux-fsdevel@vger.kernel.org>, <linux-ext4@vger.kernel.org>, <lidiangang@bytedance.com>, \"Fengnan Chang\"<changfengnan@bytedance.com>\n> On Thu, Apr 16, 2026 at 08:27:05AM -0700, Darrick J. Wong wrote:\n> > What kind of computer is this where there's a 5% hit to iops from a\n> > memset of ~150 bytes?\n> > \n> \n> Such a memset is not free in its own right, but here the real problem is\n> *how* it is done: by default gcc emits inlined 'rep stosq' which has\n> utterly horrid performance (same as 'rep movsq') and in this particular\n> case the 2 memsets in the source code result in 2 separate 'rep movsq'\n> invocations.\nYes,  two 'rep stosq'.\n> \n> I complained about it numerous times, see this to get a taste:\n> https://lore.kernel.org/all/20250605164733.737543-1-mjguzik@gmail.com/\n> \n> Also see\n> https://lore.kernel.org/all/202504181042.54ea2b8a-lkp@intel.com/\n> \n> If memory serves right gcc is going to fix it, so this is largely going\n> to clear itself down the road.\nSounds good, I believe there are other similar issues that haven't been\ndiscovered yet. In this case, removing `memset` is the best option, since\nwe don't need it.\n\n>","headers":{"Return-Path":"\n <SRS0=zabK=CQ=vger.kernel.org=linux-ext4+bounces-15881-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=bytedance.com header.i=@bytedance.com\n header.a=rsa-sha256 header.s=2212171451 header.b=kRbGWf64;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=zabk=cq=vger.kernel.org=linux-ext4+bounces-15881-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c09:e001:a7::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=bytedance.com header.i=@bytedance.com\n header.a=rsa-sha256 header.s=2212171451 header.b=kRbGWf64;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15881-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com\n header.b=\"kRbGWf64\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.127.230.114","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=bytedance.com"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxdqY14XGz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 12:19:21 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fxdqY0pSpz4w9R\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 12:19:21 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fxdqY0Wt8z4wCX; Fri, 17 Apr 2026 12:19:21 +1000 (AEST)","from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fxdqS6gb7z4w9R\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 12:19:16 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id D3C4230227C1\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 02:19:13 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 8BB2618D636;\n\tFri, 17 Apr 2026 02:19:12 +0000 (UTC)","from va-1-114.ptr.blmpb.com (va-1-114.ptr.blmpb.com\n [209.127.230.114])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 94D8670818\n\tfor <linux-ext4@vger.kernel.org>; Fri, 17 Apr 2026 02:19:10 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776392361; cv=pass;\n\tb=WWI4rY5mauDJpJvVTUCaHe5BrFhu5MMqHXbIuuYwfW9iDXwSY+h24WyWSJ0OC07xmBp6arC6CmbzkQvIyEp6XLLOk44MC5T1Gd1elIg3LDBidhjBQzW2Y6c8NT1gSrw0fnxbE1cMnBhPKtDUE1Wq6hw4rDVloIhBWtMUgG2dMWklVJl56jL4XPno+GFduzlzoy6Mah/oCpnM2RIKpt6E/MgTd8NDZCullArvr++QazuWiUGdxQ5bBXMlEzwQvYaZIODKavkxaHIu/tgCRypoTZOPi1/vz3M8BhGQGjVeajtBCL2GbJWenZ/U6ftCteSiXNNKqjcLUHqBXQJMxxHYsQ==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776392352; cv=none;\n b=BORCV2Ibb4k4kuTNRC6jKjC2y8S01FMW517BN7j690rFMtXHtk7k7L3b55LzH0/syGb/HIwgx/FJ6jLNSGP/vbN8LJelzv5t1xfB9ztQhxIp0RcGFq3tWvVGZDyW6HxaD1tmU3yMQEti0KPTXzW2B9ohdF8bsn3L0Q6Am4ZSyOE="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776392361; c=relaxed/relaxed;\n\tbh=jrx+4xUmZU1x4pUeKQda1573iTcGiPF/RQQ5ZPhuFx4=;\n\th=To:Cc:Subject:From:Mime-Version:References:In-Reply-To:Message-Id:\n\t Content-Type:Date;\n b=mkI4e8q76TyNc0LRH5ra14UoJ2XeHnpr8MBp180IAQIXDj15qsaN09WocV7cACHbBry98KaXX6HdmwGJjE0mK64OZLn/CYondulBk5+jC56kB/z856fcxWkCsuejVdi5nJ+1xu0zSwiKZymW9TZ8808ueeIDy82WMaQD9qA6CdYij4N6jtjtDGXRA7muoSMn3e5GPqNZ0LmxyLqeVTKDx4NcCO92QcUCZefx3TRJ2qOFGKptl7F0B4Yo4ianSLFgtKvJ02H9PxxmSDDmGvPLpqbJmoSG2mdRf3OGIfW5d2NlF30mB9UsCTV6DA1FaXBrAxRAgaO80DyLuKGoF3fzuQ==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776392352; c=relaxed/simple;\n\tbh=jrx+4xUmZU1x4pUeKQda1573iTcGiPF/RQQ5ZPhuFx4=;\n\th=To:Cc:Subject:From:Mime-Version:References:In-Reply-To:Message-Id:\n\t Content-Type:Date;\n b=YyTUH0vLlDrcSW6MESlIKDHIkKr0EqdICi8V6Z3V91w0AERAkfgKnDr0142mW8gyF2RapGVL1HAQoTZr4VTM+gmTqUBGN6N4WerPJDYlzUn0hoQqe3vAJvNw+NGUUMRk57kqaOELihlvicqE9uOP95nOAd5zweHI9l7A+pxkRlI="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com;\n dkim=pass (2048-bit key;\n unprotected) header.d=bytedance.com header.i=@bytedance.com\n header.a=rsa-sha256 header.s=2212171451 header.b=kRbGWf64; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15881-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com;\n spf=pass smtp.mailfrom=bytedance.com;\n dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com\n header.b=kRbGWf64; arc=none smtp.client-ip=209.127.230.114"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n s=2212171451; d=bytedance.com; t=1776392345; h=from:subject:\n mime-version:from:date:message-id:subject:to:cc:reply-to:content-type:\n mime-version:in-reply-to:message-id;\n bh=jrx+4xUmZU1x4pUeKQda1573iTcGiPF/RQQ5ZPhuFx4=;\n b=kRbGWf64Lk45TRaEgh5+GmJk5xSMyi0v6UBDwTZzG3/J301fCwpy4vA46u/Jop3fXVfJGD\n 3R91/Y3CuWX5DxqpKne+soU4NGojZESs3N00FPDWoudn/tJqXGj+66HgoharCnBG5Zf+/w\n TuJuStcIFEbAFV8mnfdLS93L+bqNng4+YKyAICNjikNzINV7v21fYirfPXcdJUYmiLSv+M\n m4UHhcH+ixldNmET8+YX0ZIzg8yLp6ER8fbv4qNV0JnfDL8yhRhX0Z65C2ZZVFF8mgshGG\n vPA2Xu1ntZAeWyB5pOglbbkP+gp4khyWAw3uz7rn05QS8lgJf7jLoHO2iwHVag==","To":"\"Mateusz Guzik\" <mjguzik@gmail.com>","Cc":"\"Darrick J. Wong\" <djwong@kernel.org>,\n\t\"Brian Foster\" <bfoster@redhat.com>,\n\t\"Fengnan Chang\" <fengnanchang@gmail.com>, <brauner@kernel.org>,\n\t<hch@infradead.org>, <linux-xfs@vger.kernel.org>,\n\t<linux-fsdevel@vger.kernel.org>, <linux-ext4@vger.kernel.org>,\n\t<lidiangang@bytedance.com>","Subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","From":"\"changfengnan\" <changfengnan@bytedance.com>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","Mime-Version":"1.0","References":"<20260416030642.26744-1-changfengnan@bytedance.com>\n <aeDjui2LGSidEHcJ@bfoster> <20260416152705.GC114239@frogsfrogsfrogs>\n\t<hgug5jbkwk352zrwcngdofwiy2hq4nk7eq7yvzi6nru5zyebd2@fe64yziutvlk>","In-Reply-To":"<hgug5jbkwk352zrwcngdofwiy2hq4nk7eq7yvzi6nru5zyebd2@fe64yziutvlk>","Message-Id":"\n <d9210bcdf73fbe1ac8b6ec132865609a3ed68688.1dc3ba4b.a0f6.420b.a9f2.f3d89396b545@bytedance.com>","Content-Type":"text/plain; charset=UTF-8","X-Lms-Return-Path":"\n <lba+169e19897+7df5c7+vger.kernel.org+changfengnan@bytedance.com>","Content-Transfer-Encoding":"quoted-printable","Date":"Fri, 17 Apr 2026 10:19:00 +0800","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tHEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}},{"id":3678564,"web_url":"http://patchwork.ozlabs.org/comment/3678564/","msgid":"<aeHg4hUsVTxzm66I@infradead.org>","list_archive_url":null,"date":"2026-04-17T07:27:30","subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","submitter":{"id":178,"url":"http://patchwork.ozlabs.org/api/people/178/","name":"Christoph Hellwig","email":"hch@infradead.org"},"content":"On Thu, Apr 16, 2026 at 09:27:22AM -0400, Brian Foster wrote:\n> This seems reasonable to me in principle, but it feels a little odd to\n> leave a reset helper that doesn't really do a \"reset.\"\n\nAgreed.\n\n> I wonder if this\n> should be refactored into an iomap_iter_complete() (i.e. \"complete an\n> iteration\") helper that includes the ret assignment logic just above the\n> reset call and returns it, and then maybe leave a oneline comment above\n> the memset so somebody doesn't blindly fold it back in the future. So\n> for example:\n\nWhat about just killing iomap_iter_reset_iomap in it's current form\ninstead?  Move the batch reset logic into a little helper if we care,\nand just inline the rest into the only claler to side-step the issue.","headers":{"Return-Path":"\n <SRS0=cCL3=CQ=vger.kernel.org=linux-ext4+bounces-15884-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256\n header.s=bombadil.20210309 header.b=p4ZWnW8Z;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=ccl3=cq=vger.kernel.org=linux-ext4+bounces-15884-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=104.64.211.4 arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=infradead.org","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256\n header.s=bombadil.20210309 header.b=p4ZWnW8Z;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15884-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org\n header.b=\"p4ZWnW8Z\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=198.137.202.133","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=infradead.org","smtp.subspace.kernel.org;\n spf=none smtp.mailfrom=bombadil.srs.infradead.org"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxp2Q4WLCz1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 18:29:18 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fxp2J3BkCz4w9R\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 18:29:12 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fxp2J35zBz4w9h; Fri, 17 Apr 2026 18:29:12 +1000 (AEST)","from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fxp2D6KShz4w9R\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 18:29:08 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id E599630A9DB3\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 08:19:51 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id B08493A9DA1;\n\tFri, 17 Apr 2026 08:19:38 +0000 (UTC)","from bombadil.infradead.org (bombadil.infradead.org\n [198.137.202.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 56FEF377EBA;\n\tFri, 17 Apr 2026 08:19:37 +0000 (UTC)","from hch by bombadil.infradead.org with local (Exim 4.98.2 #2 (Red\n Hat Linux))\n\tid 1wDdbu-00000003aLm-3Gxa;\n\tFri, 17 Apr 2026 07:27:30 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776414552; cv=pass;\n\tb=sg7A0giB3qweaOXMPNd9KSGqZdVePnV5bsZzQSkurIJW28k4EzSgAA71Q5PmcRt0BgiVeafi5GrJ/8uU2ljsa2VF4FZakOpMUsB8yB4TGPZ4HpB8YNBbgiFf0j7oxd/eFHnry9574GgVk2GlGdUgFyxwdDsP1ANCnk7BiJyGhPOe7/wMMYtgVFuncxVUNkHM6O8LF/+ElCQCfbfdyrBucjF5VqwMXb3ZYhn1gjUOibRURcWya3dKe3bm5yGSkyOQ7/fw8BBKAH/zov0Zj8dRlD4i3OeeF6Neo/A1kwLnqWXMIdsIPeZXToLIkm/70v8VZE7PiV544I6cL9kWM0DP2w==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776413978; cv=none;\n b=fJvdhc4COYubSXo/9z+kkHq7XjTSbmEyZCi0YRrGsf8enn2uJgJTXNCtiY83x+vo7kMMT9pG+1MWidJy/QdYZOndL8eLPOX2J+iTp3+8zOdKCgzNa7NNu77U8eWQaiZcAv3n31K6Hbw8h9JGrnMtVaGK76qw/ME14j8QKWag8AA="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776414552; c=relaxed/relaxed;\n\tbh=JPbuW35N5LsuICIGCAN9rFd/yCJrhFqkmc0YHSxmpCA=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=lZjAQj2FpaMVVREX9rl2EAvbXg3vutlbinkrIalyCz36AXs/80TRsdx6wXHjh3B9FfwD1oqPCWRka8aaWT8PDCCuNa0rY6eYFOeItrOUUSvYUvJhp89yOwkFOT8exhH7vr1IeEXHRElgdqFBL1lMrLrph0n/lkVwtexcgddtoegegYBf38crpBc6huR5s2hoIren/vANFDwQSzDVGjqCgmK/KZSEEGgqtGnkwLEm7jeFi10DgNx5/DslrE7rlwLcQUSmsA2YEfIrsIPFkQQbOfM4wSH2Cq0Dz2IKTZbvWdIfL6xY8Nc3Cwc/SxhMIMAvYFzwQ/IDRWJrhRJPGADAHw==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776413978; c=relaxed/simple;\n\tbh=OMowBWsRkwolFos5RGrczxO4E4/8D5JHVx/VENOZJX4=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=mrgFEdO9QVToJOWnyHDUwbtuue4fICWhsKHExKoaKAZs1EQW2N+7D6FJfAfW21SBKnNug0yXEwJKve+ufe9d9QekrgrgrHr0Y0c+/811XMdJMnupDp+SguT+541Z7U+9C+ZJCwxOrP8emnK3kefCUy99/NksNgfGs1YTSeCwiKA="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=infradead.org;\n dkim=pass (2048-bit key;\n secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256\n header.s=bombadil.20210309 header.b=p4ZWnW8Z; dkim-atps=neutral;\n spf=pass (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15884-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=infradead.org;\n spf=none smtp.mailfrom=bombadil.srs.infradead.org;\n dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org\n header.b=p4ZWnW8Z; arc=none smtp.client-ip=198.137.202.133"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Type:MIME-Version\n\t:References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:\n\tContent-Transfer-Encoding:Content-ID:Content-Description;\n\tbh=JPbuW35N5LsuICIGCAN9rFd/yCJrhFqkmc0YHSxmpCA=; b=p4ZWnW8Z8LMvrA9M9zW9fXqXkb\n\t6ghVuwbsr76K98ih3hVKCXgwbf83tZX2rymDMcPu65kNtMeYuWpZ1tguUSxEjMbSsDFZ+WF7omQ1h\n\tNWjfSZDw/tj50fUVamG86gMbaIwCSJIPRQ8nEZ39KyUPmTt5xcSSE6VaViKIJK/0cD+BXE7RA3I3R\n\tVuXJTK+AsQ/re9skFra34qBQ5zv+m+VgrZxE+a2924/r8wRdmFWR/KaxtyQ01s39bW1AO9J4dMfBM\n\tyG40nS1lnsZe1XFDtfKfzSZKM8TgEhoJaqa0NRRUr2q+5sjsb8WDsb1ymOyL3KVdq1TGRZkFr9JIE\n\tKCQZ1oHA==;","Date":"Fri, 17 Apr 2026 00:27:30 -0700","From":"Christoph Hellwig <hch@infradead.org>","To":"Brian Foster <bfoster@redhat.com>","Cc":"Fengnan Chang <fengnanchang@gmail.com>, brauner@kernel.org,\n\tdjwong@kernel.org, hch@infradead.org, linux-xfs@vger.kernel.org,\n\tlinux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,\n\tlidiangang@bytedance.com,\n\tFengnan Chang <changfengnan@bytedance.com>","Subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","Message-ID":"<aeHg4hUsVTxzm66I@infradead.org>","References":"<20260416030642.26744-1-changfengnan@bytedance.com>\n <aeDjui2LGSidEHcJ@bfoster>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<aeDjui2LGSidEHcJ@bfoster>","X-SRS-Rewrite":"SMTP reverse-path rewritten from <hch@infradead.org> by\n bombadil.infradead.org. See http://www.infradead.org/rpr.html","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tHEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}},{"id":3678597,"web_url":"http://patchwork.ozlabs.org/comment/3678597/","msgid":"<d9210bcdf73fbe1ac8b6ec132865609a3ed68688.d8707dd1.2ba2.4aae.83a0.8f7870c373ec@bytedance.com>","list_archive_url":null,"date":"2026-04-17T09:15:06","subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","submitter":{"id":85004,"url":"http://patchwork.ozlabs.org/api/people/85004/","name":"Fengnan Chang","email":"changfengnan@bytedance.com"},"content":"> From: \"Christoph Hellwig\"<hch@infradead.org>\n> Date:  Fri, Apr 17, 2026, 15:27\n> Subject:  Re: [PATCH] iomap: avoid memset iomap when iter is done\n> To: \"Brian Foster\"<bfoster@redhat.com>\n> Cc: \"Fengnan Chang\"<fengnanchang@gmail.com>, <brauner@kernel.org>, <djwong@kernel.org>, <hch@infradead.org>, <linux-xfs@vger.kernel.org>, <linux-fsdevel@vger.kernel.org>, <linux-ext4@vger.kernel.org>, <lidiangang@bytedance.com>, \"Fengnan Chang\"<changfengnan@bytedance.com>\n> On Thu, Apr 16, 2026 at 09:27:22AM -0400, Brian Foster wrote:\n> > This seems reasonable to me in principle, but it feels a little odd to\n> > leave a reset helper that doesn't really do a \"reset.\"\n> \n> Agreed.\n> \n> > I wonder if this\n> > should be refactored into an iomap_iter_complete() (i.e. \"complete an\n> > iteration\") helper that includes the ret assignment logic just above the\n> > reset call and returns it, and then maybe leave a oneline comment above\n> > the memset so somebody doesn't blindly fold it back in the future. So\n> > for example:\n> \n> What about just killing iomap_iter_reset_iomap in it's current form\n> instead?  Move the batch reset logic into a little helper if we care,\n> and just inline the rest into the only claler to side-step the issue.\nSounds good, move iter->status out, and then rename \niomap_iter_reset_iomap to iomap_iter_clean_folio_batch.\n>","headers":{"Return-Path":"\n <SRS0=L5X9=CQ=vger.kernel.org=linux-ext4+bounces-15885-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=bytedance.com header.i=@bytedance.com\n header.a=rsa-sha256 header.s=2212171451 header.b=YudM9mG/;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=l5x9=cq=vger.kernel.org=linux-ext4+bounces-15885-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=172.234.253.10 arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=bytedance.com header.i=@bytedance.com\n header.a=rsa-sha256 header.s=2212171451 header.b=YudM9mG/;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15885-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com\n header.b=\"YudM9mG/\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.127.230.111","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=bytedance.com"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxq8Q5pbJz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 19:19:34 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fxq8Q0df7z4wJ5\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 19:19:34 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fxq8Q0YWsz4wLV; Fri, 17 Apr 2026 19:19:34 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fxq8K1t9sz4wJ5\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 19:19:29 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id D7F4F30038D3\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 09:15:26 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 6FC1E3B47E9;\n\tFri, 17 Apr 2026 09:15:25 +0000 (UTC)","from va-1-111.ptr.blmpb.com (va-1-111.ptr.blmpb.com\n [209.127.230.111])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id DC99A38E129\n\tfor <linux-ext4@vger.kernel.org>; Fri, 17 Apr 2026 09:15:21 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776417574; cv=pass;\n\tb=ctOl1+S/9dZxfcFDSv7x19abAA5aTL0MzWjZG7nh+MV3SG+kNDuFJBcV4fKzDx1kYBLSXq9ytPcjv/8MP7O3FrM0iro9UqpPpOGnBOANka1Rhcp7Dk4COuhxpuF+YvDZ0qlaIVwdmwgHa5uVInT5LkbE0s5HcNnLxyQ13reWuwD1GFGlh6Vgga18uvTAcNEbMdc05dbROv6R0assGNJGwhSZqnKxk8g3u/y3nw8qMgjn9tfyeJE9fBcPqB5OZFe7NfITEB4M9wKiEd/7eMs5mzFhYz5/wlE8VoJl9d1UGph485/Us1bWyzR9FmreSwGD/XobJ0ZSGPu1N0fZ5EZ5tA==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776417323; cv=none;\n b=q2YMlGlo81s/xqqLjtZshIKbBOEhQTJ1hTYRv8/WI04qyFTgWt3Dql2fgT5UuJ9t6zFja4CVOjiHt6HzRWx2PHzycTv2ka8IYFPIT0muxxaCgvfCRZZmW+YiH51P7pSl/FhJ21Wo7GmjuDxlVVbCSoRSL50ENmEez5EacD5wKMA="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776417574; c=relaxed/relaxed;\n\tbh=CqshMXJjuIbz2v7/b24OZQcMbf5U1FYx6B8PTiLWvmc=;\n\th=To:From:References:Mime-Version:In-Reply-To:Content-Type:Date:\n\t Message-Id:Cc:Subject;\n b=EinLnX8EIcrFsf4M4RbnpVklaXIZXiu8OL5mEqcH2PuS8bzX+Y8Q8fdz6l0BatOj7IXRSM5uvJZCJkGp26ICkRcUaLl4WqhkayV4XFYTd4/GLp4QaakrhPmbXBkSBt1zDQOeuSdMYwQ2Mh+S/rhfkoCfJ1XOH3sYIyU2vQRDylGiAVpbILhWtIPs22DZuhmGiX9X7aXqfUORiZss783wDu7bdZMv9PeWj6sEDVB5bpy9QPGWQcJcLeMLRoCGn4DNNn+l2EFRITcyYX+HThnGi3RLsMXohkWQUd2TF+aTvRJz9Pd2t/jLbqUYsSMr0V9/jL7efK3WX6hIHqiceP/bXw==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776417323; c=relaxed/simple;\n\tbh=CqshMXJjuIbz2v7/b24OZQcMbf5U1FYx6B8PTiLWvmc=;\n\th=To:From:References:Mime-Version:In-Reply-To:Content-Type:Date:\n\t Message-Id:Cc:Subject;\n b=s+HrbsuQCYwF76s4QvT2ePrXWfZjGXk+WEDgP0aHjzgzguVf3BobWXE4PbbuHol8sURq5IIFr4/qwco++SenaiaUqVCvLQpzHig+ianeQn7onP5rUEYZfBalMvq79UGoibQ96BZsAYz+qLcQnafjzzCDuBPbjvHjBo4QUn/nMoU="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com;\n dkim=pass (2048-bit key;\n unprotected) header.d=bytedance.com header.i=@bytedance.com\n header.a=rsa-sha256 header.s=2212171451 header.b=YudM9mG/; dkim-atps=neutral;\n spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15885-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=bytedance.com;\n spf=pass smtp.mailfrom=bytedance.com;\n dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com\n header.b=YudM9mG/; arc=none smtp.client-ip=209.127.230.111"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n s=2212171451; d=bytedance.com; t=1776417311; h=from:subject:\n mime-version:from:date:message-id:subject:to:cc:reply-to:content-type:\n mime-version:in-reply-to:message-id;\n bh=CqshMXJjuIbz2v7/b24OZQcMbf5U1FYx6B8PTiLWvmc=;\n b=YudM9mG/nt44XotOro2JbRCryULVPUkvb4oWsOXKRawvXbO+JH4LOMO3ZbzeQedoEYWphS\n dG5+ZyWiks9fDl+biByWZILRn8k91Q834vaKco7DRHHNe61dx1bzKAQzfoViSLBswTUv9y\n hazQ4zkw4BXk+ike5nG3hpPTfIaWxIznEy6B+2I0aQm97dtBjV0v9ShvyU7YDYQgOwdZ8+\n 8FYOkCSOvWa2laAIXseEK2mnnZ2MjnAfk8NHvopszWI6GvLdabHa9jxeTJ81PmqREpIvz8\n jhCaSm/gFroUXTTbofewvyr5tVeHfKpwhwHXfHOHV9pwrDzLfpLD1F3u5JtVvg==","To":"\"Christoph Hellwig\" <hch@infradead.org>","From":"\"changfengnan\" <changfengnan@bytedance.com>","References":"<20260416030642.26744-1-changfengnan@bytedance.com>\n <aeDjui2LGSidEHcJ@bfoster>\n\t<aeHg4hUsVTxzm66I@infradead.org>","Content-Transfer-Encoding":"quoted-printable","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","Mime-Version":"1.0","In-Reply-To":"<aeHg4hUsVTxzm66I@infradead.org>","X-Lms-Return-Path":"\n <lba+169e1fa1d+f4f600+vger.kernel.org+changfengnan@bytedance.com>","Content-Type":"text/plain; charset=UTF-8","Date":"Fri, 17 Apr 2026 17:15:06 +0800","Message-Id":"\n <d9210bcdf73fbe1ac8b6ec132865609a3ed68688.d8707dd1.2ba2.4aae.83a0.8f7870c373ec@bytedance.com>","Cc":"\"Brian Foster\" <bfoster@redhat.com>,\n\t\"Fengnan Chang\" <fengnanchang@gmail.com>, <brauner@kernel.org>,\n\t<djwong@kernel.org>, <hch@infradead.org>, <linux-xfs@vger.kernel.org>,\n\t<linux-fsdevel@vger.kernel.org>, <linux-ext4@vger.kernel.org>,\n\t<lidiangang@bytedance.com>","Subject":"Re: [PATCH] iomap: avoid memset iomap when iter is done","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tHEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"}}]