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 B8404C4332F for ; Wed, 13 Dec 2023 16:24:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 566E46B03F1; Wed, 13 Dec 2023 11:24:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 512516B03F7; Wed, 13 Dec 2023 11:24:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3B3188D0049; Wed, 13 Dec 2023 11:24:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 18B3C6B03F1 for ; Wed, 13 Dec 2023 11:24:47 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id D6F66A01FA for ; Wed, 13 Dec 2023 16:24:46 +0000 (UTC) X-FDA: 81562318572.10.7F9C1CD Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by imf18.hostedemail.com (Postfix) with ESMTP id CD6561C002F for ; Wed, 13 Dec 2023 16:24:44 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=D3fc88Vt; spf=pass (imf18.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702484684; 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=al1zKwXigK+nr1dOO4pE4If7myxOPnenyXHtJYZlzFs=; b=j2ueu7Xgq0kU5lIoEmWAmXArun0iX6I4UWTqQqks2G5irJE4JfCCI/qqAj882rMowzsWXr LFLpJfIBQLy5ntCV8U+4dBIj9LoVrGfkBn/hnupHaUzuJBn9q6wLusRJMT99pi3RJVHe5B YUCIg+FsXW05FJD9JH+DRJr1wds84UM= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=D3fc88Vt; spf=pass (imf18.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702484684; a=rsa-sha256; cv=none; b=W18JPCXtCgRNOzWyV4GCMAGw/JC0B3E4gmiVsE/+TuaFFwhgOljvuRXevfQxUtPVF//eg7 P1Imqo0zG8tKDyEyZCGW4zunmoS67dvUD+6QNT0JJi3NmJQK+idioP6uouXz9oBh0Qrc7Q qCQzLQtyV3mJqKUS3NQL686lT0niuUs= Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-a1d93da3eb7so826512966b.0 for ; Wed, 13 Dec 2023 08:24:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1702484683; x=1703089483; 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=al1zKwXigK+nr1dOO4pE4If7myxOPnenyXHtJYZlzFs=; b=D3fc88Vt0oiyMnGeRQgQ8c5qx1OgqVsOF34eX2SFmwVPtn20mn3IQJNyPj3h8e1xXy 3ul6O4ky+SAxJHiDdXGa1cf6n5D7ti+gUmoavBDWRMa3hgcznrB4m3AO2lOnwCvZ1rDf mUoqohgok3bnNdhAn8STRloo+iEW5agzJEqq0lJ8h0GCQ4UAHSyxyrLjTTLXssxmWg2X kaD6HMQ98Z9NxMkX2/hroxAe2oS1n3wg5T0W2SJPjhIxjYtEAHnHe5YNfRk5x/CK9HrV joCqgqhJa5oI+4WFIgT7tXeKmTTe6GkQhRosIR+nvJ/OFisxmnXh2F8wVOWVvF0cQZEY MPuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702484683; x=1703089483; 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=al1zKwXigK+nr1dOO4pE4If7myxOPnenyXHtJYZlzFs=; b=P5VGlkEdZJfRGJz5MdSZWCcpgcea+A4gT+1Lbcg0Ce/DTAHyfWEvpNpSVG/4UDuj6r mdMTCmke8UXuCg8y5p9rKRUjPBdJCCMPX5ldAy/Z7g8jwTpIXxsGsW2UXsoX/O7xSZA4 Asc/BisQWbUTxqVn6uhBtSReWpMG3D73loXotaqKRpWjKbnzXqvarrvr0v9Gioy7ZzZV btjZe+Uk5dPjA2l24h76nKsI1iwSGu3yu4/BKNRCkC3GQb9d3KFdaKK9o/9L6c8QN/8k J5Z3NchRVGneTEElH5hZqCRxuNw7vGj2aACRxya30MHgY/ja+Pk3Lza93wNkohAfH+VD L0mQ== X-Gm-Message-State: AOJu0Yyk8e4C3jCnVujiV8RmrTJAzqXtJDgJF96O2qdpVb1kkqRsc6CJ uNlBeo2WpQHfp2m/TO2ZtE5F44FddsHHkJ+saMPN7w== X-Google-Smtp-Source: AGHT+IGOke13BHo246dTv/nWj/BacYfS2uYRf/2nfvEJ8VMhG8JoarSP8I2l04n8k0DFmc+MGdMyMXGGjWFJYaEIxXY= X-Received: by 2002:a17:907:7287:b0:a19:a1ba:8ce5 with SMTP id dt7-20020a170907728700b00a19a1ba8ce5mr4891437ejc.131.1702484683075; Wed, 13 Dec 2023 08:24:43 -0800 (PST) MIME-Version: 1.0 References: <20231213130414.353244-1-yosryahmed@google.com> In-Reply-To: From: Yosry Ahmed Date: Wed, 13 Dec 2023 08:24:04 -0800 Message-ID: Subject: Re: [PATCH] mm: memcg: remove direct use of __memcg_kmem_uncharge_page To: Matthew Wilcox Cc: Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , cgroups@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: CD6561C002F X-Rspam-User: X-Stat-Signature: 6djtjk8wy4fo9iat3bkzqf1wzi3e7yjn X-Rspamd-Server: rspam01 X-HE-Tag: 1702484684-461643 X-HE-Meta: U2FsdGVkX1/9KDbF0IL11oV6KraJXAHqnQw/aGZBwsk70j90bcrvEa2No2A5HFCdg3VHrwN6SR0dwPCBr/1yOxbBEiX6zO3GCjNNU1c5ggbX6b+WvO7RxEETO7xo8duQwPMmlVOCTDtmXWzgotTMK0jLBQh6ljG0NXCNVeJYiB73zS2RVZhJgxCI8oTgPVjSGZ+EckvlW7j/DzIr0BWG/LItWeij3jNI486lFRhxEfnokUWhCwIAvJUzpiO19gU/7UlZpwMFm8CVVl6/XrWsUbFcglOTU31Dm/fKr4V307nu/YjbZSNfe7iVdNsaODFAFVy2SZzAaq6gi2fIzqr6uyNHTgO3wSb3vfYMWydlhl7XkX827U8p8q0b5bgZkMIrhQVWCxquL4SlIGV/B5MJcPVGQ5Vr49rMrFlZZv53jgvN8/r1IisdOZQY38JU2H4tRjZ6+taRmx+hJrScNTghSFZcsLX2c5RFVW4v4qRf6rAw2nl8k4ob7lAC1MDSMKpYGys0kEm1XUmL54Z+Fx5mLm+7ToL+tSD9fv6eq5mS1cT2CLcbftotdLxKaiOQy7PF5w1w358QY8vQcMvoeFRO9bWQT6aiMOoCLrT32NiVBEtEoxeE2KByATvpXK0fqEJSxuIlIPePrgnXOPzik4gYDfhdONYLzYk1D1wz/y/MF6f2uOQGfEgHl82Bp8Wk/oaWStLq9g7YQ6S4Pdo1OPzWwfsocaI771281HjzPb8LwMaYZKY5/GR2JLpOxG4W/4/339ePXdn/m2nC1NhczO+UDnnuX70y6DTutn9rEUFjBKnS8No5JRczgu6gik5n+taNpHorGOXtrCAweN0ne2Rm+Jp/lUZKVec2jgVfh81wOq21SFNvjX4m0dFPLoc8nI4RLa1DDY+SCXpbkoYsIOdVUCjIflBArpgJIobpy4qwthwFWWuhAl4yqysOlb2p/6uYtAIxVhR4nxn28nIDNfD dZ97y9ah ynOlxaVZbY42IJ4Hzi5uppvo8+A5HMkoQIdXZT4j6NHTTM4UT5xeydfR8HerRY7op4NWxDxNuvllkkZQP86kv+gL3efddgyFp1NaACc6N7woDC+QS/f+KsFkVrEfHh6Zf8DbB9ySgeIrB9Bw6EWKSbpNTLunov7qHZFtXm+73XattZshMeN68iagzR1xfLtNjJjD6Huy11EQTNm7yB1Ik+2Vamgp4qF0UW5WMsCAzYTITcnb4XFXzW0FY17CE4ou1f5sHmHTV7MofBMbHd/hWOVDKTo+pHkQjZclxxVt6OCNbTJbTDAmssXGJeZH71pC2W8quXcp4GspJS6U= 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, Dec 13, 2023 at 8:23=E2=80=AFAM Matthew Wilcox wrote: > > On Wed, Dec 13, 2023 at 07:42:44AM -0800, Yosry Ahmed wrote: > > On Wed, Dec 13, 2023 at 7:38=E2=80=AFAM Matthew Wilcox wrote: > > > > > > On Wed, Dec 13, 2023 at 07:08:52AM -0800, Yosry Ahmed wrote: > > > > On Wed, Dec 13, 2023 at 7:01=E2=80=AFAM Matthew Wilcox wrote: > > > > > > > > > > On Wed, Dec 13, 2023 at 01:04:14PM +0000, Yosry Ahmed wrote: > > > > > > memcg_kmem_uncharge_page() is an inline wrapper around > > > > > > __memcg_kmem_uncharge_page() that checks memcg_kmem_online() be= fore > > > > > > making the function call. Internally, __memcg_kmem_uncharge_pag= e() has a > > > > > > folio_memcg_kmem() check. > > > > > > > > > > > > The only direct user of __memcg_kmem_uncharge_page(), > > > > > > free_pages_prepare(), checks PageMemcgKmem() before calling it = to avoid > > > > > > the function call if possible. Move the folio_memcg_kmem() chec= k from > > > > > > __memcg_kmem_uncharge_page() to memcg_kmem_uncharge_page() as > > > > > > PageMemcgKmem() -- which does the same thing under the hood. No= w > > > > > > free_pages_prepare() can also use memcg_kmem_uncharge_page(). > > > > > > > > > > I think you've just pessimised all the other places which call > > > > > memcg_kmem_uncharge_page(). It's a matter of probabilities. In > > > > > free_pages_prepare(), most of the pages being freed are not accou= nted > > > > > to memcg. Whereas in fork() we are absolutely certain that the p= ages > > > > > were accounted because we accounted them. > > > > > > > > The check was already there for other callers, but it was inside > > > > __memcg_kmem_uncharge_page(). IIUC, the only change for other calle= rs > > > > is an extra call to compound_head(), and they are not hot paths AFA= ICT > > > > so it shouldn't be noticeable. > > > > > > How can you seriously claim that fork() is not a hot path? > > > > It's only called in fork() when an error happens. It's normally called > > when a process is exiting. > > process exit is also a hot path. at least, there have been regressions > reported that it's "too slow". I doubt an extra compound_head() will matter in that path, but if you feel strongly about it that's okay. It's a nice cleanup that's all.