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 54F41C021B8 for ; Wed, 26 Feb 2025 15:55:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BB37D28000A; Wed, 26 Feb 2025 10:55:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B32A4280008; Wed, 26 Feb 2025 10:55:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9D26F28000A; Wed, 26 Feb 2025 10:55:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 7B0FB280008 for ; Wed, 26 Feb 2025 10:55:11 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 2C947161964 for ; Wed, 26 Feb 2025 15:55:11 +0000 (UTC) X-FDA: 83162544822.05.DE3544C Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf02.hostedemail.com (Postfix) with ESMTP id 9145F8001F for ; Wed, 26 Feb 2025 15:55:09 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=AJyw6qcw; spf=pass (imf02.hostedemail.com: domain of snitzer@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=snitzer@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740585309; 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=UpUq74lVCXW//q1IxoIZJQbkWzaUGB61b+atWeHXaA0=; b=FfW6w5AAaR/H9rX0dXpcF0JQVHpS2S44igykgB1xcaTVaI1cm7kAZYUP11qmz+7ZkZWJLi QnEN2MAZESqW9ogrpSY3fYUqE0H5mNi6AySZTOVc4sk2LGQXD0l8o0u0b2i52YdjFKoCHY mJnDJCe/CdhQv7EF49oZdUcwwgSFgZM= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=AJyw6qcw; spf=pass (imf02.hostedemail.com: domain of snitzer@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=snitzer@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740585309; a=rsa-sha256; cv=none; b=k2AxHqzxwhW6yp1u7lspv0ijsQEPnzyAYl/tK8sKVbDl8MOjplSGbL8zfg+lyT6P6p9OJ9 oLCCnqUqtOS966un05wo2fqSNOmOotgu/IMHm7Gemp4pV+x1txax9ne7QMMJReXwbEalfc 7rUSPexYKlm1vKMh3e4b4WhzAFkub/4= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 06C5C612CA; Wed, 26 Feb 2025 15:55:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 56952C4CED6; Wed, 26 Feb 2025 15:55:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740585308; bh=PRveJwF6nYxWuskf47EdIGKLYaRhkKXstkEM2GvVTqI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=AJyw6qcwZQbITcKq+7Fa1+BvfEsObUzTuNcxk7Tn5Voc9l7qJaMt9EUfgnioCwe10 AprLwwgCpKJKQrC/aOHM26SDc7HUGjuW9Cns9SQMh4mmj9o0OCTHEyjDp/2vXU+FWE g0iKFBInNCOUM7mqKzxx1VX1YbfXx/YpIo4Dh7p2MXCoScO9ZAi7L7LsPR7UxiJfWl YIFxmKl6LPKf9b6sKGsDrc+hxii5xpHwmlRYsOFkHZqqP7WFWshT6BUf5VdPdZSTy7 Kgr7EgaQiyiuIzmCG3i/yIj6BVDYLobha89nFxsh1/IbKP1UhzF7mxdkonXSVItcwM XQhi184IKiXiQ== Date: Wed, 26 Feb 2025 10:55:07 -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-Rspam-User: X-Stat-Signature: chy35px4kyjfgoo3s7h3wcdekzn3dprx X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 9145F8001F X-HE-Tag: 1740585309-969304 X-HE-Meta: U2FsdGVkX19kMlH0+v1LVCS/d1tkHHd4Hj6ojZavKbVT3IS8SXzhgSk/KuQMhg48+oacJHFj1rwfMo76/LeCtfUeljYIPFzUS4zJQQrLV4Jy59C7DcPvSGFW3zBHoImxxLnn1FpRzgoDE8aFsTh5iPxiaAf0iDXf+DDnH+8ibRfffQsvrQGd1I9l+dYOoMpWqxxySmHwbv/qqApCqbHICg8LpDSh0qGva+SahdKTpkGtHdcX7NDsK9JlaiH78IqxBE3H4NoVhQKlDsU2xLN8nVK/JfJ1TqM/BTwA/XJqRUhcXIy2d+pwbY0dDKLwmoywQI1a2+fjtSzu20e9I4kBP7+XLq+NfHt17r2gsj0Dc897dn+jh1Kp9U6Pr3bR67w8xr/5lZfMM9jz0AB6V9MIbg0ABbHMCJfk0oPazFMd8Zt0qyiCx+YxvBdhhenHT1z2Xk1xM8VEns4DfUJaTK85EgTxz3sTpeqnz9DFlM9Pdqo/8g+L5kKyT9fVjYbn4iZu1iIurOhSAgWcQLytx0o9sBXSgpu7m6iMjA6QLCpEjYt0gKEhaRuqpOMJK6JyZWcQd0l5ocmVRdhaEe3/23W6vBrbgfj9Zkrq3z7H9rPplCrohbEh0AnqYUVPYUoMwzUvG7ur9DujmhnVbrvHgc/S753bAhrglxS+hmETS7DiaOvq6L7Jn8wDxqc/vZ8LzQC4vrRyQ88ESR5h2AIs8nJQGUIXDv0SjoLXiEc6nCESh98CMDr/yqm4EpxhYQSrchXDenp+2OO3CH9PmJRgMJvrFrs/YPa6ETgPKJAv5UDe3UYAldVOzmMYUortAXUB3A3ErOcJUYOoUMEvN/ga6DXHPzAQjSZmQ3D6iw/pAjOJHtQUOXJldB7LtSmBfSdEx0/hezd5vUR58rC5yYlq5+i4XCoqbVw8sTZyyKBCPtLSQ7OaWw0zYW17PufbMisawXRseZlGRneOzDuJU8mb1KS 7UbcIrO/ gy7b746AWQGmoYM9RpENnqYiaCxbpNVSI1GiRsQAHJoe2AJNmrqnfRGUwQmh7dgPKiyKJEyD8q4amr1ak3mZePmbQ5k++mONgHBEOAZXIO8Gsp0R71sbdAF5dFKiRWzV7fviWWL85SMUjUsq152fuk5FXJA1gUIkls2F5x/FUEib6BoqE4JVin6lxZ69dADtUdh98ECsPouVvd+i9QEDWKCbreQW0BSvhGDAPIkCAzr4G1qFyh694Ait3n2x6bNcJQUcwngcvGbzP/toP1vqe5COh3lucjRXp4tI6lM9Xo6R9VdcJdzZ0cm2+hzpK8OTrCKcv 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 10:44:15AM -0500, Mike Snitzer wrote: > 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. Also, as followup to my fix: Trond and I have started exploring giving NFS the ability to do more meaningful work on behalf of kswapd and kcompactd from ->release_folio (rather than simply punt, by returning false, like your proposed GFP flag clamping would do), see: https://git.kernel.org/pub/scm/linux/kernel/git/snitzer/linux.git/commit/?h=kernel-6.12/nfs-next&id=b8fd0d3864e4bd43eaca1045002e89bede8fd91f (I'm still working on testing/refining this patch...)