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 41778C7EE31 for ; Thu, 26 Jun 2025 13:53:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D38CF6B0093; Thu, 26 Jun 2025 09:53:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D10596B0095; Thu, 26 Jun 2025 09:53:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C26866B0098; Thu, 26 Jun 2025 09:53:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id ADCB66B0093 for ; Thu, 26 Jun 2025 09:53:16 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 2DC8F1A01FB for ; Thu, 26 Jun 2025 13:53:16 +0000 (UTC) X-FDA: 83597693592.29.B738A50 Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com [209.85.208.169]) by imf03.hostedemail.com (Postfix) with ESMTP id 3706E2000D for ; Thu, 26 Jun 2025 13:53:13 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OIKumBQc; spf=pass (imf03.hostedemail.com: domain of snovitoll@gmail.com designates 209.85.208.169 as permitted sender) smtp.mailfrom=snovitoll@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750945994; 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=zlpUNKK3G9db+EdwcDWwBbzYx+1GRPZcFPyn0Q/NIe0=; b=0mxOVdeKFj1tPDRO6QJLaKMutTiY5XXIFzLouShLD00puBPamlXrLo667oFDiiTkk70TRp wIIIL0UMyZED75buaQ/J7HcpBCypHkdOZSMp4d1KCJrxsJzkYF+4+PtqnWgetNL16mBGdf vjb6yMPCZ9xGO8psUmuTxFg8V2WuiU0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750945994; a=rsa-sha256; cv=none; b=j8SSkL630Zh3A6pdsQN5AWfaK8qLpEh/zM82+jqHkwz6l0afvi3zVIwCKuZBw/dNbtDyiu oFLH/nhyikyByRInRfHJpu5X1Yh0H5d88mzbXZUNAoS8ClJC7nY2RlewU5pa6PrgL9ZHPQ QuJd+w01FDX6FxqQw02kDY7c11A6v7I= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OIKumBQc; spf=pass (imf03.hostedemail.com: domain of snovitoll@gmail.com designates 209.85.208.169 as permitted sender) smtp.mailfrom=snovitoll@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-lj1-f169.google.com with SMTP id 38308e7fff4ca-32b7113ed6bso10383791fa.1 for ; Thu, 26 Jun 2025 06:53:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750945992; x=1751550792; 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=zlpUNKK3G9db+EdwcDWwBbzYx+1GRPZcFPyn0Q/NIe0=; b=OIKumBQcMdLZr//tOBfRBGbF3PUEIYcg0j9sWbBaBxeXImAZLdeTGX4wwMh3dBpqs4 a6QCjdx0Tqu+me+Wc+ecM8uctgwl/c3f3vmat6m6NoU8mT4NOR+0sbdUZC6Jx8Ef2njT rb/h+rdhGv0bjOUGly7pVUCITrbDsq3bPHRfUOBqfJKCPpVdHxgK7I/Gft4eHyxRZQJq RJCp15sNND9RwcXIqj9KMBfMyVaTGVSwSRn40RrpMR6PdFP/wgZSf8rpW4iHyfyGD4vb oseOZqoP7Jk9AwPOcQRRME0JqeJZx0Si9UCzFSYRZ/IRdfwutAYird2MICSl5GNE8Vo2 aIZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750945992; x=1751550792; 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=zlpUNKK3G9db+EdwcDWwBbzYx+1GRPZcFPyn0Q/NIe0=; b=Umv0vhBrZe6Kfy2XYGiP/q5VnYut/5knBvdWsbst7oCrtHVg5aL4okjVenwp1H4BHO BZO5SzvROs1oU4FZ/Rad0R6DU6N3zR0FHmfJF5qdTZnq5+wkvZ2W3I09XD9nupn7WpdF 6DE2Xf7MOV34Ky6CjMf930xy+U079HgI/8aGIDELNgJ4LXT0R0is7kIEXLSBBSu2eEMQ 05PXcho97yU7S+h6pWHyZ9yR58V9zYPCgRn8FEw+/CNDJqv6EMeMXrW3JU3t8f/nowHk HZC2GMiAVaH0z3j5/AFrlEt5tIrXOYBEbkNpPfIrIv7wKs+eVNNrL9rsQg5IE+76ok8I 8qug== X-Forwarded-Encrypted: i=1; AJvYcCUNtXicrUG7LbHS6aHxSo3H1Eu8nRDH+WIfG6z04VQgB9+uC4Y1w5kgyCfSH4tNP7DZG/Qj+TFjuA==@kvack.org X-Gm-Message-State: AOJu0YzOfJntyljHt7Z85OWXl1agvbphWES3dfumBOJq61YQ8l/M2D2M Mo/08KK1vKo51mx6uvcrfN4pI12eGOmC/eJs4PXgQxs5w2c6L/fTH3qssiETdT5bDtZC2tVBwcL LExkk8RTWDCHhkMmh2TiQ2JSpnq/5ACM= X-Gm-Gg: ASbGncsAPrg8w6dzWOovLgwHUo/pL/wi6Q2ILAOZ+ZpohDCCpnv599OXISBVsgt9Spp JNNgUVxEzBKSEY9dO6xsf4QXVm6/u8TSWiTsY4aZIDm3S7NnIt7Gk3Df2cTrImmb5WNmPeYBw0P 1j1q0IXK9umsJ1QUFzl4FbdhDwP3NGd3Ad+0cWLhEGRw== X-Google-Smtp-Source: AGHT+IFp5i/0Kq3rabH9rf2kY42MbESDKtULRW6uJMn5QRZ8/Z9H2i8ntSIcRhBigiGO2NXAKYlXjXFM6g03B8Baa18= X-Received: by 2002:a05:651c:f0b:b0:32b:7284:88 with SMTP id 38308e7fff4ca-32cc6497155mr12421921fa.7.1750945991880; Thu, 26 Jun 2025 06:53:11 -0700 (PDT) MIME-Version: 1.0 References: <20250625095224.118679-1-snovitoll@gmail.com> <20250625095224.118679-6-snovitoll@gmail.com> <20250626132943.GJ1613200@noisy.programming.kicks-ass.net> In-Reply-To: <20250626132943.GJ1613200@noisy.programming.kicks-ass.net> From: Sabyrzhan Tasbolatov Date: Thu, 26 Jun 2025 18:52:53 +0500 X-Gm-Features: Ac12FXynXHan9NKB65s06xjAcLer_ajNs_gE1LBlTEt_pC6nGG6YTexJKgab6gM Message-ID: Subject: Re: [PATCH 5/9] kasan/loongarch: call kasan_init_generic in kasan_init To: Peter Zijlstra Cc: ryabinin.a.a@gmail.com, glider@google.com, andreyknvl@gmail.com, dvyukov@google.com, vincenzo.frascino@arm.com, catalin.marinas@arm.com, will@kernel.org, chenhuacai@kernel.org, kernel@xen0n.name, maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu, hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, richard@nod.at, anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net, dave.hansen@linux.intel.com, luto@kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, chris@zankel.net, jcmvbkbc@gmail.com, akpm@linux-foundation.org, guoweikang.kernel@gmail.com, geert@linux-m68k.org, rppt@kernel.org, tiwei.btw@antgroup.com, richard.weiyang@gmail.com, benjamin.berg@intel.com, kevin.brodsky@arm.com, kasan-dev@googlegroups.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-um@lists.infradead.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 3706E2000D X-Stat-Signature: oycf749c8r7nrnt1fpk8p4iwdaypn1fd X-Rspam-User: X-HE-Tag: 1750945993-570402 X-HE-Meta: U2FsdGVkX1/lQZ47QwsaacCzkmrg8+TVpoQunxhBW3jPM+gVcaAR6m+joGnmIQKf4LnKCNQuYEQNKcweA6abbCJ3rJ6u+Cra1MHmXjF9GZ+7fZhpOmK1NIAd/yxgZTa657DZOB6Wm36xoYOWaQT0k8ONSG3XOfZJMV6gNdbKVeBx1lvX3NvrN6JxtMHhEqK2pNgPXBNOiQoD9VJVG+d2nQujqlFQIUHlxZuqum9ewjgiw/mTWaQQ2yECetzuIXGX96u0W3RfOdLoOX8ya4jPlLv6K7c+slotmzyz72foaNm0wuvp8Fy0az1XLEpYp3K1zgxraPqs1quq70MEiy8I1GW9ggaswoUlf5EuW2YBNpQFLlOuDBE/yle4+CMqhABocLr0e0k9Jhzw3dvmy73LEXvd+NZ7q1iThxlp5Wnkn6nyKzgLxFDSLJ6Cr9RMSSvisSMmumATf+El2JGVu/kzVBvEjnV4RItytzY60brCDsykWoDoHDTrwDybZrGJ2MTsfOHZVot9MJQIKI8viARkG2mAcvx2E8rjszsz46ayeWvuBdYA88zGcIQNdES1/GorEGf+cHVbi7SVmanHchr77YAHG4H3CAjtWCNz1962MWH4UcZ/re3b3nosulAx6Uw3YLgxeecIMhQeRJ4EIdWyI4qlgpgfgY2+5kdnZK2wO+Mxmypv2bGcvuvUZes6csK81IgquYkOB7r5tK+QaVy0KuEIBERzoOjt4kYpN7GJdwLPj1D3KgIFhUI42AQNMI2xgPr6ov0vlpH0S0tZTKXwSEjqNfUfqX4pELoaydJXxc0JW6h96bZYkguS5bGth4cQu457uWWCS5aw/acUMPSV0riiAlbXWnk+qeCzq5zfdkg0BaZW86w6Dx3pQ0BGMJximHeBhmfkk7wvME/tchilE/QENmvkcHYITJKP9OFO3p6lnmY3blVXTk+VjQcmnFeYOtLCyEySWYpJ7IVE28W PspwDAdi Pl5DmQEi39tUSwY5+6nX9DV+l221yj+A8OTHUZdW4HvFyeNZeTxxlpCK54RbvsOeefMB3mVnlzgKP0SF+M/JWNridCwyJsXVa4tIwAhYviXKKW/7+XGoq0+F0zpZn/UPqskw6JihyX7Nar9ldYjx6AFLLOdusp6hhdKQYWgYmIXnO8TN2YmOFPADqSsfFCI9g/8T27w57RYp3vV+gboWNvi4kS+qXjYUNkzwfdAgBjcMLXEvBG9s/ssHbyMBDikLh+hlx1dVVo/DZ2JBMjSB2CkaJ313HIn0oVrWIUTgUtTumxW3qKWcx94J9s5RPQ0SlqWIfNfEsuJoUjMd1qxU9ispP9qwqHXcwndWF9QaNutxP9/eXtQ1GkFOzDmGFT8myRYc/fTwULH8A4aHpmy9w2cecHrz9BLyGvBxJ7EZJQjiThKbwk14nK3tHp4g7655zTwepE2HA9r4qVlI4MPWRfP1nVTzhRyNY5KkOck/OGkPgxO9fa2+qYZbmO6aPOzAsJHnMdPvv73Y2SDg+eRFYfIWEUfh2AVVlh70gDCSV1RUe0lRgF9J3fnhFwsZvziNxK/AdInsMg251OKM= 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, Jun 26, 2025 at 6:29=E2=80=AFPM Peter Zijlstra wrote: > > On Wed, Jun 25, 2025 at 02:52:20PM +0500, Sabyrzhan Tasbolatov wrote: > > Call kasan_init_generic() which enables the static flag > > to mark generic KASAN initialized, otherwise it's an inline stub. > > > > Replace `kasan_arch_is_ready` with `kasan_enabled`. > > Delete the flag `kasan_early_stage` in favor of the global static key > > enabled via kasan_enabled(). > > > > printk banner is printed earlier right where `kasan_early_stage` > > was flipped, just to keep the same flow. > > > > Closes: https://bugzilla.kernel.org/show_bug.cgi?id=3D218315 > > Signed-off-by: Sabyrzhan Tasbolatov > > --- > > arch/loongarch/include/asm/kasan.h | 7 ------- > > arch/loongarch/mm/kasan_init.c | 7 ++----- > > 2 files changed, 2 insertions(+), 12 deletions(-) > > > > diff --git a/arch/loongarch/include/asm/kasan.h b/arch/loongarch/includ= e/asm/kasan.h > > index 7f52bd31b9d..b0b74871257 100644 > > --- a/arch/loongarch/include/asm/kasan.h > > +++ b/arch/loongarch/include/asm/kasan.h > > @@ -66,7 +66,6 @@ > > #define XKPRANGE_WC_SHADOW_OFFSET (KASAN_SHADOW_START + XKPRANGE_WC= _KASAN_OFFSET) > > #define XKVRANGE_VC_SHADOW_OFFSET (KASAN_SHADOW_START + XKVRANGE_VC= _KASAN_OFFSET) > > > > -extern bool kasan_early_stage; > > extern unsigned char kasan_early_shadow_page[PAGE_SIZE]; > > > > #define kasan_mem_to_shadow kasan_mem_to_shadow > > @@ -75,12 +74,6 @@ void *kasan_mem_to_shadow(const void *addr); > > #define kasan_shadow_to_mem kasan_shadow_to_mem > > const void *kasan_shadow_to_mem(const void *shadow_addr); > > > > -#define kasan_arch_is_ready kasan_arch_is_ready > > -static __always_inline bool kasan_arch_is_ready(void) > > -{ > > - return !kasan_early_stage; > > -} > > - > > #define addr_has_metadata addr_has_metadata > > static __always_inline bool addr_has_metadata(const void *addr) > > { > > diff --git a/arch/loongarch/mm/kasan_init.c b/arch/loongarch/mm/kasan_i= nit.c > > index d2681272d8f..cf8315f9119 100644 > > --- a/arch/loongarch/mm/kasan_init.c > > +++ b/arch/loongarch/mm/kasan_init.c > > @@ -40,11 +40,9 @@ static pgd_t kasan_pg_dir[PTRS_PER_PGD] __initdata _= _aligned(PAGE_SIZE); > > #define __pte_none(early, pte) (early ? pte_none(pte) : \ > > ((pte_val(pte) & _PFN_MASK) =3D=3D (unsigned long)__pa(kasan_early_sha= dow_page))) > > > > -bool kasan_early_stage =3D true; > > - > > void *kasan_mem_to_shadow(const void *addr) > > { > > - if (!kasan_arch_is_ready()) { > > + if (!kasan_enabled()) { > > return (void *)(kasan_early_shadow_page); > > } else { > > unsigned long maddr =3D (unsigned long)addr; > > @@ -298,7 +296,7 @@ void __init kasan_init(void) > > kasan_populate_early_shadow(kasan_mem_to_shadow((void *)VMALLOC_S= TART), > > kasan_mem_to_shadow((void *)KFENC= E_AREA_END)); > > > > - kasan_early_stage =3D false; > > + kasan_init_generic(); > > > > /* Populate the linear mapping */ > > for_each_mem_range(i, &pa_start, &pa_end) { > > @@ -329,5 +327,4 @@ void __init kasan_init(void) > > > > /* At this point kasan is fully initialized. Enable error message= s */ > > init_task.kasan_depth =3D 0; > > - pr_info("KernelAddressSanitizer initialized.\n"); > > } > > This one is weird because its the only arch that does things after > marking early_state false. > > Is that really correct, or should kasan_init_generic() be last, like all > the other architectures? It really differs from other arch kasan_init(). I can't verify that kasan_init_generic() can be placed at the end of kasan_init() because right after switching the KASAN flag, there's kasan_enabled() check in kasan_mem_to_shadow(). In arch/loongarch/mm/kasan_init.c: void *kasan_mem_to_shadow(const void *addr) { if (!kasan_enabled()) { return (void *)(kasan_early_shadow_page); } else { ... } void __init kasan_init(void) { ... kasan_populate_early_shadow(kasan_mem_to_shadow((void *)VMALLOC_STA= RT), kasan_mem_to_shadow((void *)KFENCE_AREA_END)); kasan_init_generic(); /* Populate the linear mapping */ for_each_mem_range(i, &pa_start, &pa_end) { .... kasan_map_populate((unsigned long)kasan_mem_to_shadow(start), } > > Also, please move init_task.kasan_depth =3D 0 into the generic thing. > ARM64 might have fooled you with the wrapper function, but they all do > this right before that pr_info you're taking out. Please check "[PATCH 1/9] kasan: unify static kasan_flag_enabled across mod= es", where I've replied to Christophe: https://lore.kernel.org/all/CACzwLxj3KWdy-mBu-te1OFf2FZ8eTp5CieYswF5NVY4qPW= D93Q@mail.gmail.com/ I can try to put `init_task.kasan_depth =3D 0;` in kasan_init_generic(), but in ARM64 kasan_init() we'll still need to have this line for HW_TAGS, SW_TAGS mode.