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 B5270E77188 for ; Fri, 27 Dec 2024 00:43:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0870B6B0082; Thu, 26 Dec 2024 19:43:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0373D6B0083; Thu, 26 Dec 2024 19:43:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E68EB6B0085; Thu, 26 Dec 2024 19:43:13 -0500 (EST) 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 C81716B0082 for ; Thu, 26 Dec 2024 19:43:13 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 3A891161BAA for ; Fri, 27 Dec 2024 00:43:13 +0000 (UTC) X-FDA: 82938888606.22.6959B25 Received: from out-182.mta0.migadu.com (out-182.mta0.migadu.com [91.218.175.182]) by imf30.hostedemail.com (Postfix) with ESMTP id 2D26280009 for ; Fri, 27 Dec 2024 00:41:49 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=huPuXAgO; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf30.hostedemail.com: domain of kent.overstreet@linux.dev designates 91.218.175.182 as permitted sender) smtp.mailfrom=kent.overstreet@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1735260152; a=rsa-sha256; cv=none; b=h32R4/W0/zmkfIskVB3iOckZz/9Bg9uLQeNuiOJbanIGHjb4xufO4tovmBzaCWiYfOzIQu NEfmRt7cSxbIglC3z85EJ2b8L9RbJO55xPM7q2EP2VbGfBX+DNYWFn87XP6xWKoeoAHpHt 2lOJY4AoTgukejnR3X2Gb5ln8ROyzZg= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=huPuXAgO; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf30.hostedemail.com: domain of kent.overstreet@linux.dev designates 91.218.175.182 as permitted sender) smtp.mailfrom=kent.overstreet@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1735260152; 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=Iw22maXZajwmHe4lU3PEPYOvL49uRn6Y9HVjS0mNUIg=; b=Hb/9b3gx/oPiolMS5bfceyUpSGXFP7lx1Otmx9reHVZKRZE9lxj1uRmRw6EW+TV64VaCcd rLTjj37viQ270yI3hdUCNiXKLn6QxVZSWkj8Mkb5+P3Q9ZehHS3S7EVn6gWHvkcZs7Lq8t XulmtAeTgyiwXyJDxc7AaXSIXuTq7ps= Date: Thu, 26 Dec 2024 19:43:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1735260189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Iw22maXZajwmHe4lU3PEPYOvL49uRn6Y9HVjS0mNUIg=; b=huPuXAgOQ+iAnvgi0MKgQuU4dyLzEti9ke/QxevNYbaNpTP/DIhvWSdVyF23vjAqpL5JxH 3Hh7KIKR4Q7spAatlyNE81+5Y5n3jseqcY+XKCQtMOftITGqJVoq/E8T+SdS6Jf/iPCG+j kMmwKnPyvBslw+/5uSGbaVE2L4Q4rKc= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Kent Overstreet To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, yuzhao@google.com, 00107082@163.com, quic_zhenhuah@quicinc.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH 1/2] alloc_tag: avoid current->alloc_tag manipulations when profiling is disabled Message-ID: References: <20241226211639.1357704-1-surenb@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241226211639.1357704-1-surenb@google.com> X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 2D26280009 X-Stat-Signature: jsod4dynuztqmms3jjb3p5mmgjf9w51e X-Rspam-User: X-HE-Tag: 1735260109-882671 X-HE-Meta: U2FsdGVkX19cljjN5YCr2jkikQIwlZhQIAiIu14S99CN9CUCihvonDn+CPuXtlEEmwbeNUOBdVhlk5iKLpcqWaNx1U63NcMEyu9ZKWtuxWidO25SVnhKVkhMAbYX21ZsFGvg2dtRGYBahrE5ZFgT/b3Qros47axZNnaDoLG1BqRYY3QXcGPIztN/qSSxZ4Xa5L17qPSkG4ljVFvmTr6mv05LofPSOGRKv7OWyq5Hu8Mg6ewNb8hFmx97ljuVZy8LFs7tfK9lwtTZm4F0D7yWPtPqfg2r43Mbch5t3644PTLoKRb+RR7bzMN1WPsDfX60Ixbo9g2jVbHg8S8OVn/mBcN6YN++UevwQ21SBEKO98iwP13jwkjw8vjc0/MxRbZHy13MiTw4I5cIlGvMNISvibtNfxqMUo6c0UVMm9h712k/0GJbF4D0VQ/Z+rSe/5XbzNdF9VEaARRoySJlZpK4U2cuM4a11uieqv2tZnsd76V7WRuvAg4A9RxZ2hv8YWF2pKA+TrxtiOz4DItQ5XOfV4pJ9mU878niW0My3Ktrlrt+FX1C0OjoG2SG7YpeVyHb92D2EGYRsj968NzXwDJ9CvyMsDmy9XhGeG0UNK4MUj7u7u5cOxuevhHBlOE2c1G2/4bXinhu7+jqS6npdxGYXax348fb6ztWIBpahekHGT9fdRo9ANecAvMm/0xVHmPCQy2dOHhy8KjrVcKin7AxfI3U09eOwwKKFNwvbg9eQdpkHoJyhIG+5IqquVGg3PnznC5Z5WeVZeYOOUvEMujNd7nqLd1SjUipJjTdXe57wkcSaKdufwu5oh9ILt9YNqsFuZ0roS0C9+mictdM1ZQYxt4uVK/yTzX3TmuWagkLOZDjKhdjR92HSur1XoFU8uWxVopCOs95kR71t1MbGCXhh4X4HoiLtGxE+2A+KOpIPJHuee4tU3MUi99irgwO58gQXV9KDsHG5CUiCAE5cTV o3jq/hc7 aueHIJtSz/Hjc9J4G67djZwQz7OKO5r/BmnhAGBroPTJrg4/MU6hUanDKFbmJx9qIDZDFFe9F2ZYrjBqKCcI2LdKCitH4gk2+MX4A4McBSQQExERiPxAjBGi0wlCzlr4Lch3rsCzIVL/WJo4KQ1y1Of7GU1jHLQtnyco1P2wm4dYyRFZo97wtiPQzk4pcj2hPgTaLfBa8O1NlEfDDirRCQ41acaNVjscSC76EX5dPXLxjR9s= 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 Thu, Dec 26, 2024 at 01:16:38PM -0800, Suren Baghdasaryan wrote: > When memory allocation profiling is disabled there is no need to update > current->alloc_tag and these manipulations add unnecessary overhead. Fix > the overhead by skipping these extra updates. I did it the other way because I was concerned about the overhead of adding a huge number of static keys. But on further thought a static key probably isn't any bigger than an alloc tag, no? > > Fixes: b951aaff5035 ("mm: enable page allocation tagging") > Signed-off-by: Suren Baghdasaryan > Cc: stable@vger.kernel.org > --- > include/linux/alloc_tag.h | 11 ++++++++--- > lib/alloc_tag.c | 2 ++ > 2 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/include/linux/alloc_tag.h b/include/linux/alloc_tag.h > index 0bbbe537c5f9..a946e0203e6d 100644 > --- a/include/linux/alloc_tag.h > +++ b/include/linux/alloc_tag.h > @@ -224,9 +224,14 @@ static inline void alloc_tag_sub(union codetag_ref *ref, size_t bytes) {} > > #define alloc_hooks_tag(_tag, _do_alloc) \ > ({ \ > - struct alloc_tag * __maybe_unused _old = alloc_tag_save(_tag); \ > - typeof(_do_alloc) _res = _do_alloc; \ > - alloc_tag_restore(_tag, _old); \ > + typeof(_do_alloc) _res; \ > + if (mem_alloc_profiling_enabled()) { \ > + struct alloc_tag * __maybe_unused _old; \ > + _old = alloc_tag_save(_tag); \ > + _res = _do_alloc; \ > + alloc_tag_restore(_tag, _old); \ > + } else \ > + _res = _do_alloc; \ > _res; \ > }) > > diff --git a/lib/alloc_tag.c b/lib/alloc_tag.c > index 7dcebf118a3e..4c373f444eb1 100644 > --- a/lib/alloc_tag.c > +++ b/lib/alloc_tag.c > @@ -29,6 +29,8 @@ EXPORT_SYMBOL(_shared_alloc_tag); > > DEFINE_STATIC_KEY_MAYBE(CONFIG_MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT, > mem_alloc_profiling_key); > +EXPORT_SYMBOL(mem_alloc_profiling_key); > + > DEFINE_STATIC_KEY_FALSE(mem_profiling_compressed); > > struct alloc_tag_kernel_section kernel_tags = { NULL, 0 }; > > base-commit: 431614f1580a03c1a653340c55ea76bd12a9403f > -- > 2.47.1.613.gc27f4b7a9f-goog >