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 7F6E3C3DA49 for ; Thu, 25 Jul 2024 09:01:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E86B86B007B; Thu, 25 Jul 2024 05:01:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E36CD6B0082; Thu, 25 Jul 2024 05:01:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CD7D46B0083; Thu, 25 Jul 2024 05:01:06 -0400 (EDT) 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 B1D286B007B for ; Thu, 25 Jul 2024 05:01:06 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 0E0CA80EF1 for ; Thu, 25 Jul 2024 09:01:06 +0000 (UTC) X-FDA: 82377680532.24.A1A1FE9 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by imf23.hostedemail.com (Postfix) with ESMTP id D7A9614002B for ; Thu, 25 Jul 2024 09:01:02 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gmx.com header.s=s31663417 header.b=ZmLEaNnC; spf=pass (imf23.hostedemail.com: domain of quwenruo.btrfs@gmx.com designates 212.227.17.20 as permitted sender) smtp.mailfrom=quwenruo.btrfs@gmx.com; dmarc=pass (policy=quarantine) header.from=gmx.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721898039; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=PTgi0kJLeNOW/y4L9y9OkM4VfBHNqvEet/Oc6GkMyq8=; b=memHgw5Shr5QDVotiUstzJ4sXfNS4MH6ncJyrwutfYpdWO1WVQfPPuCKDSqh8w5F3s4mS8 Um3ZrtPd+kOoVU1Qu+uAJBkN54YLusTIVuqMXoSAIWH9IEFj/8tw1/ldA14Kqz1ifodl+S SNQglNfvUY/QevEyolwrGFaUPcsf6vg= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gmx.com header.s=s31663417 header.b=ZmLEaNnC; spf=pass (imf23.hostedemail.com: domain of quwenruo.btrfs@gmx.com designates 212.227.17.20 as permitted sender) smtp.mailfrom=quwenruo.btrfs@gmx.com; dmarc=pass (policy=quarantine) header.from=gmx.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721898039; a=rsa-sha256; cv=none; b=ID88KzEh/hHhldXSfH3wCwK7ynNtWWI6jKnUwJLmCPiNfX+T7Euqwde7CDXFusxyDYJ+wu 7kwJFXLHNlj5UfAKVilmF38swLT65Q6GCXB6FW+Lj7IRPoLwKyTFytURFLDtCqAhDuNE/D OwvotMxrZ7wGkjYsyrCcGP7M5xHr26Y= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.com; s=s31663417; t=1721898059; x=1722502859; i=quwenruo.btrfs@gmx.com; bh=PTgi0kJLeNOW/y4L9y9OkM4VfBHNqvEet/Oc6GkMyq8=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=ZmLEaNnCQNFhgzeQGfR4vkV4Xt/QCitGYOwFqcvqgQpAHurJssLotJql29FowIjl 0cN8ehgjBLHoHFlVzKso5sAcyMl/D46bAYBdrOFmn2SHEIa9Lt4jooGXw3CVEQ58e LKjyYuiyv7R0GFA5SGLOk3EELO1bBWdlHT9P53+58a0Toithl/eTr1X66got6Quli 0B1Zd96QQkD1/O98xnAZqs5a2aB2eLcC8dGynX4t+vBeWNuAkcHGRghBxCViNf8Kn /iQneaOUyuu9iwtfXZnFPSg2rpAUSQxWSSl3JdR+uRDdLR1ssqjtbYEh3g66qmYca PIJ9s0wPGGodDnUeFg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [172.16.0.191] ([159.196.52.54]) by mail.gmx.net (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1Mkpex-1rs7DY0XHD-00hBhq; Thu, 25 Jul 2024 11:00:59 +0200 Message-ID: Date: Thu, 25 Jul 2024 18:30:53 +0930 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 0/2] mm: skip memcg for certain address space To: "Vlastimil Babka (SUSE)" , Qu Wenruo , linux-btrfs@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Cc: Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Cgroups References: <8faa191c-a216-4da0-a92c-2456521dcf08@kernel.org> Content-Language: en-US From: Qu Wenruo Autocrypt: addr=quwenruo.btrfs@gmx.com; keydata= xsBNBFnVga8BCACyhFP3ExcTIuB73jDIBA/vSoYcTyysFQzPvez64TUSCv1SgXEByR7fju3o 8RfaWuHCnkkea5luuTZMqfgTXrun2dqNVYDNOV6RIVrc4YuG20yhC1epnV55fJCThqij0MRL 1NxPKXIlEdHvN0Kov3CtWA+R1iNN0RCeVun7rmOrrjBK573aWC5sgP7YsBOLK79H3tmUtz6b 9Imuj0ZyEsa76Xg9PX9Hn2myKj1hfWGS+5og9Va4hrwQC8ipjXik6NKR5GDV+hOZkktU81G5 gkQtGB9jOAYRs86QG/b7PtIlbd3+pppT0gaS+wvwMs8cuNG+Pu6KO1oC4jgdseFLu7NpABEB AAHNIlF1IFdlbnJ1byA8cXV3ZW5ydW8uYnRyZnNAZ214LmNvbT7CwJQEEwEIAD4CGwMFCwkI BwIGFQgJCgsCBBYCAwECHgECF4AWIQQt33LlpaVbqJ2qQuHCPZHzoSX+qAUCY00iVQUJDToH pgAKCRDCPZHzoSX+qNKACACkjDLzCvcFuDlgqCiS4ajHAo6twGra3uGgY2klo3S4JespWifr BLPPak74oOShqNZ8yWzB1Bkz1u93Ifx3c3H0r2vLWrImoP5eQdymVqMWmDAq+sV1Koyt8gXQ XPD2jQCrfR9nUuV1F3Z4Lgo+6I5LjuXBVEayFdz/VYK63+YLEAlSowCF72Lkz06TmaI0XMyj jgRNGM2MRgfxbprCcsgUypaDfmhY2nrhIzPUICURfp9t/65+/PLlV4nYs+DtSwPyNjkPX72+ LdyIdY+BqS8cZbPG5spCyJIlZonADojLDYQq4QnufARU51zyVjzTXMg5gAttDZwTH+8LbNI4 mm2YzsBNBFnVga8BCACqU+th4Esy/c8BnvliFAjAfpzhI1wH76FD1MJPmAhA3DnX5JDORcga CbPEwhLj1xlwTgpeT+QfDmGJ5B5BlrrQFZVE1fChEjiJvyiSAO4yQPkrPVYTI7Xj34FnscPj /IrRUUka68MlHxPtFnAHr25VIuOS41lmYKYNwPNLRz9Ik6DmeTG3WJO2BQRNvXA0pXrJH1fN GSsRb+pKEKHKtL1803x71zQxCwLh+zLP1iXHVM5j8gX9zqupigQR/Cel2XPS44zWcDW8r7B0 q1eW4Jrv0x19p4P923voqn+joIAostyNTUjCeSrUdKth9jcdlam9X2DziA/DHDFfS5eq4fEv ABEBAAHCwHwEGAEIACYCGwwWIQQt33LlpaVbqJ2qQuHCPZHzoSX+qAUCY00ibgUJDToHvwAK CRDCPZHzoSX+qK6vB/9yyZlsS+ijtsvwYDjGA2WhVhN07Xa5SBBvGCAycyGGzSMkOJcOtUUf tD+ADyrLbLuVSfRN1ke738UojphwkSFj4t9scG5A+U8GgOZtrlYOsY2+cG3R5vjoXUgXMP37 INfWh0KbJodf0G48xouesn08cbfUdlphSMXujCA8y5TcNyRuNv2q5Nizl8sKhUZzh4BascoK DChBuznBsucCTAGrwPgG4/ul6HnWE8DipMKvkV9ob1xJS2W4WJRPp6QdVrBWJ9cCdtpR6GbL iQi22uZXoSPv/0oUrGU+U5X4IvdnvT+8viPzszL5wXswJZfqfy8tmHM85yjObVdIG6AlnrrD In-Reply-To: <8faa191c-a216-4da0-a92c-2456521dcf08@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:qxWh8oiyQcVLC0FSmg4GNGhlZ31zfEUh/cWHcX8XIWKWF2aTdYw on7vrejKJPEl3RHecZg6f58vnLHUtXdUHPCtsvKem3nnLCOlI0lgnMZXBHTovPsHXAeXam1 v3lAA23Q1DKBQNPgFih2g/KwvBx60KRrM7VdmwXEDAVDzEQILYUueFSgnSgSlMEvq//H5bU 8Qw3Wt3oYv18KAZjIK9FQ== UI-OutboundReport: notjunk:1;M01:P0:YRi0ivA3tHk=;z2zjEQtaE8ECvUGmr76AeH/URve BApBcknMny7lLNOk+wbmKSXQ22bfTgwsX7Z+zL8yzFMCBDcJaTZraKo1N1eHDj44bXT1VCIsy w760NSn8GNdnnmxj2Pv7CkKJ60gRM4GM0uEX4KQbBtu6ZPWBg9UG1mkD4dFrCFyeV1geMXNXa d9KA8XUw5GHz3O7qr7bC+5RmFqdDisVPc7U+XsIRlIzvPzOPvepCt0ekygQtrNVv5E+m3AUo5 n6S0IxxtgZ77CySvcBzX2OR1uVrIfLo5GMs7sQVnsaMTKAhZLP40bLRBtVpRiaIuGHEmtQY1r VJkTQy5f6/E8fosy7X0bbt/4cMVHiZy3jj0d8SD6neccDe4kuCAqk2JhgTUxPmfhdrCC81KZR FPBsc/uu+9vXQLdU9mDKA9gjdaaHueBJAi8QBLjjH8t2lQaP1hjKf20Zn+2y4XDyXcDIJffow xaAWRs2IarVMFZyHkbQw3hQ//nzW5gvRHfthCowxmP+FT6RiS379hvc/bjrthl0wGqvurohlL x3p6TGyG73/vdHQUwhCd7xnaVU1i2V4IxIuCiUmLEQghjYeCoNghszyaZKzNSvNBY+tlGKqDj 5MVytZqlB6vIakVur62PtQqZoLVzjzNvA1VbXnsTr3VVEDOUgp5sPHRSkjkj1AH5XIqkvDU2x QM/hurZfNuwh3ITb2QDvz9fOqQQt7lqJv91n2JZTYloh4b83SzwxDGaJdOWxpPCZVYd+Nn7TF dHai26HvSpxvJ34XVIjieDZH5mN8Q0lG8uiY5kbvFy9XTPdJrUiHVSIGSK6BmjWauMEyYM88H qek9pJKv3Y0OJU4ZxZYRfY5w== X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: D7A9614002B X-Stat-Signature: p9x64wepc9j33mz59hoyqmkz8dw5q9x9 X-HE-Tag: 1721898062-487713 X-HE-Meta: U2FsdGVkX18WZKC4Mn+Xwwm7BnTKGB2yBHfIyP6Zty5P7rFetlkDqqWixPBgJEK/rptLtVY5uyErdesekELgPb6UKoXOwPfLJTujutpAkC5p964B3oezWfaAEfhwufRCa4zP4yBTjkSJgknIvfbfq9+vzdiPNrsxmaL9+cz1SHaTl84Lprfe2TPddHKeRgAZJ1hw3cmgYQLQx32eb003jxM5X1cLeDL6lMEfb9HNy1zKGD8KC3HVRRlDluhkTI7VmTK2l5Xf3w4xWUPCRI3WTlq6KtQ3oMTnnT9xeuUQxacNYLLA89VJMXo5dmm1QLh0rRIcnQs3P0mvd2jZtSg8iotsmZogfqeMMaPWCVwrnN8rLrZFfEiq2aY4owEWylxRvCscJSWiNubwEfp0kCE2RKYdbeFcLMvK07GPpIz3erx+rKoI0XAVWEt1ajdcYZHDGTmPcefTEjq5tJu1kPSaYCsXaGbCvQnynvQHfpYVMRJIH5tZpFlXGl1nfPqZXGpMJ7WcqAP3PEi4km51nEogcpRRKJ9rTxd96JjjdOQd9OVVvUtFrby8Erwo+3/oySOYCiEBretVI+r7omGyLpsSsH7KiLeQTdjpcEzfyld8YsN+oHwsr0w7z1y6fUSiVe8PxKpgh5liA/3x3gsD7OCoi1gIPkhzdc4AJMDEMZZrC2HA4QhvCWQf6G02HNL+0G9avb7lbKUF2/1c24ERr+gKnSkhOtAuG03m2QjFy9okgaciWPptaX0WVpCy2Ztsnb6dzAzXvFxFJUtQKUrf8zW4ygPPidMQClTsTsbnqnEKPMiSJoUzItRZaW6sKB0A7FTMdzAMuYv43WVLRGwDHpWH1LJaSOJVcRi2/LdIwFco0+6+qbro4MvIkn+VBIg8ApIWCu6vpyPILJy40rtkeHYbBhREyMso2/d2a1npF2egDHXHKOcZDhGf2jFd+FlXy39HK+m5hLfPOFl1hH9HKGV 2NFIN1DX wiU+Koz11muStskO4Vn8rUi+6Q1Vj6N/NGibw1B/a3bCcIQAKNBOdjCq0YDyyFnImaj2d8jOmd7aXI/+Ia916csY84J7ihGKZgyGAOUKRJz/6kWIZL8H74+7IFUyEPgj0BU/a5Txr5OPHQYKq81yvWUBQgkXgfECgB0HmrImnwtORZMb/OehKtsIn3RxZVZ0pEWQ7u9CzdE8xSrbePyGCN7ayZX/StnIJGFpvf1wbtvlyw79sVL8Dt5EQTM22FTy62KrPY9qkf7qa9E3fgQM7SUnXLPqw63tAPJLRX0WNm4rVQNwpFyuHjmpWsQdMrIEX5k05 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: =E5=9C=A8 2024/7/18 01:25, Vlastimil Babka (SUSE) =E5=86=99=E9=81=93: > Hi, > > you should have Ccd people according to get_maintainers script to get a > reply faster. Let me Cc the MEMCG section. > > On 7/10/24 3:07 AM, Qu Wenruo wrote: >> Recently I'm hitting soft lockup if adding an order 2 folio to a >> filemap using GFP_NOFS | __GFP_NOFAIL. The softlockup happens at memcg >> charge code, and I guess that's exactly what __GFP_NOFAIL is expected t= o >> do, wait indefinitely until the request can be met. > > Seems like a bug to me, as the charging of __GFP_NOFAIL in > try_charge_memcg() should proceed to the force: part AFAICS and just go = over > the limit. After more reproduces of the bug (thus more logs), it turns out to be a corner case that is specific to the different folio sizes, not the mem cgroup. We have something like this: retry: ret =3D filemap_add_folio(); if (!ret) goto out; existing_folio =3D filemap_lock_folio(); if (IS_ERROR(existing_folio)) goto retry; This is causing a dead loop, if we have the following filemap layout: |<- folio range ->| | | |////|////| Where |//| is the range that we have an exiting page. In above case, filemap_add_folio() will return -EEXIST due to the conflicting two pages. Meanwhile filemap_lock_folio() will always return -ENOENT, as at the folio index, there is no page at all. The symptom looks like cgroup related just because we're spending a lot of time inside cgroup code, but the cause is not cgroup at all. This is not causing problem for now because the existing code is always using order 0 folios, thus above case won't happen. Upon larger folios support is enabled, and we're allowing mixed folio sizes, it will lead to the above problem sooner or later. I'll still push the opt-out of mem cgroup as an optimization, but since the root cause is pinned down, I'll no longer include this optimization in the larger folio enablement. Thanks for all the help, and sorry for the extra noise. Qu > > I was suspecting mem_cgroup_oom() a bit earlier return true, causing the > retry loop, due to GFP_NOFS. But it seems out_of_memory() should be > specifically proceeding for GFP_NOFS if it's memcg oom. But I might be > missing something else. Anyway we should know what exactly is going firs= t. > >> On the other hand, if we do not use __GFP_NOFAIL, we can be limited by >> memcg at a lot of critical location, and lead to unnecessary transactio= n >> abort just due to memcg limit. >> >> However for that specific btrfs call site, there is really no need char= ge >> the memcg, as that address space belongs to btree inode, which is not >> accessible to any end user, and that btree inode is a shared pool for >> all metadata of a btrfs. >> >> So this patchset introduces a new address space flag, AS_NO_MEMCG, so >> that folios added to that address space will not trigger any memcg >> charge. >> >> This would be the basis for future btrfs changes, like removing >> __GFP_NOFAIL completely and larger metadata folios. >> >> Qu Wenruo (2): >> mm: make lru_gen_eviction() to handle folios without memcg info >> mm: allow certain address space to be not accounted by memcg >> >> fs/btrfs/disk-io.c | 1 + >> include/linux/pagemap.h | 1 + >> mm/filemap.c | 12 +++++++++--- >> mm/workingset.c | 2 +- >> 4 files changed, 12 insertions(+), 4 deletions(-) >> > >