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 56A30C3ABC3 for ; Fri, 9 May 2025 06:58:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 064E06B00AB; Fri, 9 May 2025 02:58:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 014E56B00AC; Fri, 9 May 2025 02:58:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E1F946B00AD; Fri, 9 May 2025 02:58:02 -0400 (EDT) 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 C4E096B00AB for ; Fri, 9 May 2025 02:58:02 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 222AF1CFDF1 for ; Fri, 9 May 2025 06:58:04 +0000 (UTC) X-FDA: 83422464888.02.E822D4D Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) by imf18.hostedemail.com (Postfix) with ESMTP id 55C4D1C0004 for ; Fri, 9 May 2025 06:58:02 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=B4uVffHU; spf=pass (imf18.hostedemail.com: domain of linus.walleij@linaro.org designates 209.85.167.44 as permitted sender) smtp.mailfrom=linus.walleij@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746773882; 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=zsrchUzr9ogu7eW13LMlyCoRCqDSZEi5nnP8GCxMeww=; b=1w384yCEqcoEsTKb3InuRAvhoawmJccSHjVDNUihSXHnmLsBXFMwSMcISOkJ7kCSMOPLHA orZRAG9RrWN8mmK/a00FusetFSPPgQnzc/lU9MeuY7kVAYtFyoZQ0Y/JsfrB3Q9rzJw4Do FsyGDvXEl2VTq3JWuNPM5Nr1MB05EMk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746773882; a=rsa-sha256; cv=none; b=77ZEOn5s1xFoZw/94rjOPmYFT65Wa91b7ee1oOiO2L/qMyj6yNX6N0nOJr4uHlzjL69AS9 x0QZmIgsJuuc0INY1Ye3RXjiGrtIWie4sIQRklWJQjFZWk8QJd7Q5e+9YyghN7jxcLHUsd PSMiQiMOYggh9ecKnfSbxqKh0cRvIgo= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=B4uVffHU; spf=pass (imf18.hostedemail.com: domain of linus.walleij@linaro.org designates 209.85.167.44 as permitted sender) smtp.mailfrom=linus.walleij@linaro.org; dmarc=pass (policy=none) header.from=linaro.org Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-54d65cb6e8aso2235748e87.1 for ; Thu, 08 May 2025 23:58:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746773880; x=1747378680; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=zsrchUzr9ogu7eW13LMlyCoRCqDSZEi5nnP8GCxMeww=; b=B4uVffHUtSxRMLsA2s4lebR4eCunSOkJVpOyjXbIjSf4FHaTC0f3GxygVAtVc07Rn8 yTeJ2823s/sj4blKBMxuOCV/NCRDqRp8tkaG2c1jW97Lw8+3DNYCYohfgp0TytsiM3lu VvvIZ2+v0qlJGkWafnSJGxX/ndygws2v6xjyciy0SnvKT9fNuxLmoOxKifAK6H69HP1B +wYwyqLvNLgp3KruvtD7N5xke8NCS3xI9L7LX/8+0PAHrImKUfw6qoSZ/YeKWVV7o0If b56p6HJyvEh18HkpE3Fovx/o4rpp/RpzKLulqv1Lb9xNS4KW/T6KHkyg1O2yfKv5fIbz h7tA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746773880; x=1747378680; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zsrchUzr9ogu7eW13LMlyCoRCqDSZEi5nnP8GCxMeww=; b=BAtkb4qgfvRnBzs1E8+KOVZUWjRr7sLSCRomXLkXTbRnUoso271MKA9w2PzorwN7jJ 6D5nsnsV8iQ3NKcxvvV5QxX626m8cFW30TOEc+Db2Gf6Go/V8hEULmMgSIHvAvGNH0Zd QjhJ/fv1B1vg4nwfgNzm5x58LxdktFndRAXhxwMGdkCfr7lcjg1H/XZLIWH+aKqFLZc0 3KztpULsqNr2IDaJs8bGPmOSPVyRZfX/wZ3oCTF8+MPWYzdViws4FHtb9po8mOuMw/O2 4xNDEMUIv1uQoahIvPRSJbg6V4idMeDFbH9bIVGTGULPlSjNDXZesPVroAEEfPwtP2UD VJSg== X-Forwarded-Encrypted: i=1; AJvYcCUJBz6IBn1CyXj3BXZBezAXQaD0ybxQuyfJjWVsTW7/Jlqom9JKxCIWHc3H04w+172ofkI+MAnefg==@kvack.org X-Gm-Message-State: AOJu0YzAjGxuRr7A9D8zyYLhBj/nrOusyZhRM/OrVBE5tzdDu/iglzot 8/tgLg7SrLjo9Mtt7F9bvG7HalcTeiGYa0FPmx63fbbOuyh8F+kg3aozDfYHiwYPo3clQWocLJV mm6/hxrJzECcwDIGu3hcN6tp2xfZfoKdvJgh+tA== X-Gm-Gg: ASbGnctm5kRyQx/JHAGdpdgkBSyNk3QAMuUnwUN8mUoaJzCroqNXWKyeDxWBDqq1AjG NMnJL6492mE9xSGUgFxOLe9BdGsM13cKPadSnEHjNGVcc872cP4sN1ua3VSqSUHqj0eaGBnTT5z w9NKKB5KzA+EqFa8PQ85eh8A== X-Google-Smtp-Source: AGHT+IGFF/sk6wgV7ubtNeC3a2yQv2ZZIyehEEduNEUaL+VNjj/SEod5hA+HgCZDWrnnQh5M3g2CxI8Pzmq6emk59jY= X-Received: by 2002:a2e:be9c:0:b0:319:d856:c2f3 with SMTP id 38308e7fff4ca-326c4576dc1mr8683341fa.10.1746773880288; Thu, 08 May 2025 23:58:00 -0700 (PDT) MIME-Version: 1.0 References: <20250507-fork-fixes-v2-0-82ab1e42cde3@linaro.org> In-Reply-To: From: Linus Walleij Date: Fri, 9 May 2025 08:57:49 +0200 X-Gm-Features: ATxdqUGhSu4PUH5W644mFYqF8RhoCwjA6ORrFt4GcfpHDzZc7GTS1yB5bd5kogg Message-ID: Subject: Re: [PATCH v2 0/5] fork: Page operation cleanups in the fork code To: Mateusz Guzik Cc: Andrew Morton , linux-mm@kvack.org, Pasha Tatashin Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 6rmjbwrxddetgu9jnc5ygy9bf1g5numk X-Rspamd-Queue-Id: 55C4D1C0004 X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1746773882-684082 X-HE-Meta: U2FsdGVkX1/zhULYYk8qdZ7al9pcKn8TdQ0a35D7IMI0eWdOZIT6rfs9v+OgASdAx/O4cq+72cT+hWcutEFaoeprtrIeXBSEp7b1bMJkhjFkFcz6R+wDsrLQWN+GI2sr/OW0oZs/wpjZxnxEU5VoLvSFEB9dBbf5UV3OUsM1w4G4lk5+6AUOfoWw6qoHbphI8PGhJZ5uSn2zZwDPYfDo7xiNEg/xT1GOa/gq/lSNX/G96mJlU2UpEEyE5xqSM0+ij+DlQ5ijDnsoW427ZzCp0nJibiiTfO7hWqD4C4bqowht2ac9TQYOKUMG6qkoIbmGcjEz8X907mLK05LpiCMdT+3B1leTAK0ZSpEis+sW+Cv9OttoJJBa/WhSzvxOTFTBuaN8RNOZ20Bo71h4FmSaWCIF36bq6GaQhN8XYO9Vj864mL1Ebt0vYkwReq8ct0KyBYXnPZgoyZ3exEEQRFt4aIezsm3VJ7XrEJXyWTixyBqnn5lLSbVyspe8uo0HWlHs7UO8vst74SZ0ue/HZE49lwnT52lASkffrXK2R3lgWjAS7jvUoJJfpcu3C21bcNMT/z8r9dEcbZhtnKjFR/EOsIyaH2O9y5bWuPMpG8w6J342wM8AlB826C09W+mGxJmy8VqECx7Uc07XqDwp3jBWrSXSmS8iY6+IjEctiH+dFYJEIRY0JK2x8hHVg0BLu1apyilCuQgr37fVF915R5pWvK72EtEB5XtdgODVvHzYiUmxeaCWvvxF3zYQMQ6e4mIWVqPx8UnUuN62UKsml+cYt0fHqHIt5cxkpu0q+0MCcANb9T6hFbrkn2qb6PriFT0qRhLs3070V6xnlY8jFNs0McAIq1UwkwKTWlaRY+x7X8pNaiQzYVyOn7P+iWuZatAZAvZrvOYXzc7Z+u0YWNisLQ== 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 Wed, May 7, 2025 at 7:03=E2=80=AFPM Mateusz Guzik wr= ote: > If readability is concerned I think a big problem is code duplication in > alloc_thread_stack_node(). > > The code instead obtain the stack space and only then do the memcg > charge and tsk var popoulation work. > > The real problem here is that the cache is incredibly primitive and in > fact with a performance bug (ignoring NUMA affinity -- pages get added > to the cache and removed from it without any regard for that aspect or > the node parameter!) Yeah you're right. We allocate with this: THREADINFO_GFP & ~__GFP_ACCOUNT which is a complicated way of writing: GFP_KERNEL | __GFP_ZERO ... i.e. not really threadinfo at all, rather a GFP_KERNEL on masquerade. This is a result of the define originally allowing __GFP_HIGHMEM and that results from the independent changes: 19809c2da28aee5860ad9a2eff760730a0710df0 9b6f7e163cd0f468d1b9696b785659d3c27c8667 I'll try to think of some patch to make this look less confusing. And when the allocated stacks are reused, as you say the NUMA node is completely ignored. The rationale is in commit ac496bf48d97f2503eaa353996a4dd5e4383eaf0. I wonder what would be the best way to make this better? Improve the cache or assume that the MM/VMM itself should be able to sort this out in an optimized way by now and put it to the test by simply deleting the cache and see what happens? Yours, Linus Walleij