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 09640D59F53 for ; Wed, 6 Nov 2024 16:39:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7C3666B008A; Wed, 6 Nov 2024 11:39:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7737D6B0096; Wed, 6 Nov 2024 11:39:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 63A346B0098; Wed, 6 Nov 2024 11:39:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 45F146B008A for ; Wed, 6 Nov 2024 11:39:51 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C088A16107D for ; Wed, 6 Nov 2024 16:39:50 +0000 (UTC) X-FDA: 82756230942.15.6B8A17A Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf05.hostedemail.com (Postfix) with ESMTP id 9FF1F100031 for ; Wed, 6 Nov 2024 16:38:43 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=dOJE2JWN; spf=pass (imf05.hostedemail.com: domain of masahiroy@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=masahiroy@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730910964; 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=48VaAH2l6Xsr/dm5BBZwG9fORlvEGfs+QBCqC5O5Kmc=; b=8cVvMtnBDX9SiEOSFMseZK9eIulWAJoqkJkflGQ5IvrjWB+gRKTGl7FUZZk8h+cO6pnPLT HYNbCm7lGe5KNNUgOMP0uaZRhJRv0osg8nQ/mNCDv1qqcWo8jg1XOnTeatTZn0+vcuBdil NiZmClKB+rdU0H4d4IEsbKRR/UakneQ= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=dOJE2JWN; spf=pass (imf05.hostedemail.com: domain of masahiroy@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=masahiroy@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730910964; a=rsa-sha256; cv=none; b=57ONtO2YFDUeK2va2swx1jq/jZ1QLhZtLVS/glrpqbFiHnWQW3cEEJ9F7QZAyhctPckTgG 1oFdnQolNu/f1inkAMgC6YdpW8gMj0nYJj8W6e0NlrUujgccj3n3rmiNntozxtZm7NOuIr 0AHBMKRSQ7LcLjn3UN3ZLsqIv7vxPos= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 22448A44046 for ; Wed, 6 Nov 2024 16:37:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B316EC4CEC6 for ; Wed, 6 Nov 2024 16:39:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1730911187; bh=rOw1cNxmV5yTPdcWqbOutZVPQ5MsIKIqjCjabDSKhXE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=dOJE2JWNU00uzXhi+LB+wCrqGUdVxslMiwlG0aSDLSQsdlhwI/QNcG33OSShSKNZh y9W6eZBqwPk9Pu95Seh+V/0AaAJpxiCBjWOLYiGz+HM3aFxSy0zdK9nKHlxAqmmbTz S0+9asjMtN+6oyDS23wFv9G8SFwCPQwGYS7v0ci/kwFY+HwKqYRp/HqKrZyQz87sh7 qEMIZeOV+QYpWjz08xJQ0PXCCs7Ar9PX9KuLXgEGMuVFLE6OB84r8sd4JMG88Ihujg G5L/pyWQ3RYV4mvtaBT5j2rAldXL45X5beA8fFDPn41pzTJinMRxsGMLggXCKaosl9 EGjezBzVP2cjQ== Received: by mail-lj1-f171.google.com with SMTP id 38308e7fff4ca-2fb58980711so65512661fa.0 for ; Wed, 06 Nov 2024 08:39:46 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCWsIgHqVrDacTsowLDaPq3gW68vLy+kWTSQCOjoHhYRbxVD/wD9ouL+nJEeiT3I9ZPvWzrXjR/k4Q==@kvack.org X-Gm-Message-State: AOJu0YzpRiGRtBcv0bh/m3guQzfGeDqiI/LG1UfRWLD+T4xqzoc7FY9R oGWBBOpWsXG+kuKSN5zaap3FDIUNdWP/SybMI9oW/joaxFswGRQELO3opjvk6CQiRnR73wRvYmz NzjSlNmrC3EmjChZgMUjEV9MVMO0= X-Google-Smtp-Source: AGHT+IHzF2jJ4wq8spwQz69HDRPf0ScsSSWGAuM4RFIdZYEHToQmNs2IgK6UCutHxy6jUQXVXP2UuZmv6s+hozl6jR4= X-Received: by 2002:a2e:a0cd:0:b0:2f7:4c9d:7a83 with SMTP id 38308e7fff4ca-2fcbe078a64mr157857151fa.40.1730911185367; Wed, 06 Nov 2024 08:39:45 -0800 (PST) MIME-Version: 1.0 References: <20241106161445.189399-1-masahiroy@kernel.org> <20241106161445.189399-2-masahiroy@kernel.org> In-Reply-To: <20241106161445.189399-2-masahiroy@kernel.org> From: Masahiro Yamada Date: Thu, 7 Nov 2024 01:39:09 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/2] Rename .data.once to .data..once to fix resetting WARN*_ONCE To: linux-kbuild@vger.kernel.org Cc: Nicholas Piggin , Andi Kleen , Andrew Morton , Arnd Bergmann , Bill Wendling , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Justin Stitt , Kees Cook , Nathan Chancellor , Nick Desaulniers , Paolo Abeni , Sami Tolvanen , Simon Horman , linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, llvm@lists.linux.dev, netdev@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 9FF1F100031 X-Stat-Signature: 1o43ikyfhfdxa1rj3taw5fx46bxh7f4n X-Rspam-User: X-HE-Tag: 1730911123-996180 X-HE-Meta: U2FsdGVkX1/io2AEL1nc4DkfZwl+9wwae5pcN7iVAu/YRml/5S/LGe+HruE8+w/LbkvhrXeFbVPipstwswPBKmlvfpwiuaZQ+4fnx5KWGi+2yOh2vYNr7HmtUPT2bV84nMRUgwzQ6zlTSqU5KmQggPNhbQlU7dg6MWqvdWF6Ko0CHUYFXHfeKreFbbOkueDsFCn+TSBQ6g3gvVKkWoen8u31yaqg272kvtjSuXms/hG/jgB12UdTb0YDzEEfWox3GSve5ALNDgVMBqpqOm+yBfaNOD9uWN8DFYBhkRiHhziEND8DyYe1wmyXVnVt2cuzauP2PaJsKhbaPp2sIyopjwMI3W8vVYVopyk6+zwbAOX//i1POazVeowVO/iHo0gpIiapO4sOmzDr3g/4KKlTeauWkTTeYdyt4BJMoQb6a1WNeIDStPsl7jSfZqFPpKN0a0JqPTmRiYDO+bCD60UzOPWw+zv6Pjypyysi5teEfqQfiF3szsDGEePekT7MnfRRuR8iMhLttQX7Nd/FyYNz2irZj6iSWeCSJ3GsCw3mAdC18XISNx0MjqGmLk+sWuAP63YrWLsf5EYaqOE3Yen1XAszz8K70b/B6dUIrsVLjGJk0ZvoistxBGSIIcqybKrNSk0FueFJ0epnFfKm88S6h8RkHMUngmUZChgMNC0JsFF5yN6FyqWuWZEs3uzQLL5Pomg476kjZ4ukwDHG580pnN6KjKDD2eNwLZGCMvo1gM0kteFWoDns1MEhW2hBZiXhpJlkpF7gT038t84NL+x2LhFNdeUHnJNnxW4Y8x7zCG05Y63hJSNMF4Gz0bJiwXPi6YZdsIwhOK0KUcUT0382xtkBFci9sMIWK5fVPxpFLjjb8Z/bMADT4/Jhksd9iNvUU0l1mzwVLfgJKyZmDhjWx7goyySzBcbh1pVln3LNX4xnDLNMbnShND85TUKImunO8/+Fy3sPwVlWcu4llGe SiAj4tNW XtH2sOXm6sWmo68oKPoDDLFIgmToMl7Gpe0f7+ym2L4ihUfDVSstuAzmdQikNu2FHLmt2OJUQboyn7myBQ7vq+h0A1fRheiOx+c+l9K6KccvwUB0IsEfVjUfCUBL6oJ/ogf6j4C4mSh0dgtO8upIB3IT5Evsvwe8dd5/+3nzOystjPbSZltPCer3U38C6TWoasQWE55zkN0NElebb7G1UIMIi9ee+ur5qqIwIX1iKECeE6G5B5598e1XcMHIObQJa8SV5ATt3VOB3HTvBSs7gP/70J0jfVFWoqNc1O0lSWqnFee4kQofusvsDHE/Z9rZPnjlwjJw+hy3p2vpeEWMjGa8gUiPCFWQkW7nRLkwAdsAMKC5h6fx0F+iYooJ6dW7MLaOb 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, Nov 7, 2024 at 1:15=E2=80=AFAM Masahiro Yamada wrote: > > Commit b1fca27d384e ("kernel debug: support resetting WARN*_ONCE") > added support for clearing the state of once warnings. However, > it is not functional when CONFIG_LD_DEAD_CODE_DATA_ELIMINATION or > CONFIG_LTO_CLANG is enabled, because .data.unlikely matches the This is a copy-paste error. s/.data.unlikely/.data.once/ > .data.[0-9a-zA-Z_]* pattern in the DATA_MAIN macro. > > Commit cb87481ee89d ("kbuild: linker script do not match C names unless > LD_DEAD_CODE_DATA_ELIMINATION is configured") was introduced to suppress > the issue for the default CONFIG_LD_DEAD_CODE_DATA_ELIMINATION=3Dn case, > providing a minimal fix for stable backporting. We were aware this did > not address the issue for CONFIG_LD_DEAD_CODE_DATA_ELIMINATION=3Dy. The > plan was to apply correct fixes and then revert cb87481ee89d. [1] > > Seven years have passed since then, yet the #ifdef workaround remains in > place. Meanwhile, commit b1fca27d384e introduced the .data.once section, > and commit dc5723b02e52 ("kbuild: add support for Clang LTO") extended > the #ifdef. > > Using a ".." separator in the section name fixes the issue for > CONFIG_LD_DEAD_CODE_DATA_ELIMINATION and CONFIG_LTO_CLANG. > > [1]: https://lore.kernel.org/linux-kbuild/CAK7LNASck6BfdLnESxXUeECYL26yUD= m0cwRZuM4gmaWUkxjL5g@mail.gmail.com/ > > Fixes: b1fca27d384e ("kernel debug: support resetting WARN*_ONCE") > Fixes: dc5723b02e52 ("kbuild: add support for Clang LTO") > Signed-off-by: Masahiro Yamada > --- > > include/asm-generic/vmlinux.lds.h | 2 +- > include/linux/mmdebug.h | 6 +++--- > include/linux/once.h | 4 ++-- > include/linux/once_lite.h | 2 +- > include/net/net_debug.h | 2 +- > mm/internal.h | 2 +- > 6 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmli= nux.lds.h > index 3c9dc1fd094d..54504013c749 100644 > --- a/include/asm-generic/vmlinux.lds.h > +++ b/include/asm-generic/vmlinux.lds.h > @@ -359,7 +359,7 @@ defined(CONFIG_AUTOFDO_CLANG) || defined(CONFIG_PROPE= LLER_CLANG) > *(.data..shared_aligned) /* percpu related */ \ > *(.data..unlikely) \ > __start_once =3D .; = \ > - *(.data.once) \ > + *(.data..once) \ > __end_once =3D .; = \ > STRUCT_ALIGN(); \ > *(__tracepoints) \ > diff --git a/include/linux/mmdebug.h b/include/linux/mmdebug.h > index 39a7714605a7..d7cb1e5ecbda 100644 > --- a/include/linux/mmdebug.h > +++ b/include/linux/mmdebug.h > @@ -46,7 +46,7 @@ void vma_iter_dump_tree(const struct vma_iterator *vmi)= ; > } \ > } while (0) > #define VM_WARN_ON_ONCE_PAGE(cond, page) ({ \ > - static bool __section(".data.once") __warned; \ > + static bool __section(".data..once") __warned; \ > int __ret_warn_once =3D !!(cond); = \ > \ > if (unlikely(__ret_warn_once && !__warned)) { \ > @@ -66,7 +66,7 @@ void vma_iter_dump_tree(const struct vma_iterator *vmi)= ; > unlikely(__ret_warn); \ > }) > #define VM_WARN_ON_ONCE_FOLIO(cond, folio) ({ \ > - static bool __section(".data.once") __warned; \ > + static bool __section(".data..once") __warned; \ > int __ret_warn_once =3D !!(cond); = \ > \ > if (unlikely(__ret_warn_once && !__warned)) { \ > @@ -77,7 +77,7 @@ void vma_iter_dump_tree(const struct vma_iterator *vmi)= ; > unlikely(__ret_warn_once); \ > }) > #define VM_WARN_ON_ONCE_MM(cond, mm) ({ \ > - static bool __section(".data.once") __warned; \ > + static bool __section(".data..once") __warned; \ > int __ret_warn_once =3D !!(cond); = \ > \ > if (unlikely(__ret_warn_once && !__warned)) { \ > diff --git a/include/linux/once.h b/include/linux/once.h > index bc714d414448..30346fcdc799 100644 > --- a/include/linux/once.h > +++ b/include/linux/once.h > @@ -46,7 +46,7 @@ void __do_once_sleepable_done(bool *done, struct static= _key_true *once_key, > #define DO_ONCE(func, ...) = \ > ({ = \ > bool ___ret =3D false; = \ > - static bool __section(".data.once") ___done =3D false; = \ > + static bool __section(".data..once") ___done =3D false; = \ > static DEFINE_STATIC_KEY_TRUE(___once_key); = \ > if (static_branch_unlikely(&___once_key)) { = \ > unsigned long ___flags; = \ > @@ -64,7 +64,7 @@ void __do_once_sleepable_done(bool *done, struct static= _key_true *once_key, > #define DO_ONCE_SLEEPABLE(func, ...) = \ > ({ = \ > bool ___ret =3D false; = \ > - static bool __section(".data.once") ___done =3D false; = \ > + static bool __section(".data..once") ___done =3D false; = \ > static DEFINE_STATIC_KEY_TRUE(___once_key); = \ > if (static_branch_unlikely(&___once_key)) { = \ > ___ret =3D __do_once_sleepable_start(&___done); = \ > diff --git a/include/linux/once_lite.h b/include/linux/once_lite.h > index b7bce4983638..27de7bc32a06 100644 > --- a/include/linux/once_lite.h > +++ b/include/linux/once_lite.h > @@ -12,7 +12,7 @@ > > #define __ONCE_LITE_IF(condition) \ > ({ \ > - static bool __section(".data.once") __already_done; \ > + static bool __section(".data..once") __already_done; \ > bool __ret_cond =3D !!(condition); = \ > bool __ret_once =3D false; = \ > \ > diff --git a/include/net/net_debug.h b/include/net/net_debug.h > index 1e74684cbbdb..4a79204c8d30 100644 > --- a/include/net/net_debug.h > +++ b/include/net/net_debug.h > @@ -27,7 +27,7 @@ void netdev_info(const struct net_device *dev, const ch= ar *format, ...); > > #define netdev_level_once(level, dev, fmt, ...) \ > do { \ > - static bool __section(".data.once") __print_once; \ > + static bool __section(".data..once") __print_once; \ > \ > if (!__print_once) { \ > __print_once =3D true; \ > diff --git a/mm/internal.h b/mm/internal.h > index 93083bbeeefa..a23f7b11b760 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -48,7 +48,7 @@ struct folio_batch; > * when we specify __GFP_NOWARN. > */ > #define WARN_ON_ONCE_GFP(cond, gfp) ({ \ > - static bool __section(".data.once") __warned; \ > + static bool __section(".data..once") __warned; \ > int __ret_warn_once =3D !!(cond); = \ > \ > if (unlikely(!(gfp & __GFP_NOWARN) && __ret_warn_once && !__warne= d)) { \ > -- > 2.43.0 > --=20 Best Regards Masahiro Yamada