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 86385E77188 for ; Tue, 14 Jan 2025 18:13:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 07BFF280017; Tue, 14 Jan 2025 13:13:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 02C42280006; Tue, 14 Jan 2025 13:13:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E365B280017; Tue, 14 Jan 2025 13:13:12 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id C4E0F280006 for ; Tue, 14 Jan 2025 13:13:12 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 68949140591 for ; Tue, 14 Jan 2025 18:13:12 +0000 (UTC) X-FDA: 83006854224.08.728E1A7 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by imf08.hostedemail.com (Postfix) with ESMTP id 5DCC4160025 for ; Tue, 14 Jan 2025 18:13:10 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=VfcRC5ug; spf=pass (imf08.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.46 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=1736878390; 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=/PzmWEG1n7zg8r6BypqksffUkD59L7DefGMNLqR9DfU=; b=mmrOQArVHvg5hso0XLN6n4YEKg8ycN59jbRR0FCgQOxhiNRomcsZfE0S1X6uRJwxjIlwLf rPKoci3t+b7vsVTovHJ0aZ43cJ8PJdbYkb2vrNngeromYSuNiJ+1OIRFcUAl+sewGh1Nza Eh3BxK0HfcmwFP4R5m+h5S1rI8vN/gw= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=VfcRC5ug; spf=pass (imf08.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.46 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=1736878390; a=rsa-sha256; cv=none; b=fzVSSDhQYxxjYAeel4bCQXB4ZKSQzls48Q1zyHh4RK+Tw35QiaYSXsu+KOr7OcfphUrnwP 5QwmNfGM/nsRMRzVUmSL95lYaxCrg4s0wVyGFLezXmhEV9wgFbkQhXegzUD5YQ0gHSVq7q IZlXYiL1/fhcNjTw71X+ZrofSE8xHnc= Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-aa6c0dbce1fso834989766b.2 for ; Tue, 14 Jan 2025 10:13:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1736878389; x=1737483189; 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=/PzmWEG1n7zg8r6BypqksffUkD59L7DefGMNLqR9DfU=; b=VfcRC5ugDNKxZNwJtK0L5bjTVtcKlI1Z9IFqJuqQNQ2DN6GbHqVgwotMgch75q8vaa 8xdu36jdqv2aNHr7yx3vp2VTCyINvHp5B0nd2TpfliclR4QNxiH6FWcD8BH3YgWRM5wS pzbnOAGwKE7k7qBDRm0b3PA/Yr+UKU08y20h7iBODZOm+WazDqpv8JNIJko2MD4wM68M RrxQ/wB60PT1HqqEUEHNP/QR3tFSIzHq3gf+K8NzDOjCuM8BrRj5PMBqKI7UyGpP5n1T QUtCFudLhrpmU4NgXD+aU+DcI/v7s10AUDs9JsNgH7ax5ZY0ESMiO2lQCe94uxG9axjA VOOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736878389; x=1737483189; 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=/PzmWEG1n7zg8r6BypqksffUkD59L7DefGMNLqR9DfU=; b=hjH4ATYvLwTe2aS0f3mrI+5EMJYhhInQ2lYQZsXr3Cp4rM0aWxTkpn9Sy5ptkopxXq vhcdAV2+91d54Ng+cHrMvfQEXzZG+lv4REp0rah7R9R2f6WOh2vAasMqVQ5RZ4wePglm fQfwuiduCoTa1IHlmv47JLmb5lrCb8BD2C7R04PYbgvjKMlDDbsREZPvxPGJU2qPucnV VRuH5IWnBccRNvE6vy4+abulXLaB6l5ZWUcnxVITSiYBpukDJzQsjL15kSc5mXAjy0yp DVtP7s3MCaM//wrToaJH9cEDAhOhT6TpDIEHtDryEThRMWJxHOqf4neN/7zlTbDy/h9w MvFw== X-Forwarded-Encrypted: i=1; AJvYcCVYwhoqF3d1c1SfMgiw02y4ktOhysmmZJ620IkXQ1sQ8RYq0x5Lo1yjd8CKfWZJPFy6NZq/IMVK0Q==@kvack.org X-Gm-Message-State: AOJu0YzmqS1K6jXtCCwdHXD5yZa0akecU2QNHL/j6Csy6Xfknx91W6+C xbuvunNVhCxgKpRf7UjI2QwPIDWBMlH0mDzV4709umy1F0T4hMaqgsERklEMqIk= X-Gm-Gg: ASbGnctAuSn01guUjdVWDH6gxgTSJqkDZD/NPNYgxHMcZ62e2IXSNr5eErd6Me/zFTL 6HUtUN3th1RozvyvIcvmJ6i+Y8rGaxWOP7Nlp3aS1KWHGaUtfJwd0EFwDgqiUEdNrFDUKBfjD8p cbrwzz7w6AhMMFY/2nU1QD7CixJS8aWM698oUEKb/JikSWpJt1TqSCApZlJp+vnGGIdvxzG6qDO mjd4tH5JCdhDT1k69w9Sk+1jGuOR9hJuWeeKI6sJIz55z2Q642UNqJA8FDqhAgL2MVkXA== X-Google-Smtp-Source: AGHT+IGVtpgZLwqzBv1STerXMBG5F3Xv5KeJkgN+BsIiRzsnFO8C/jiKmuKjicONNJ0I6otqhuGAmA== X-Received: by 2002:a05:6402:520d:b0:5d9:ae5:8318 with SMTP id 4fb4d7f45d1cf-5d972e1da12mr61657177a12.20.1736878388840; Tue, 14 Jan 2025 10:13:08 -0800 (PST) Received: from localhost (109-81-90-202.rct.o2.cz. [109.81.90.202]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab2c90d9ae0sm664853766b.68.2025.01.14.10.13.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jan 2025 10:13:08 -0800 (PST) Date: Tue, 14 Jan 2025 19:13:07 +0100 From: Michal Hocko To: Rik van Riel Cc: Johannes Weiner , Yosry Ahmed , 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> <193d98b0d5d2b14da1b96953fcb5d91b2a35bf21.camel@surriel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <193d98b0d5d2b14da1b96953fcb5d91b2a35bf21.camel@surriel.com> X-Rspamd-Queue-Id: 5DCC4160025 X-Stat-Signature: fif3zuou7ok3hm46akyobcao9ymdjxf5 X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1736878390-635229 X-HE-Meta: U2FsdGVkX182FFUxJ+IM7ECytsLEU8FznAg69gFtyyrvBMTQRGpVdWSjqsLMh6kwAqjhQCAkJxeqxGz/TFRGH/MF1IvlmjyPl6cNt0MWZ5obnOQVE+hnFy++NuB5FbTcTX+U2EnJufpzptxHZzIh/EEFTP2JhQnUPpZbZkuXqLB4AHKWzRgqwIIP0SPB6D5WYWyRJh7PRR3ED8RyxeZiZAp8Dqg/f1vPqqnbE/a1g3bYXDBUUXUD7A+g1PJPfFiqmwbWJxGxJcCfdQ6PHbcziuIxsFJte+6E5vJDxC6JuwADvN0Ai2DluorsCwW2/+dP7rtkqfTc5qAtetnsm8wX082I5zxGPt+Et1aM6kIUjWf3GEnA0RJZcVB7QGGOfrIGWW+CJfaOX3VmcehTZRLa45JGzjkQngUrU0uJP+ewHJVnbbozmUM8zaSWqYyM2oZUP6nLxvUhzORFGtcRtIYKHVy0fDMz5RYD+7KtFbeepeZ7fc6tt17lfvq3/UiTdtw2KvNH4l0fQy8z2vnD6ZyIykqC6otpC/bxWLsjE2BMLoJizMgT0hYyNTZZjkDs0OpZ0R+TKTOCexesUswXIN/iNmCUQlYz/KS7oCkrafBt52s//zb8nGpL4lLfm6rjN3pyxFXN6OITRFBV+3sPbItZkPU1wYwa+kc652TUqCsIhzRDm9C8B+R/c2JA79OXwdezdLP2l//wKc8V+NGgIAVjA6F3cKOtx0HHKnpT7491mbz6se6d43SQsfmiZV9db783qrnDkcgCskaM9ft588AuNaDDPsrExrkR2H/vhG3miv2U29Ts4oc0O46MK/Z4HrAcTXIRes30IKNzMTLH+RElADHA4NjOhY0sploE+9a/AR9BtYFeHm/5mGakOMVNSYxRf5FH56AdX23yz5WtuQ1MdniHPue+zpq+JfDuCDnmdPq7Zx9A8jFR32zpRtIvOgaaZEBXfzTGip4Q2lQE+bs Uu/xh3Hh iumU8AAZdAbcD1aB7Anvw5sujQyZPEBi8W7QYS+vAnFLxYp7ZjZ/03w66amFNXEXorOiQcGH5177/ppElHVyHk553dqqiRd+dwCm9CPJvOjY6D1IRuVqT869r/i+HmdpuE8zFPyCkUVLxXXuRH6aCL5N6JNTKBrzztVCWIBWHPEyPFrBs6rxVMXPxskFmWnlryMdD3+haPXFpntH9gCTiOOTyHdfvh1ERGgBDGwLpVuHHg7KQeCXMQeklDj9059pUwbDSymm83jVMqxhp/oc+A3pV53eNERDJG92WLB3VRI+8MuRRxQN/OMdaIQ== 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 12:11:54, Rik van Riel wrote: > On Tue, 2025-01-14 at 18:00 +0100, Michal Hocko wrote: > > On Tue 14-01-25 11:51:18, Rik van Riel wrote: > > > On Tue, 2025-01-14 at 17:46 +0100, Michal Hocko wrote: > > > > On Tue 14-01-25 11:09:55, Johannes Weiner wrote: > > > > > > > > > charge_memcg > > > > > mem_cgroup_swapin_charge_folio > > > > > __read_swap_cache_async > > > > > swapin_readahead > > > > > do_swap_page > > > > > handle_mm_fault > > > > > do_user_addr_fault > > > > > exc_page_fault > > > > > asm_exc_page_fault > > > > > __get_user > > > > > > > > All the way here and return the failure to futex_cleanup which > > > > doesn't > > > > retry __get_user on the failure AFAICS (exit_robust_list). But I > > > > might > > > > be missing something, it's been quite some time since I've looked > > > > into > > > > futex code. > > > > > > Can you explain how -ENOMEM would get propagated down > > > past the page fault handler? > > > > > > This isn't get_user_pages(), which can just pass > > > -ENOMEM on to the caller. > > > > > > If there is code to pass -ENOMEM on past the page > > > fault exception handler, I have not been able to > > > find it. How does this work? > > > > This might be me misunderstading get_user machinery but doesn't it > > return a failure on PF handler returing ENOMEM? > > I believe __get_user simply does a memcpy, and ends > up in the page fault handler. It's been ages since I've looked into that code and my memory might be very rusty. But IIRC the page fault would be handled through exception table and return EFAULT on the failure. But I am not really sure whether that is the case for all errors returned by the page fault handler or only for SEGV/SIGBUS. I need to refresh my memory on that. Anyway, have you tried to reproduce with diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 7b3503d12aaf..9c30c442e3b0 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1627,7 +1627,7 @@ static bool mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, * A few threads which were not waiting at mutex_lock_killable() can * fail to bail out. Therefore, check again after holding oom_lock. */ - ret = task_is_dying() || out_of_memory(&oc); + ret = out_of_memory(&oc); unlock: mutex_unlock(&oom_lock); proposed by Johannes earlier? This should help to trigger the oom reaper to free up some memory. -- Michal Hocko SUSE Labs