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 EF609C5478C for ; Wed, 28 Feb 2024 18:07:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 666EA6B00A8; Wed, 28 Feb 2024 13:07:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5EF6E6B00A9; Wed, 28 Feb 2024 13:07:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 469276B00AA; Wed, 28 Feb 2024 13:07:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 306986B00A8 for ; Wed, 28 Feb 2024 13:07:36 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D8D66121176 for ; Wed, 28 Feb 2024 18:07:35 +0000 (UTC) X-FDA: 81841995270.27.51B8FED Received: from mail-oo1-f50.google.com (mail-oo1-f50.google.com [209.85.161.50]) by imf22.hostedemail.com (Postfix) with ESMTP id 3F0AFC001B for ; Wed, 28 Feb 2024 18:07:34 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=PMohUbM5; spf=pass (imf22.hostedemail.com: domain of surenb@google.com designates 209.85.161.50 as permitted sender) smtp.mailfrom=surenb@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=1709143654; 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=TpJn79d7ymx24Tp5aF1RCceBrMYpEjjJMLmxKg1qMeo=; b=JZWSexDf8gS9r3xHVQqZaYpWeuws2w7JBsNlV0BrB5ejUC9j50BrXmQc4ooZ1GaK4PRSTm Di/4T9kWaNhZvvJEsq1i7X5ibN+6xjTzqmA7mbxUlBIHBMSSNit/2V95VOfKr3R8oLGZVh MDNGNLijtmmdP3wEt2uDNfbEgDMHDsg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709143654; a=rsa-sha256; cv=none; b=In6bqs+IXzrCJNfLEwChx1b2ruzpcOMyVnJwwxF/qCAnHXQqx27njPgpUdDjzEmZyMWnei 6BwaboLujPfQIIAedDxThLBjge0bbyEuIx+3iBpMLjgT0WsZfFf3qIHdwAWQgW9/fSyXHq zVeLxFy4jmjUSD6uLTCpe+ku5bQOsuI= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=PMohUbM5; spf=pass (imf22.hostedemail.com: domain of surenb@google.com designates 209.85.161.50 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-oo1-f50.google.com with SMTP id 006d021491bc7-5a03f90d1c1so10365eaf.1 for ; Wed, 28 Feb 2024 10:07:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1709143653; x=1709748453; 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=TpJn79d7ymx24Tp5aF1RCceBrMYpEjjJMLmxKg1qMeo=; b=PMohUbM5lNJ4N68KDFKDcH/m1T+HqgYADWBOVV3brLU25dh2BqZ+0shHwXmJqXsHEC F4Qmwk4by74F4gIOV0SlGk7ggh9I09qLs/ICI1ZAjXOFKRpyhjYI/+i6gECnM3vMfprv jERqAggmbVlqmPvgaLYnGLcMc9Z13zPR1e5owuh+QI91FHo0EK1iSYjsTaZOj6ZHil23 8dg5whBBqDFAtY8xxqw/jVdddadceg28EWNvGYbnGfhwZQo5ZDzXuKvIuc/1lJUnkQbI w+sSXoACPu6uZQ2v5LKoM7fYCC+54AkOQJsCwTNfXK9AgF1SBQeR4yRTqZpprmkzeLNb GDhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709143653; x=1709748453; 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=TpJn79d7ymx24Tp5aF1RCceBrMYpEjjJMLmxKg1qMeo=; b=uLQFEx9Jud1G36Wmy+g6FzHb9qq32EX8PYwecQ1oGz0niARSuLc42jfP1pFnycRalW X08ZtgxQ0K2pNsCvPwFlU0Z4dtHSa5bin2jQQcxYhYTXIJEESOeCcDAjH9q7OLz8GNjW hjCrd7JffIsEcpY72cPkQqeBUT0ziGXC0l7nvQQD5n24S5pEBub8CFJGjElhcMqZ5OUn ioDNBxE4bL9N2VOZGU0B5DjkhLWHLsgr8vwaaK98oWceSi/oddDcynJ11SrbMtLL46nO KyoWbVVsWz2cFD20dya2U8WylpoyiqDDfbiHAtCiiUyxAXwFBqZx9sU+5+2AQ/BM4Uxm AFPQ== X-Forwarded-Encrypted: i=1; AJvYcCU+c5ewr3NQxtk3cX03PZL5pedDbaibh7EhelaK8HEzYmgG4IUrPDXqWopJ7Y1c5rT/HuAhCSLxDn6EV/NX1DUJobk= X-Gm-Message-State: AOJu0YzklO3BRuUjYjDja2OofTyE5WckKiy9O2wHcXv45IJcTnNyX8cp kpQjlShzDLLN8KcSY/ig5W6DOV2DwDkpUI3FupWRNA2mH/OMJQy+zsea0nePFpclRqrQqPeK1cE ZsEQIv217Xq6CDr1Em6B52saqEsU7Nh1HtIhQ X-Google-Smtp-Source: AGHT+IE9fAMwB02uuQ94nEpy4LyanC7xT4icsl4y9kTpTBjAiVMb+QVVN/OZ7PFrRjTuaOAC60zwFIwL5MnGwsnXp9Q= X-Received: by 2002:a05:6358:80a8:b0:17b:521f:b2ae with SMTP id a40-20020a05635880a800b0017b521fb2aemr6472rwk.14.1709143652850; Wed, 28 Feb 2024 10:07:32 -0800 (PST) MIME-Version: 1.0 References: <20240221194052.927623-1-surenb@google.com> <20240221194052.927623-15-surenb@google.com> In-Reply-To: From: Suren Baghdasaryan Date: Wed, 28 Feb 2024 18:07:18 +0000 Message-ID: Subject: Re: [PATCH v4 14/36] lib: add allocation tagging support for memory allocation profiling To: Vlastimil Babka Cc: akpm@linux-foundation.org, kent.overstreet@linux.dev, mhocko@suse.com, hannes@cmpxchg.org, roman.gushchin@linux.dev, mgorman@suse.de, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, penguin-kernel@i-love.sakura.ne.jp, corbet@lwn.net, void@manifault.com, peterz@infradead.org, juri.lelli@redhat.com, catalin.marinas@arm.com, will@kernel.org, arnd@arndb.de, tglx@linutronix.de, mingo@redhat.com, dave.hansen@linux.intel.com, x86@kernel.org, peterx@redhat.com, david@redhat.com, axboe@kernel.dk, mcgrof@kernel.org, masahiroy@kernel.org, nathan@kernel.org, dennis@kernel.org, tj@kernel.org, muchun.song@linux.dev, rppt@kernel.org, paulmck@kernel.org, pasha.tatashin@soleen.com, yosryahmed@google.com, yuzhao@google.com, dhowells@redhat.com, hughd@google.com, andreyknvl@gmail.com, keescook@chromium.org, ndesaulniers@google.com, vvvvvv@google.com, gregkh@linuxfoundation.org, ebiggers@google.com, ytcoode@gmail.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, bristot@redhat.com, vschneid@redhat.com, cl@linux.com, penberg@kernel.org, iamjoonsoo.kim@lge.com, 42.hyeyoo@gmail.com, glider@google.com, elver@google.com, dvyukov@google.com, shakeelb@google.com, songmuchun@bytedance.com, jbaron@akamai.com, rientjes@google.com, minchan@google.com, kaleshsingh@google.com, kernel-team@android.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-arch@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, kasan-dev@googlegroups.com, cgroups@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: i5zwotwe4j7ahdd9haiouboazztua7r5 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 3F0AFC001B X-Rspam-User: X-HE-Tag: 1709143654-574681 X-HE-Meta: U2FsdGVkX19qohTN4zyn746YaAeEcP1wfFyz7rIXilKAQLqIEgk5rgRgT3BR7B83KLlolziLNw/JGbDJUCRfDtD1TcZi800acJgZJ+iKMvAeWbQjnEBEB3IuhH/wy1gCyKmK/97/rSfKX+Rnhki/SdHiShMaRLB3H7/RoCXz07TdzIPrYAORsn4i/2rrB9cOHxsQCjQEC1ubAZhyQ4qHHTRbMWK2H1fSNl6a8ov5cFsOzUnetSEG/M6Y7X8G25uOeOvvr7OaOG9I0SlsW7RH1zRJvyH3kekgtKBegsVLl/Z/kWYyQHOJeq11t/JiJY+IWqTIb651e3+7LTTEEqwDfSwb4cdy7XRGe8lW+ezryPGIyf/mQe2QH3XNUO+RQwcQASouW0lAcrxFuzcM9D3dMSMHt2IYbN8k6aQlcKN2gn4wdq3NaboacPA8rwdQ0qhMW6k3I8hI9vFzs9iF8RPI7eltPoBpZpJlrjXaLsgYN8I63EmQ+gmzvw9dJUCHhurxKI2BNpe1/rzdm1wtQ/Ne4mltbvPFM7w+sPBNb7kPifhKd2xs1uu1BrRz+2CQMw1auHHu+l/3Ns4NzG11cFCHZId5tfQY1uLTfXugL0EFFmEGapQ3cUZ17P9opJhuVtpOfwPzpaGhsqpEP5UqyZ6LMcmLqpKwl+kVHy3karLxdKtiS/P0gy22ZGS/oLVuAgRfTr+yr2UAYLybGifC5/U9bg/6aWOc38XTpMKNtyOXMk0I9dn5C5suGHCqGUnEGDMy4bLq01hJGe1h/aG2Y9Ob2s8TJlkLvOXFC6vWNpHdMexN7WqqGsD1blBhm7GVpJfbbDhmx8+1BiQtmowwAc3rFqtRu0z+2cc24hs4yFMv37dtcRBKQeKNg8TAuVSkMmZCBeNXePExg/sgsWQjjLWA1dWqMjzMwCocFCmcWiVCubpcEInYe7TaIfI50esBe4Nieibh24CgnacxZgVPaNU dS581UvD gpfc5pDRqtqQzwg64LvLrpt75vP/nSfKSiYi9j6vbAzqwcvQrtBGdFlspo/aRZoQ8ifIH 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, Feb 28, 2024 at 8:41=E2=80=AFAM Vlastimil Babka wr= ote: > > Another thing I noticed, dunno how critical > > On 2/21/24 20:40, Suren Baghdasaryan wrote: > > +static inline void __alloc_tag_sub(union codetag_ref *ref, size_t byte= s) > > +{ > > + struct alloc_tag *tag; > > + > > +#ifdef CONFIG_MEM_ALLOC_PROFILING_DEBUG > > + WARN_ONCE(ref && !ref->ct, "alloc_tag was not set\n"); > > +#endif > > + if (!ref || !ref->ct) > > + return; > > This is quite careful. > > > + > > + tag =3D ct_to_alloc_tag(ref->ct); > > + > > + this_cpu_sub(tag->counters->bytes, bytes); > > + this_cpu_dec(tag->counters->calls); > > + > > + ref->ct =3D NULL; > > +} > > + > > +static inline void alloc_tag_sub(union codetag_ref *ref, size_t bytes) > > +{ > > + __alloc_tag_sub(ref, bytes); > > +} > > + > > +static inline void alloc_tag_sub_noalloc(union codetag_ref *ref, size_= t bytes) > > +{ > > + __alloc_tag_sub(ref, bytes); > > +} > > + > > +static inline void alloc_tag_ref_set(union codetag_ref *ref, struct al= loc_tag *tag) > > +{ > > +#ifdef CONFIG_MEM_ALLOC_PROFILING_DEBUG > > + WARN_ONCE(ref && ref->ct, > > + "alloc_tag was not cleared (got tag for %s:%u)\n",\ > > + ref->ct->filename, ref->ct->lineno); > > + > > + WARN_ONCE(!tag, "current->alloc_tag not set"); > > +#endif > > + if (!ref || !tag) > > + return; > > This too. > > > + > > + ref->ct =3D &tag->ct; > > + /* > > + * We need in increment the call counter every time we have a new > > + * allocation or when we split a large allocation into smaller on= es. > > + * Each new reference for every sub-allocation needs to increment= call > > + * counter because when we free each part the counter will be dec= remented. > > + */ > > + this_cpu_inc(tag->counters->calls); > > +} > > + > > +static inline void alloc_tag_add(union codetag_ref *ref, struct alloc_= tag *tag, size_t bytes) > > +{ > > + alloc_tag_ref_set(ref, tag); > > We might have returned from alloc_tag_ref_set() due to !tag > > > + this_cpu_add(tag->counters->bytes, bytes); > > But here we still assume it's valid. Yes, this is a blunder on my side after splitting alloc_tag_ref_set() into a separate function. I'll fix this in the next version. Thanks! > > > +} > > + > > -- > To unsubscribe from this group and stop receiving emails from it, send an= email to kernel-team+unsubscribe@android.com. >