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 920B1C5AD49 for ; Sun, 8 Jun 2025 15:50:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CCC916B0088; Sun, 8 Jun 2025 11:50:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C7D3E6B0089; Sun, 8 Jun 2025 11:50:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B6BDF6B008A; Sun, 8 Jun 2025 11:50:51 -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 964E26B0088 for ; Sun, 8 Jun 2025 11:50:51 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 411825FE88 for ; Sun, 8 Jun 2025 15:50:51 +0000 (UTC) X-FDA: 83532671502.23.AED6B7E Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by imf21.hostedemail.com (Postfix) with ESMTP id 4881E1C0007 for ; Sun, 8 Jun 2025 15:50:49 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hQoTzFEl; spf=pass (imf21.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749397849; 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=Mawc/hjEIEP4GahIikXDvnZC+zUB4+YLU7y4fFNxo+0=; b=fxn+Zs0Nnm/DE0dEYn2AErVVB4eceQ/qVF0skmEyoHNITshK7I6dhjZYiyQprOgxjf1Q+U kXF0C1zU/fQPZhvDo1ILXDWd5GIsLfl7/5CjIKBgkAnHY+UOp9R873yOAOmNK1yddSBSdX 9VD8hqrGIsS04/atxL46IRzcj32FBxA= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hQoTzFEl; spf=pass (imf21.hostedemail.com: domain of mjguzik@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=mjguzik@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749397849; a=rsa-sha256; cv=none; b=W2B0MrGJ0zq/s0kXtkGBD3LVPXThaMWLB6avMYJ/M/yahrNItJDiXOcrwJKZF0agCKP75k YJnx6cLqoz5uQXB7mgvPU69wKLOYZXDHUr2AMi6hfSARCHInSGs7eW7jdAaeLXgSGOmKxt k3Crelpk4MlegXjN9GndGhORKKbeAYk= Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-adb47e0644dso777802166b.0 for ; Sun, 08 Jun 2025 08:50:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749397848; x=1750002648; 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=Mawc/hjEIEP4GahIikXDvnZC+zUB4+YLU7y4fFNxo+0=; b=hQoTzFEloCXJrXrusyaItqNS6As5IVTj9IsaU+IpDQ2kbxYCUgAMRGBlcc4kUfzaWU jquKUshvV3jJwZRYwwEQEjkn0bTFgYvHGYVuxlHygj9Tn50itfNP+wPfWkb37KpJudSr vSyboTUnj+8uwWkwdAyPO+2La5q3hT+PwAOrzzohwKwPGbC6RohlbcPgTRv/ldhc1Rsc a15YNhTMH52lHgf52MkpLUALCEH3aZmACVlXkW9p+Lc2L4KGXMYzEMDqHSqRMxpQ5AAU +sagx+bq4oHx5xPqQponsAXT0jUcxrl+3SOt0Sazkx/r3AHzEfjoFyRSzj1uISFBqVnp KTVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749397848; x=1750002648; 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=Mawc/hjEIEP4GahIikXDvnZC+zUB4+YLU7y4fFNxo+0=; b=SLj1iWSvE/YobfsO+JbNfWk1JOCs1SOtpv3GFUB2CCFYSWLS0OmlxHZyTTSo4aJYxm 8iW0zZGzCN+QosaVfrvZXk5Mhp69rfhzg3tfVygcVh6L/vGlcQ1bV+S2HMdgdqX2HwZW l5f5LXUZhmvs/c2YgVQzXOoO0acVM6xfcdxh317DwqdKvn19J8c8O4zhCik/gZeUcwPg aQVPRLHqE9/XB16Xw6FNkmkmBj8jExSqwWcuS4BC5ZenegHhwqul8ZnJuT5znwgRmzoS 44zGv2k9YvLA7QLw+ftdEmv8tXQkoW+Suy1eo3BtH/xsV2YjxtmDYvGLVVqLLkuDJjD5 f+QA== X-Forwarded-Encrypted: i=1; AJvYcCUO/rTASS7Q/i7KG67+w2H5E05zvW7vb1+mTFUp9ugYN3FHoIqs1krhGWdRzHsELIf8zcchSJb85g==@kvack.org X-Gm-Message-State: AOJu0YwDDN93E7HUwY1fa4LKf27NcE1e4Nmr/Ggo2D1SQex86TXJOrfw J/6P4TN/l3BTNx5zQatGWpRdsILHQdzMeCbGt9cc6SgXBzfK7J6a1NGu X-Gm-Gg: ASbGncvbrdy660EUPVYCrKgLBIyIxALk+8DqrSAZJ9c3rXhRlOHHqZuIyALh2r01AyZ VNQX84OgoFfecLUx9i7r/NvsAHjlW3cVvJbnYl3SnI4KpJTzTLcasNDLqPiL/G8PKvLWujvHwQJ gz6Euch5OtWfbD8v52uWmFxJbOY04C543m2pWJgOvJB7mm+uq+GKuM3aF3SuKlY4oohRtWtGd+R VsHVRFT8RiA/8thOeCoDvIm1/4WCa3iMtT22D8CymXIu2btw2h0VDlY43ciXAbtTWYqL9x+cyK+ 9e0RiskrwnTInCQ/81zB3KwnJrK2574DGODxiTzk7zwpLCZlT7ncEwpFABTL3daf6fg= X-Google-Smtp-Source: AGHT+IH1a7k2SlTTME9RiKmu2TSHuf5P++u1/KhfTj8OVZsWfdSp1kkhb3YRrJfUvAKQ7HGUKPLiFQ== X-Received: by 2002:a17:907:9726:b0:ade:4121:8d2d with SMTP id a640c23a62f3a-ade4121a183mr483102866b.20.1749397847367; Sun, 08 Jun 2025 08:50:47 -0700 (PDT) Received: from f (cst-prg-65-195.cust.vodafone.cz. [46.135.65.195]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ade1dc1c4c9sm430116666b.108.2025.06.08.08.50.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Jun 2025 08:50:46 -0700 (PDT) Date: Sun, 8 Jun 2025 17:50:33 +0200 From: Mateusz Guzik To: zhangzihuan Cc: David Hildenbrand , rafael@kernel.org, len.brown@intel.com, pavel@kernel.org, kees@kernel.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, akpm@linux-foundation.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [RFC PATCH] PM: Optionally block user fork during freeze to improve performance Message-ID: <5mj4mc7asiplmgbqyl2uaw5cdpt6dpdrhtapi63dcrowozcwuq@c4cxyaxwe6aw> References: <20250606062502.19607-1-zhangzihuan@kylinos.cn> <0030581f-d50a-48f4-86f5-58e7883f705d@redhat.com> <6350624c-7293-43de-8788-e52a236d91fb@kylinos.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <6350624c-7293-43de-8788-e52a236d91fb@kylinos.cn> X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 4881E1C0007 X-Stat-Signature: 98u5w6h9bp5kuhydyi8kyiihjdms1jth X-Rspam-User: X-HE-Tag: 1749397849-4834 X-HE-Meta: U2FsdGVkX1/VABc7h4yuD+U9Rf7xbH2gTB6nInFRlOtr8kA/WehoApxG01GrMGPZv3p3q1G5vrn0Y6SGa/yBQL4KROL8sS2lgmzok8fMSrC4j7bCdGlelBAoZzz96Bzfew2bwFMs2v27sBa/NczSTBKgKlOV7ppNLhmSwv9cn7t37qx7IDUdizwSRl5VbGcjdk8Z2bcBOj7eHeFBnqtecfcOvrAHFbM5cucj8+GhgK7IS6avvaNOg38/l8h5c1jpnBEsozINJHOalb/ahzyFrp+FvmKe20oSpnnEM28YW+D5I8aqh0ANOhfQZf87Gh79faIQynDW/ViBQ0EuI4PEXy0QzDyhxxUjyuB76E0Bbc0SD1c7zP8xN12SNtOinSz0e6nI//0biQRRMOOt4ue+3UDd52m8kWQOg2dAWH19ltzcnZQZdTWjaeTwuv/rx4DUxcu1niKOzRcP6aNNUiYpmfmAonjKsgpiYygZj4bSMh3m9qhPilaJWyEE/TssOC6vH0fWp2igJ5jZe4A5vnI6wZRk5ZWlUWlRBWe+AmnzxXv85UTVGK+MFy9FMYmqoDxOUFJ6erh0pGf3CaIZcYvqUnli4dfR9CYg9DQl8IbdNAlCR44QE9MddiwsG7xe3xPDvf0isuAj8ulAv357/Uq6Z4dUwCNals2usXHCPdGyHiHcJXUY5WJVpBA5Sry+8Hquf/6r8AWUs4nBNiQhx2rnbXK2gVwoAUvVNWm7/JQSS7C9c8Ox5jg0FtjN+i86aOGCP2jXjsgf7H6QAcEiMQkXv2SlXn73PZYywFhkh4vD3Ws4/5ttuWWd0aTVh8umVnsXajrtMaHwBL0ZulJY6TVgI87JSMpG0GFi8SqUruUxL1ZiIQND7PG4i+8Oj36DpMNucGSqJEBTNtdWEOeMvoOx9ZarbNwdM5uxxB15Sz0uT5i0CBxluU50EMfuKOdInPZxxyPAfULj3negdjCIV6X bJgoL8PW LKN/W//SS5FKlVFU/Yk5uOGzIttMA9srXMRPSV/Lhpn7hFtEoiHsiDURkVthOROV4VoPqLW1Rs5Lklp9BQtzJamsk0aLrWtv2ZRDXCtl30zuAqEHIncpEMLdCichURDDfK/FO6laQphS/NXOmJRBzRqMkwWj+jKG4Lv9inQuxLTRYZ222kCjrD6TbXIoOKlUISLPMupsc4fialAlAHhBlopLf1zvcIFZIak8mYlaRiEEa26FVeorVhn2Y1r37aXsqWlB8dd51CSi2OaK5Wbzs9ZAA77gk4mgLrcE9k3TXK3N+BCxcH2yF29QS0CWqJy/C2CcSCv63+/3D8kYefMcUmjgL0NzC2YsYf4fB2judbnONmB7XuOJwu6cNRUFzPh4EYSm4Etw6J47YlWw= 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 Sun, Jun 08, 2025 at 03:22:20PM +0800, zhangzihuan wrote: > One alternative could be to block in kernel_clone() until freezing ends, > instead of returning an error. That way, fork() would not fail, just > potentially block briefly (similar to memory pressure or cgroup limits). Do > you think that's more acceptable? So I had a look at the freezing loop and it operates with tasklist_lock held, meaning it already stalls clone(). try_to_freeze_tasks() in kernel/power/process.c contains: todo = 0; read_lock(&tasklist_lock); for_each_process_thread(g, p) { if (p == current || !freeze_task(p)) continue; todo++; } read_unlock(&tasklist_lock); I don't get where the assumption that fork itself is a factor is coming from. Looking at freezing itself it seems to me perf trouble starts with tons of processes existing to begin with in arbitrary states (not with racing against fork), requring a retry with preceeded by a sleep: /* * We need to retry, but first give the freezing tasks some * time to enter the refrigerator. Start with an initial * 1 ms sleep followed by exponential backoff until 8 ms. */ usleep_range(sleep_usecs / 2, sleep_usecs); if (sleep_usecs < 8 * USEC_PER_MSEC) sleep_usecs *= 2; For a race against fork to have any effect, the new thread has to be linked in to the global list -- otherwise the todo var wont get bumped. But then if it gets added in a state which is freezable, the racing fork did not cause any trouble. If it gets added in a state which is *NOT* freezable by the current code, maybe it should be patched to be freezable. All in all I'm not confident any of this warrants any work -- do you have a setup where the above causes a real problem?