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 6A4F5C02185 for ; Tue, 14 Jan 2025 16:57:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F37AE6B0082; Tue, 14 Jan 2025 11:57:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EE7166B0085; Tue, 14 Jan 2025 11:57:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DAF596B0088; Tue, 14 Jan 2025 11:57:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id BE1A46B0082 for ; Tue, 14 Jan 2025 11:57:11 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B065F80B98 for ; Tue, 14 Jan 2025 16:56:55 +0000 (UTC) X-FDA: 83006661990.22.FEE19BF Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by imf07.hostedemail.com (Postfix) with ESMTP id B80D240002 for ; Tue, 14 Jan 2025 16:56:53 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=c5zl2Jcd; spf=pass (imf07.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736873813; 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=k+NCndVlSXNfCvU38YnHTIBhOsF9U+leIyffmLvzRwQ=; b=1jnVKp9NktwR3A1YI+3f3oOUxIVlGm6UnDl8abzpOhRHO4X8fr7wfxYfVHqscOVs7uXKwk CT6aBR6Lb9txI2mANT79MiCGGgW3Uj7ITSY5xxE1WhTHyEEWeEVx1eYAT4QOPuqKa0y05G 0TpnwQwpv/5dSukJ8SGqUxO7UxeEA1g= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=c5zl2Jcd; spf=pass (imf07.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.50 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736873813; a=rsa-sha256; cv=none; b=Gn76aRHh2vRs0iD6j+7hJMfkBd09Q+DJ3vg27LY8qVySc3PWdCE6g34OcDZZY/Wnrn+Agk gw1/VABtAvyj7MFj0fvyJpcxyKmgPAnNV18BAzFlMh8249IXvs7eQWRIpb2Y4wfDjaX48S nGH1JRXshJsk4/MtE6KhjPbU0OPyodo= Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-aa6c0d1833eso405996366b.1 for ; Tue, 14 Jan 2025 08:56:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1736873812; x=1737478612; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=k+NCndVlSXNfCvU38YnHTIBhOsF9U+leIyffmLvzRwQ=; b=c5zl2JcdbEU+zw6OpjiW8epASxH44wPnWxuOkBNiOgqiKfWgZRXVN19tHE5qUxKo0Y iLSvewiE8JAYqqAYZKbiN14laCQPTAplRdoSjI0BTZjeC/eQelERE8riz/oBsJ+yA5Zs hVn4DMSog7s3R3LEpcbcSU4oUo2A1V9cDcoUayowzc9PMU2lzkkr9jVcbL+CAjpPI8aX nSxasgOBBMAYrD4hUl7aHhLoWHNmClz7hjZy6ymtVoPXLFEJPjC7CroEouWp1ZFcpT9U jK7NMJMeU07jFl70t0ijO5Q0gmwK9dRYbu0TFLW+4jOzI55HaT3AJcOe9mnl2mOrvLTa fbLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736873812; x=1737478612; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=k+NCndVlSXNfCvU38YnHTIBhOsF9U+leIyffmLvzRwQ=; b=HtiXzcNAIW5/lbksQIrnxZy7wPZrI2iy3+BzQkKVVRbKcKmESDQTsycmPdJoHIVa16 lL32JKOugwUNpiMFpqmgehgf4Z0uTa+KqKMkshnkbRdh1RjYuZm9wVVrXGS/OOFtgBEb YuTA2WIsj7GqIjph9aGEH74s/sLB4bAOpUHnTBc2KG4dCgIYS6RDX0Ra/eatvmCdFJ/7 18wR8C6JOZJlMEHzJrggcSZuT5lmeLopX25MfYQg+62qhBJbs3ctzIk/+Wyt4lown+4u 3v+I4Uqaz9V7ecVVGL9a8b7md/alSXZPcTTzaH7jTm02wG7KgFM2rH7ifWiwqPR9IcPf czfg== X-Forwarded-Encrypted: i=1; AJvYcCUu3shvJUYmOutdTyhuJz09jH/NDEkH2lzTNs08rVdwqw+wS8ftihjG3AZvSPoupexIslI+oVVLng==@kvack.org X-Gm-Message-State: AOJu0YyqcdtGkH/iQ7cY6BBsenhkly1jocJshdtOKJ7Umnp6/Md2/b4M WlI+oORFfGWFmg2xj1CsOG5kaVKJYDlfcQqgFz7Z3b7Py7gKeUPYYiuumy4yqPA= X-Gm-Gg: ASbGncuv072piv0JkTBBiAuO0f8uxQmnEznUMllczK6en/uk7Wtm9mqueeh4bZ9g8bb KzP7Sgx3zppqBrXpjZ3pGBfFlaHB5o6TDiHvczgAQ2ZXsObcf/dz3mSIdCViw5FBL6iHpht1Lgr nl8+w0y85y0CEsyeFyhUXwGoESGxObNVrwfmO4OncQBKcjHZ+abxGW06HnNQDYMoYsNbWSpK54U 7FdDKHUmVOHUKjaOdMYj8GW1/mmVT3EHjsj1lR8sf9ZD3HIP9bAGiYBr88EajRFYZJBbg== X-Google-Smtp-Source: AGHT+IH1ZgJew7m6NRAJoySqboWQ70RFJl30LWnHsy4ktkPD5nv9TCgRb5tHdsOAoWY46J8BU7kQWA== X-Received: by 2002:a17:907:7da5:b0:aae:83c6:c679 with SMTP id a640c23a62f3a-ab2ab748f2cmr2569261666b.32.1736873812276; Tue, 14 Jan 2025 08:56:52 -0800 (PST) Received: from localhost (109-81-90-202.rct.o2.cz. [109.81.90.202]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab2c9562519sm653091866b.132.2025.01.14.08.56.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jan 2025 08:56:52 -0800 (PST) Date: Tue, 14 Jan 2025 17:56:51 +0100 From: Michal Hocko To: Johannes Weiner Cc: Yosry Ahmed , Rik van Riel , Balbir Singh , Roman Gushchin , hakeel Butt , Muchun Song , Andrew Morton , cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@meta.com, Nhat Pham Subject: Re: [PATCH v2] memcg: allow exiting tasks to write back data to swap Message-ID: References: <20241212115754.38f798b3@fangorn> <20241212183012.GB1026@cmpxchg.org> <20250114160955.GA1115056@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: B80D240002 X-Stat-Signature: j1j6zcxr3wi45g3s4cnqhcdthndhdmo9 X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1736873813-71778 X-HE-Meta: U2FsdGVkX1+KgGFBenqB7iPH0L60vuZw7b9X5Vyh4mGqes5PgUGmpE8/IJHZzAt3TeLW75EdEWProjlzpgoxUmkMzjVR6aHilw5Y2RCj0+JPu2ERm8a814s4tBBCrxZFCEhyGbmv2fuw2T5GcY/1QZGESZJdL/TRE46mxEjilE+0InYVbk0Zyw/WMktV2BJcscm/aHbuhhkqLJmdcH+KMLElwY2QlsJh49vxgHkHRiGrymR21kbl1RsngPSOAs34N5CiwztiqtdoyECqjbRcg1tLLs2BE1JNTuJa6cavcnr4QlWiKOGOFbIhQ+NmxF4TJs2IlzUegcYKbP3maBqPyoLFs8yBjWCZ7xeYtoVWoPjRJYdr9fBWBr2JoHAd66OAlM5pM4rCXD2irCvz1RMI2wCdlvzcinwVx6GVpEpACjiwcPmqvwODhx9h/UGLnAR0CC7Vl1RKgYNzEjH0fYbbo4FYsTdpuV2dAC1VMOvX8C8Vk/BQEihjEZViag28xHCqusm0CfXU4PfWSCRy2PQ1TCVfaO7DXRAQQlpD49h+BZw3MQu6aHw8GxXIbXf6zq3WFCI4g8g8hWmom0LPPmcHBGIv0dsqczpqSXhHGUtZ367ij1k0y5qUOhtLxrf0fs9f0KWRPD0ZE2Xs1sHtoHTeuQJkbDZyu5GJJO+WKzXXGugwiQArz2aaAIEefsTGY3Ie1JqN+fW2Tubapm9sXIXBOcVzPXDLuHWhtmL+ZckEZhfFYRRbkDH03dMFYTNvQqshSBcvC/Xbg7fjwz3cO8I2f/bOr1yWLIDEcku1fOiRhfmc1H3I98TleXwTagvy4c5UTwqnyIb3Mfx+evMfKL9CiaYvISZlmoGLUrwu1v+5CsMYJutsuqyUaiTpQFgQ5UVZXKVcgwARpbqfyhqTZfkEzfvGwrFU6B4XHfV6kaFrRRcY2AUMzKWGNYkLeTlF3a88rtmWcO5PZ641SnsKYrv yfT1fVQD 8p90aYJLcTsw8TNAzc1YQBivGZF37McyOLxj7m4eNmymSl0UmNQ237AnSHKLeBeKObs0XiOJJp1zuBDPx43VOY8Czq/4tgDtQwjOsJ938FlxUTvX+X8qR9w6Zv4d3czVfk0aAF9ZdSRvX8DlSC6wa2DUsLeNoVu8QQ+VjrBOYpv5LuSgQ8uRLi5aQ2yFMzUu6irwtAZ6tWH0Xv0pt9ZzOJKqR0XQ7/kf/MMn0UYLu2zFtuJlAnSVl/FumSEaX8uBY/bMz+0akMhy4XlpoEy9Yt09W1VYAo/zkgbWGhYrkwX0Xd8SdgoWhbS7RIg== 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 Tue 14-01-25 17:54:17, Michal Hocko wrote: > On Tue 14-01-25 17:46:39, Michal Hocko wrote: > > On Tue 14-01-25 11:09:55, Johannes Weiner wrote: > > > Hi, > > > > > > On Mon, Dec 16, 2024 at 04:39:12PM +0100, Michal Hocko wrote: > > > > On Thu 12-12-24 13:30:12, Johannes Weiner wrote: > > [...] > > > > > If we return -ENOMEM to an OOM victim in a fault, the fault handler > > > > > will re-trigger OOM, which will find the existing OOM victim and do > > > > > nothing, then restart the fault. > > > > > > > > IIRC the task will handle the pending SIGKILL if the #PF fails. If the > > > > charge happens from the exit path then we rely on ENOMEM returned from > > > > gup as a signal to back off. Do we have any caller that keeps retrying > > > > on ENOMEM? > > > > > > We managed to extract a stack trace of the livelocked task: > > > > > > obj_cgroup_may_swap > > > zswap_store > > > swap_writepage > > > shrink_folio_list > > > shrink_lruvec > > > shrink_node > > > do_try_to_free_pages > > > try_to_free_mem_cgroup_pages > > > > OK, so this is the reclaim path and it fails due to reasons you mention > > below. This will retry several times until it hits mem_cgroup_oom which > > will bail in mem_cgroup_out_of_memory because of task_is_dying (returns > > true) and retry the charge + reclaim (as the oom killer hasn't done > > anything) with passed_oom = true this time and eventually got to nomem > > path and returns ENOMEM. SUSE Labs > > Btw. is there any actual reason why we cannot go nomem without going > to the oom killer (just to bail out) and go through the whole cycle > again? That seems arbitrary and simply burning a lot of cycle without > much chances to make any better outcome > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 7b3503d12aaf..eb45eaf0acfc 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -2268,8 +2268,7 @@ int try_charge_memcg(struct mem_cgroup *memcg, gfp_t gfp_mask, > if (gfp_mask & __GFP_RETRY_MAYFAIL) > goto nomem; > > - /* Avoid endless loop for tasks bypassed by the oom killer */ > - if (passed_oom && task_is_dying()) > + if (task_is_dying()) > goto nomem; > > /* Just to clarify, only if we have strong reasons to keep bail out in the oom killer path. If we go with the change proposed in the other email, this doesn't make sense. -- Michal Hocko SUSE Labs