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 DBDF1E7717D for ; Mon, 9 Dec 2024 20:00:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5345B6B00AD; Mon, 9 Dec 2024 15:00:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E3F76B00AE; Mon, 9 Dec 2024 15:00:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3D4276B00AF; Mon, 9 Dec 2024 15:00:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E4D5C6B00AD for ; Mon, 9 Dec 2024 15:00:56 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 5B706160721 for ; Mon, 9 Dec 2024 20:00:56 +0000 (UTC) X-FDA: 82876488282.24.B3CA8E8 Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) by imf13.hostedemail.com (Postfix) with ESMTP id 8913820035 for ; Mon, 9 Dec 2024 20:00:32 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=none; spf=pass (imf13.hostedemail.com: domain of riel@shelob.surriel.com designates 96.67.55.147 as permitted sender) smtp.mailfrom=riel@shelob.surriel.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733774439; h=from:from:sender: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; bh=6x3BJGehzZL6Q28pJXlaF85I4QG/1kQD1joAJW9ieuc=; b=O4KvdzxycEYvZv3Aw1ydPpJz0lPjFjkWuuWMdlXofA5CK+KWOjTE50Qv84AvsR08sgIvEf ucvomTCNfnSAosbMM6Ft7vJDNDYWC8jvfARZpjY5ilR+ncZTOsJpW98HamL1k7cgfv0DTe yKB2lXVA71Uabeu08iUdqsAn4u3Xe8A= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733774439; a=rsa-sha256; cv=none; b=7w+EMYxy7uK5RbF1lgA3A0qZ/EoSZZe8JrWU7wIWxT+h0RkcABMChzDpdIXc4NNzD6Hv2m dxbgI8xQRcqYJOh8mvppQV6rCoymc3bOtd+KkVUIeipinUQ6SHbRHbV34JpMG0PbFC24Vy dMmwqWezHzlItQbHAbVid1eriwoNwvw= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; spf=pass (imf13.hostedemail.com: domain of riel@shelob.surriel.com designates 96.67.55.147 as permitted sender) smtp.mailfrom=riel@shelob.surriel.com; dmarc=none Received: from fangorn.home.surriel.com ([10.0.13.7]) by shelob.surriel.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.97.1) (envelope-from ) id 1tKjvM-000000002dV-3bRj; Mon, 09 Dec 2024 15:00:08 -0500 Message-ID: <0623a91b45b8ac96c9b7b910ef3a916f2f924050.camel@surriel.com> Subject: Re: [PATCH] mm: allow exiting processes to exceed the memory.max limit From: Rik van Riel To: Michal Hocko Cc: Johannes Weiner , kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , cgroups@vger.kernel.org Date: Mon, 09 Dec 2024 15:00:08 -0500 In-Reply-To: References: <20241209124233.3543f237@fangorn> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.54.1 (3.54.1-1.fc41) MIME-Version: 1.0 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 8913820035 X-Stat-Signature: npxkhnkt4tpqbbbwjsoc5jrro986osca X-Rspam-User: X-HE-Tag: 1733774432-208000 X-HE-Meta: U2FsdGVkX19oL++CNcT2n/doVsjS/MVpVIXs7dKXD95oRuJxpMYgt50Q6x+m+SP+/XRcbPxX6wYbL1ND3geXdda2Sf+poU6XZDoF89rIsueYqH+dQsgtUQkD0G5nZ6J3T9bmqNR3oujmfjoNWgzd21wgDFsz0hlRnnwchLZFEQk4DgtQJyqcmVVqnOvkjIU44nnsn//l7kvPxNGAD4MYc6LebIRaWazREf+/OmERFiAM/a1v9gsClhgyvUdyZQo0s6G5wq2LSUC86XAMeiR8rN7X3xb0IgltoHrdOL0ES4hHSL8dPtAbphOd2zAdvJwEWZKkcPI8zQOq83kMBq5b3DUGbnGp+3o5K0hsLuGOfuOaAhA2DXiI7osUCcGDPC8KHbxqEK/RvamLO8th4HSAbv1gTMAhpTmds/HUGBbFy/Dgt22WdluyE+cSE7cRfZfAy/2mdd/hKhFGsY0cOfgdPO3nCqFpjcs1E+TyGSFlhJXZDTMb4w/V3FIa6oJSQ7KRqFWcGl7UGevqv0/0La5716+qFLS73FMpdH2SvvxF1xMf12199agi1G2MQ1eRPdXsz1A+a/qMUKZE8Q2wsq0QxwtQud+XfmKqRSGu3LM1Cr9WodogLT13oM+qlqPJLCNHgNEW4ULkeN2UeUnuP0KAz2HkgYBztwbVUJuaT7W/j9ugBOIKlZ892L7tpN33UMS6siWGOytgK68IedMyDBKAXDYACzZCSGuBiLRhBeiJa+K8HW6n7xUVCOPHKTMPGdg+QOxjhrn2zaz7LTk8m8/A5kVN6zPTerhvsTYBuScXc9QILyqLocc04EPYNhVEhVY30bQQ61Dw2OMTHDhwYZbMUIWLinmfsNkh3K3LtANiBEib1iXhtF9FQ3zA6IIpfUAjVQjRsH0w5AOGxTmfJXq4nDzhMIeH+0qfsAZ9hGA+My90CjNBh9yBAn/fwri6SaLfoDvrr51ROTOl/6rC1FM KqIm0vua LwijHrwCgINoJrngkVn+O3vC2ix0zeoQ/0RMKh+mbhBqV5x1kspLaJCkI9HhUj36QZJAY5v7St5eOMMZ8psAWABIR0LAxKd+AZ0WNy5hz1Dy2eJvfbiLGOIqa01hYNIB3msyNwNJgWcElMoHIIIhfUX67bc5BO/4V109ktwF2l9VGndE0jii3gzJRRmM2MOnW+IanTYqECTK9L6WCC87Jpm8eCszBp6DZGNs7EjE4GdIzSdTpPUAs321ZJOYPwklJWIc7Pvndym22V5M= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000007, 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 Mon, 2024-12-09 at 19:08 +0100, Michal Hocko wrote: > On Mon 09-12-24 12:42:33, Rik van Riel wrote: > > It is possible for programs to get stuck in exit, when their > > memcg is at or above the memory.max limit, and things like > > the do_futex() call from mm_release() need to page memory in. > >=20 > > This can hang forever, but it really doesn't have to. >=20 > Are you sure this is really happening? It turns out it wasn't really forever. After about a day the zombie task I was bpftracing, to figure out exactly what was going wrong, finally succeeded in exiting. I got as far as seeing try_to_free_mem_cgroup_pages return 0 many, times in a row, looping in try_charge_memcg, which occasionally returned -ENOMEM to the caller, who then retried several times. Each invocation of try_to_free_mem_cgroup_pages also saw a large number of unsuccessful calls to shrink_folio_list. It looks like what might be happening instead is that faultin_page() returns 0 after getting back VM_FAULT_OOM from handle_mm_fault, causing __get_user_pages() to loop. Let me send a patch to fix that, instead! --=20 All Rights Reversed.