From nobody Tue Sep 29 08:26:40 2026 Received: from mx0b-00364e01.pphosted.com (mx0b-00364e01.pphosted.com [148.163.139.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E457932861E for ; Mon, 10 Aug 2026 16:39:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.139.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786379985; cv=none; b=iLrXWVdSZ/daWMTyS+QCFKbeIFrpU/uk6kpayDVtb7YZB4ZqNNNcQnEVFfowCyx7ZFthZv0Nx2+D+mceg3AG4heg/5RlQPpCD0ouBxYVRLACAs9jjQVPl3V+pH7RITbHpXwz1LPzhr+r2lkFKoaJ6hLF7OrY/EoFr8VLqi2194s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786379985; c=relaxed/simple; bh=1dVw8nrbAkxuia8Ac49iB4K1gs7YkCKauVwA5PiTKg4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=PRR9JQ0URwYDTH1okELH45ApNNJWmUtqJDhBO816ZaYp7KpoFGMHEAS00qGVZKhKBcLxopWevT1YYmiV4ubeOKthgk15qnkoIWfO2HBsr2o1GPkBbZpMA+qnbWfcZ4lVJDTsgvUiQo6tHzWQckobO5yPNPHfqJJyATDXR4h9Bko= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu; spf=pass smtp.mailfrom=columbia.edu; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b=gK4/09uf; arc=none smtp.client-ip=148.163.139.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=columbia.edu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=columbia.edu Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=columbia.edu header.i=@columbia.edu header.b="gK4/09uf" Received: from pps.filterd (m0167077.ppops.net [127.0.0.1]) by mx0b-00364e01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67AGZKT83531852 for ; Mon, 10 Aug 2026 12:39:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=columbia.edu; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=pps01; bh=e+BPPtqOvSp2f4p9hlj0HukM/4 EvcLMV9fvq8zY/jWg=; b=gK4/09ufjiH+PjNIxNIToysgyH3VTFluCwCJrtSPf2 n/H+xqxPD5N/2VMqd0mP0lXQyBpXqEta74UfG66EGNHpcdqvIkh4CkLWq0ibG4U/ cANtQQUjRnrslosC+Mji6YUWBYpAeQ+HiDh4Gd9f83UkkNKdb96mTFxcWdp/RZNm PJHi4uXsj3VGAkFwBgh4AxP/GreuFB62DuGuISvncmMUpSe2+PgJjxi6ZlYDCxgQ EF61hn2BNm5ZCKMKG6yMOZRWbmAqDKPLFd5UHusjl4MpFm3gE5Al3B0C4MGsDgaG tPHHPF0+oSXfhIzvAHMMNbHjwRkbcjQiYGQifU+l9Ftg== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0b-00364e01.pphosted.com (PPS) with ESMTPS id 4fy0rmmkxj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 12:39:42 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-5283fa0656dso1076271cf.1 for ; Mon, 10 Aug 2026 09:39:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786379982; x=1786984782; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=e+BPPtqOvSp2f4p9hlj0HukM/4EvcLMV9fvq8zY/jWg=; b=Zh3YsVn2CNaThYOGNFDihjtuudz+6LOSWzD5KLv0WT0kBt9BaUuTRxpOZCOPuIwgfj xwczVGgtXlSlnpaEGZ8Bs1sM5NspGy24nWWUB8TceEgDaUH631hsQYbsSkP3SDBEza5R 5dKIbIWIQOmPer860ErtnE+r/GO2BdccjJL6KgkddstltZdUEdHYOjL0oXQsKOMFOxfJ GcJ+DGU2JMLHd7LiyDJQhmlWKKZKuPeX/crccJH9Grk2eElC52Lv9GYBeX8TeLYQWhf4 TGAPFn5cnkke88MLx4bDco7WFMnUVy4VpFyOZZeoZj3VFpz4fLmRjvK2J/0LE/RV+x4h Fp0g== X-Forwarded-Encrypted: i=1; AHgh+RrD3caNx5ldGuv7Q9s2dcH+r9iqMysm89H1QzFxsnD9fqOlr5o3pn0juu7LGVEnJPzpTOiV240LNFdcyRQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyGfI3FIFrNM+JzN/S1T/FjUbH+8BS35xDni/aXd+yCFS2iv5Gf Zt2L41UEDJAbuTMf/TvX0qt8eJtOFLQBMukQbt/GvK3C6i0DIcD9AZoPHtxLupQhlFl40LWUV31 2wiiIcXIc4ah8u1RWw0i69jniZnvMVAEdd62KKWL2GRhfWIAAngH4b596BfzfDQ== X-Gm-Gg: AR+sD12kICij2hr+i5d8dACzPdt3MXfPlsazrYztnaYEqYLyewNAgzOuD/SXFBuVXZu I7UnbhMO5bclbjITUYc6A0IS6+OQ1xpRN7EHzwjZ3Qc58Ftky/8EFlVnKYv70PJsa5/owGvP+iW 5lCD0Jtc18GtF12DsDrf9iNX5HHKatSMHreHe2GK4Seu3dgus9RReTCVqj+hGqEFDUFQHWArR79 S28Ivf40rGvBDMlpuA5PTX4lgEc8ULOdypNs4WFI6YQ3jSx6aJ72zsEsORjokP5Zy3p0HKazJ8S 16NFbozmPopZ8V/dgMAkHksFIvVK+bXwGPHSRcSneZ9b3Wxy7lmW6/qVtrrlOFmcfyi9BVsSgMU 08FTqT7oQmY1mxFeIUPQ2/Udurh9SsC3t7cy8dp+0AfA= X-Received: by 2002:a05:622a:2cc:b0:517:146d:2cb5 with SMTP id d75a77b69052e-52d23825fffmr193169741cf.20.1786379981934; Mon, 10 Aug 2026 09:39:41 -0700 (PDT) X-Received: by 2002:a05:622a:2cc:b0:517:146d:2cb5 with SMTP id d75a77b69052e-52d23825fffmr193169081cf.20.1786379981496; Mon, 10 Aug 2026 09:39:41 -0700 (PDT) Received: from [127.0.1.1] (bzq-79-179-7-133.red.bezeqint.net. [79.179.7.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-480021506c0sm33475204f8f.11.2026.08.10.09.39.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 09:39:40 -0700 (PDT) From: Tal Zussman Date: Mon, 10 Aug 2026 12:39:19 -0400 Subject: [PATCH] xfs: avoid double deferrals for RWF_DONTCACHE writes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260810-xfs-dontcache-double-defer-v1-1-aea7484b3e49@columbia.edu> X-B4-Tracking: v=1; b=H4sIALb+eWoC/yXMQQrCQAyF4auUrB1IRxTxKuIik2baiExl0pZC6 d2NdvXev/k2MKkqBvdmgyqLmo7Foz01wAOVXoJ23hAxXvHWYlizhW4sExMP4m9Obx/JUgPJOdM FE2FkcOBTJev6xx/Po21OL+HpJ8K+fwEx2RpgfgAAAA== X-Change-ID: 20260810-xfs-dontcache-double-defer-ae3fa50ba02c To: Carlos Maiolino , Jens Axboe , Christoph Hellwig , Jan Kara Cc: linux-block@vger.kernel.org, linux-xfs@vger.kernel.org, linux-kernel@vger.kernel.org, Tal Zussman X-Mailer: b4 0.14.3-dev-d7477 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786379979; l=2117; i=tz2294@columbia.edu; s=20250528; h=from:subject:message-id; bh=1dVw8nrbAkxuia8Ac49iB4K1gs7YkCKauVwA5PiTKg4=; b=J2RtFKGjmGGQZlE9chrI+urEUn9ROGe+QzTLmqzAsEYbReC3BuS6IvwP3bkhsK+eJgE4g9vHG sxrYq9ROhdjAiJ3p/0Lved0ky9kPpSwjM9eNM4uvkOYziZVUIFUUiuT X-Developer-Key: i=tz2294@columbia.edu; a=ed25519; pk=BIj5KdACscEOyAC0oIkeZqLB3L94fzBnDccEooxeM5Y= X-Authority-Analysis: v=2.4 cv=P9gKQCAu c=1 sm=1 tr=0 ts=6a79fece cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=LRATYcvZeiQrLRB5MfbBvg==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=x7bEGLp0ZPQA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Da8U98TiO7q1upZEImrf:22 a=QOCMdifcju39GKoXhKua:22 a=VwQbUJbxAAAA:8 a=JfrnYn6hAAAA:8 a=YmEKMl2L6wtdMVtX8_UA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 a=1CNFftbPRP8L7MoqJWF3:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDE0MiBTYWx0ZWRfX3DbSgqCklDlr WqPnm+JxdFY4pzN0wZ4QB4dyjUpgkyG4AGiASB3PEvRFVswchKtTMp9BPVKNAA+rbiFcdmU5zwd 072+xmw0bu+Fvd1+09Ebi1j15fCxCWh2JCy0bOamwtEmXYMpTfB+ X-Proofpoint-ORIG-GUID: zO1vZO8nZ7MmQun6LEqw3M_SHyl9lNOL X-Proofpoint-GUID: zO1vZO8nZ7MmQun6LEqw3M_SHyl9lNOL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDE0MiBTYWx0ZWRfX0IWNf3b6xPdK Rvw4SbSSRKRIdwV95/3cmzO2OeYg0xjOXhYL4dU8DPMmdV85ap0sp0+cB2xkJKBzBCXjnnRiYYR 2hBTJRIIfl1Z2l+Lq4BfFm+jE9C3Yfk73rtfHYKqUjl1oAQlj56c3kIDyIDVjcQQ2X7FQndLHy2 SPrv5I/MLeAqC7GesizTP1Dw5LVSYfw7WNXhwnFdVPjsX7jyfiSQmZc/VioXPw2PZfMzinkrYHU nhgqwcxUS/H6GaqY/0mz9kue9aGhxUW2xr3uvQf7rl4hR9/tIsJCavvlNnJmMvI8GIuvsnxtCep 1egfRyUbSfMLIAkV+z9dTubMooG5vgLoMDKXnA6AUntoTgy0g44OOBPddE0jhcMN8S49DSASoT/ 9Y/djmWWHMNGTdMusgJii26CH9kfL4XMOZQGmZ4ZZwOSkfjy7Hc28JU6GWhjaRfOpmJXLXAbOtU jnlFTEfB8sci3MQ5deA== X-Proofpoint-Virus-Version: vendor=nai engine=6900 definitions=11871 signatures=596817 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 phishscore=0 adultscore=0 clxscore=1015 suspectscore=0 impostorscore=10 bulkscore=10 lowpriorityscore=10 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100142 XFS already defers some writes to a workqueue when transactions are needed to process the I/O completion. Disable the block layer bio task completion in this case to avoid a major performance drop. Fixes: efbde6f9f449 ("iomap: use BIO_COMPLETE_IN_TASK for dropbehind writeb= ack") Link: https://lore.kernel.org/all/8124341f-3af2-4a16-897d-38db5ab5a9d4@colu= mbia.edu/ Signed-off-by: Tal Zussman Reviewed-by: "Darrick J. Wong" Reviewed-by: Christoph Hellwig --- Follow-up fix for the RWF_DONTCACHE task-completion series. This is targeting the block tree. [1] [1]: https://lore.kernel.org/linux-block/annkDbhXBEeMoNVT@infradead.org/ --- fs/xfs/xfs_aops.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c index cd8de8c82d78..74a6089abadf 100644 --- a/fs/xfs/xfs_aops.c +++ b/fs/xfs/xfs_aops.c @@ -549,10 +549,14 @@ xfs_writeback_submit( } =20 /* - * Send ioends that might require a transaction to the completion wq. + * Send ioends that might require a transaction to the completion wq, + * and disable the block layer task completion for them as there is no + * need to defer twice. */ - if (xfs_ioend_needs_wq_completion(ioend)) + if (xfs_ioend_needs_wq_completion(ioend)) { ioend->io_bio.bi_end_io =3D xfs_end_bio; + bio_clear_flag(&ioend->io_bio, BIO_COMPLETE_IN_TASK); + } =20 return iomap_ioend_writeback_submit(wpc, error); } @@ -663,7 +667,14 @@ xfs_zoned_writeback_submit( { struct iomap_ioend *ioend =3D wpc->wb_ctx; =20 + /* + * Defer all completions to our workqueue as all zoned writes require a + * transaction to be persisted. This also means we never need the block + * layer in-task completion for a task context. + */ ioend->io_bio.bi_end_io =3D xfs_end_bio; + bio_clear_flag(&ioend->io_bio, BIO_COMPLETE_IN_TASK); + if (error) { ioend->io_bio.bi_status =3D errno_to_blk_status(error); bio_endio(&ioend->io_bio); --- base-commit: 30df3ab3c92d0e7854c54df6ae66f4aa6eb5b3d2 change-id: 20260810-xfs-dontcache-double-defer-ae3fa50ba02c Best regards, --=20 Tal Zussman