From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ADAA0C021B8 for ; Wed, 26 Feb 2025 15:44:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 51149280011; Wed, 26 Feb 2025 10:44:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4C1D528000F; Wed, 26 Feb 2025 10:44:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3B126280011; Wed, 26 Feb 2025 10:44:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 1CE2B28000F for ; Wed, 26 Feb 2025 10:44:20 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id BB93C1A1617 for ; Wed, 26 Feb 2025 15:44:19 +0000 (UTC) X-FDA: 83162517438.19.4E44F9A Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf06.hostedemail.com (Postfix) with ESMTP id AFC07180013 for ; Wed, 26 Feb 2025 15:44:17 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=H+4YoYln; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf06.hostedemail.com: domain of snitzer@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=snitzer@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740584658; a=rsa-sha256; cv=none; b=SuQn9Y2LgMNTmmqqveXoGGjwOSxNcBaMLtunhkFLrllkQToaUdalJIPcRM2tUefUiNwhCt hxyMDrMmiKQpbUsG20sj8H1SZlsWGdSmmmGfPgBbq1hBV5mVhrSr3bP7929dBJGLlc6C0r qERH0Nnb7rwnB5b4o8Qnz2Vyo/60+cg= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=H+4YoYln; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf06.hostedemail.com: domain of snitzer@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=snitzer@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740584658; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=PQcu1nUD62JGJaMw17b1qxNpBwhKn8FSukCmiptB7wU=; b=vi4VIWisle5fhZe+4QC3H8cToi9JlBGuunzYPl0k2ih6XbjNoLrpcveirru4J+XqJy6cIt 4+dEUSK/t6jq7lB16fIEjOIldXWZP6GhCE89QuCS2PuMT77Vx+ndj/sIrqbQiX0/rXkg4k o0KY/WArrCYgMk14g55FrP/WeAR3HKE= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id F15C6612CC; Wed, 26 Feb 2025 15:44:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E7BCC4CED6; Wed, 26 Feb 2025 15:44:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740584656; bh=8dEsgtqTU/tGSbWi38tS+O41CwAYK5wgCdXuIisEbuI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=H+4YoYlnn/WyUEqfpUpNJ34EadJXcyAEulZ+GzsKWJuxYJwb/LzFemowkRfY5Agxs jXoyUp/QIhpn6iNhmg5+BThflQVrcpTlMQkIbnRzHIZVlKi34WM6UNZf+46RrLZZ2H GyWjlnm8sOC4xe629ZPseqx1QWlKRmmKD8b7iBLf1jyUYxjLDPS7jmK8fXM+duStBq LlCrqIT4cJaiQnQMHALrRQmQdcM7uczlAln1WtTrD51ohZFEFMxzrw/EtSotwQP8aB AIttx8r8+Ph03PrV5ziASc8JY71BvgztUIa42JXA10zOftqzKhgFkRtv/54ktMd1JP YEW4PTLGYOYoA== Date: Wed, 26 Feb 2025 10:44:15 -0500 From: Mike Snitzer To: Christoph Hellwig Cc: Andrew Morton , Trond Myklebust , Anna Schumaker , linux-nfs@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH for-akpm for-6.14-rcX] NFS: fix nfs_release_folio() to not call nfs_wb_folio() from kcompactd Message-ID: References: <20250225003301.25693-1-snitzer@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: AFC07180013 X-Stat-Signature: fg9jr91dewgch86nt85xj5gs67h7mf9o X-Rspam-User: X-HE-Tag: 1740584657-491119 X-HE-Meta: U2FsdGVkX1+iDuAYzGex48vffgEX3E3s+M2VSg7rOIz9iGwOeMJDmE3mlTA0ISSB6IbGgC2UYaftkWOck+Y3DOkxJGWnU6PMMa3oGzGsd9EPkAXGlsCfyAN7RiAgiurZMolGwRGwhIcfnxK3t5dczfFlf5xil4AcBOhDSIuomA3ulOG0JPI9fG614QD4u5CBC3PQRyA0ikvK4QEXW071lUCueVlLyNNaotqzgRWRBuPrca8IATC8EEr/FZnmGOXAF1BK+Vf9qnnbfBrv07P6+qji5xOYqcltBgFaiYFA899eOUlZZnnSs4xDn+Ikb/BnvTSzCbPvtJ+VpXN88nw2aG08VzFD0qpO4uVUNyDFCHQaWwH2dxiMPY5ySMp3h+GSjg/QmMs+vT3mpAZx8SLNEIhB+w5l31Dy57vU8YiisD04yA3f9hRHYMgS5hL5WU3GOOcuc+2FCKP27rYWgpHoVAkT7My23UyUsFVMXurv1B+ZouYaY7GyfnA9Z0zcGhlAIVLij238q+baTrZikxL46NrCpiZv7tQHPKwTzNwrzPJ2Uew7zyUy2rieT3VJedf+REAYj2i/GKpj/xhwPnu15gcB/144yg8bryr6k88eNnFkwzzVSFJe8cZ3Q0BsZvH7nm/OiwtLBPAroj7+fX92p3gcF5bQ6LuV3JwLCZqDTobebxvNdUEvGa1dlU1FCBqAQrSgR3qBO+2E3tAOe2lXbSbo6AC8ihZ8PhEKCh2wx8mz+oKJeamTsPb8cMDv0FflNCGH7U1qYcLGdNktTH+6XfXEWYpFNe/CgF4YV8hsMN4cq/byQ0UNS90hTLKdzgtKpfSOq/0bsEqPA7bgsEIUX/fGKTlWin8eOhk1uSyTZ3zjRsUA9Djb7aUOAtJ7+fc4vR7QIq3J9dipQTo0nEjSbFIA7UxqWtrenNW5i3hgihtQUKWSI62rgtAlpWU6PsQCyGJXOieicH7IiNmdjPA x3gpVNx+ 0FecwSxHmuDwGXPUDSTuwaQTabL5OXRTX9hLe3tGWxrWS2vcD1I81HWXV2Y1910BkjZ7nN0p4rKt/iSFQAa4qbXY+CMblOxFgge6zu2Jrv1BLkCBZKag9V3SOPH4FTYB2giQHlCmbjN2m0tleBFEsn1GrBkEajczboP/tlAmjgAkFrCN+Vyq4t2XtHWFn0rc9OqWVbnDj+Lhppz357iw6ZdeLCLSyHwaFEW4iPC2ZWlQczDN67Lyux0YVUkI9SJsQHvWdrJgC4lPKjhY/Xwm0cggkV0ytEzQtzyq8gBQTPDJbY4w= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Feb 26, 2025 at 06:58:11AM -0800, Christoph Hellwig wrote: > On Mon, Feb 24, 2025 at 07:33:01PM -0500, Mike Snitzer wrote: > > Add PF_KCOMPACTD flag and current_is_kcompactd() helper to check for > > it so nfs_release_folio() can skip calling nfs_wb_folio() from > > kcompactd. > > > > Otherwise NFS can deadlock waiting for kcompactd enduced writeback > > which recurses back to NFS (which triggers writeback to NFSD via > > NFS loopback mount on the same host, NFSD blocks waiting for XFS's > > call to __filemap_get_folio): > > Having a flag for a specific kernel thread feels wrong. I'm not an > expert in this area, but as fast as I can tell the problem is that > kcompactd should be calling into ->release_folio without __GFP_IO > set. We can easily remove PF_KCOMPACTD and current_is_kcompactd() if/when more analysis and a cleaner fix emerges (from you, mm experts, etc). I'm not saying you're wrong about GFP flags needing to be clamped by kcompactd's call to ->release_folio, but it seems more finishing work needed. As you can tell from my patch, we already have kswapd specialization with PF_KSWAPD and current_is_kswapd(). A consumer of large folios knowing that it being called as kcompactd is useful, hence my fix for deadlock seen with NFS loopback mounts on memory constrained systems. Mike