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 1473BC7EE39 for ; Thu, 26 Jun 2025 09:31:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AACE68D0003; Thu, 26 Jun 2025 05:31:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A84648D0001; Thu, 26 Jun 2025 05:31:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C1598D0003; Thu, 26 Jun 2025 05:31:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 88AFB8D0001 for ; Thu, 26 Jun 2025 05:31:27 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 20C7EBC540 for ; Thu, 26 Jun 2025 09:31:27 +0000 (UTC) X-FDA: 83597033814.02.A00888B Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) by imf19.hostedemail.com (Postfix) with ESMTP id 30E971A0003 for ; Thu, 26 Jun 2025 09:31:24 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=lsdqpI4D; spf=pass (imf19.hostedemail.com: domain of snovitoll@gmail.com designates 209.85.167.53 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=1750930285; 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=iuFmqpRengejqXGMt8z0krXQLsPU94kcoziX8PACH+I=; b=CSou+vdazQk0YIUgYgzHPheb6n/Z+t9YAUGflTljCuzoSmDa0m4zx3W2iVxVjmuF81fONl fqLHhgRRoOb/+ZjNyOzzXhquCAxsMFB5sxxQ+a+VYXkgbCKxLoVuuoFiM8f892vZh905YO Z/3y13tOzAztB4MXWROScFAOLNSCLaw= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=lsdqpI4D; spf=pass (imf19.hostedemail.com: domain of snovitoll@gmail.com designates 209.85.167.53 as permitted sender) smtp.mailfrom=snovitoll@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750930285; a=rsa-sha256; cv=none; b=2T+NdiZHKwF0EqbYxj43qUBbmCHaLE5xfejj2S/dmvNuxQbfSnxA7AA32KmMrRqWrh3Zc9 tuJBfh2+40vT6bl1b95ZaXjuSTqH7loALeu5BcGVHm3IRrWPB86Lppb2XfqvE4zUNoy6S/ ghWdZ0tXLKaZvKhK9OTK+ikRUaVmN0g= Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-553644b8f56so739419e87.1 for ; Thu, 26 Jun 2025 02:31:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750930283; x=1751535083; 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=iuFmqpRengejqXGMt8z0krXQLsPU94kcoziX8PACH+I=; b=lsdqpI4DAvcVouSRJsVP8dm9paPmBMQcUvblcNhO7bWlw/cs6N4Mrx8/jSax0eqVVF zvCFrevbooccBTgIAiM8DeIiJwrudBxPsYTiDqbwfmKzLFdS4zMuRHT6mq8AKE7U+yox w4kOKsPKySI3v+h93V1TwJDCUskXmlrVHdlpMvIRfqLimA1QfuskT3nf6NCbgClbIcg/ +1BDWEcOLzEqG8iSA/1MiFhELtsJlFikejXLOD7n49MBwAam8Ld4tQd7NynQz26eeLu4 8TaK6TWMybjIdkDLFyriE39mpYR3HDtPTAsfSwN/iYXaixxEpMaQgQvzPueVHmWqBpLS VF/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750930283; x=1751535083; 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=iuFmqpRengejqXGMt8z0krXQLsPU94kcoziX8PACH+I=; b=J20QxIGRXFBRTYwyshJ1I14zSOOnxuc/1xANlK69Cn9wvaO5HajAkwGOCHCqYiPclS jRak8OKyaPGrnl4IAG15Q5zmN0r9rjtpWanhtxh3vG7Y2wvDBWjPVif2pbjYnzeYeDEA kieefMGiy1vsJ8FkOvpDBXzSgYTaQxoptV2NmkBV3QZSV2YAelGbHjX6qx3uVsNGAp5X 2uhpvdSF7Waj1Pbp84I4L7R9zH4HmY8FMDGgQ+9WNbsf1vEhTjkTkixtIOT5gB4rcygQ 4TtEq5qX9fWez/orMAZNODz/D0O3WCaTNiu9C6odxFn1rhop7qHGbvCQdY8e99fBRr4w uyQA== X-Forwarded-Encrypted: i=1; AJvYcCVbdaityBY9soK7tburt43DdLnSx5muQAWpLZkNHu/k1gYVLmYkVOJPJXOKtX2BB9NREKdKIN1ndg==@kvack.org X-Gm-Message-State: AOJu0Ywc3z76SDXfq1wA8ySVdmi4+altnSuc5G1OMH5F/UmWDXRE9oPO FjNuH1MVBsMuJUUuef6YV8TrXVvb/qDkIPDC51/EZ6t2nGuoYvRWX7UvOoMsaBoaId0EbSzMtTg vCAX98R1epk2f/y+2MNIjA/uIPL+0dIw= X-Gm-Gg: ASbGnctgfKn3y6JpVyrFquOi/yzAAaDkQr7k+ApazZjAUAZnHEEhTObM2YSgJCMUd+/ ozXSO6VsHIJik7l0Go/U+/U4OxgDOmvYs5aEtYvGAoqWsWWsFdYiMp67aFOx0KQCwbjrb+Ed2Nn vZUpqIxPxpXwkGCiTtEoyUu+Uh4EtKlwrSY5oBn5YpIJOSgQu0urcE X-Google-Smtp-Source: AGHT+IHKD9vv7E6n80MsMeNjpJwBWGKsDmTjk3A0J3+cAywyuJ59mQfEiaL2YVTpTIc2tcdraTY+Dh5qWDg83RmXaIY= X-Received: by 2002:a05:6512:1150:b0:553:36b7:7b14 with SMTP id 2adb3069b0e04-554fdf96ec2mr2102615e87.37.1750930282937; Thu, 26 Jun 2025 02:31:22 -0700 (PDT) MIME-Version: 1.0 References: <20250625095224.118679-1-snovitoll@gmail.com> <20250625095224.118679-2-snovitoll@gmail.com> In-Reply-To: From: Sabyrzhan Tasbolatov Date: Thu, 26 Jun 2025 14:31:05 +0500 X-Gm-Features: Ac12FXyxTyp0b2hD3uhdVzbeUTYpXnyKRANJYa2mQoNch15i1MQX1xBLZECmC3k Message-ID: Subject: Re: [PATCH 1/9] kasan: unify static kasan_flag_enabled across modes To: Christophe Leroy 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, 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, peterz@infradead.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: rspam03 X-Rspamd-Queue-Id: 30E971A0003 X-Stat-Signature: 1hsmg1x3j44cuphh19wm3oayqmbjjx7c X-Rspam-User: X-HE-Tag: 1750930284-278624 X-HE-Meta: U2FsdGVkX18YsPvWwDDkOtrN+GhZK20aQkoXXK5r6iYIi31HcGPYPErMhO0WPLO/eQahPash1Vktq1egm1OndMUCO4e/98+ngsScMzV3Zo8I4K+ii8I9Qenb3+rsMRtF2Ks5K9fxekWu2+X7Y1vSVp7LUltmS59lR8KqvYst7Nd4pZ08BPPLVAF8bIcxQI/R+nS4GGnGt7HIEow1fnDhZlhCB/Q3Ujrpwylp+1lMjaDHsrTrYWf1+6W4/LUoADRukYoEUs98x+AeyMI3B8lYupA9yFJ8+IAg1xlwYOtfsu6e19ClOB83akp1J8nBB076F07cWapnA3sTa5+nexg2W4QSAuPsJmEL/tQSmZJoYxcLJ5E2lQyvOtkWs64680PNfGPbzYFWU6NrGV0qIBgmyNG4tGWnYkP21T7dJJCizqvioEJ4GaAQmoGZQ2J82Emb0SS0LV1uHBX0QsoQw1U8AFeJdBZ1D5Mvrl+yYu0wacbMagSJgeB4CyM/1jE4AYVG4eHF436bnVD/dF7RPahU4ayAKz5GeMHqzBNYC7N+1dz3F0GlTHl6aohbGgtVb/ynj8d9rUb9rr2eMhZlSdJ1/MgkMqq2q2+WAtG2ffUIv78WoJEYq0eD7MuJ9L8eLkzx8D8CHP1F7tRKkOkvaZnUeSKWLSsCLZjeuQIN83enF1Zr4gLC4ipoiSEKJqS5nYKF8F4xOljHTIOP174gGNsJDLAG9GJANv4UVrpCT1yNKaiBDlQQ/c57IL/9K0/tDdRV5+8s3mMI1J0vxPQuj7AzgGg7B6p4WwZaoxMC9lVwl8uo0F+755q94dp+s3YZy0phnRLY6OfSDnqU+81DqA7qkvQV4FTB2qqBRKoUFIrHiIOqJbPwV56qZzWo/PincsvSmsRppnKoKtwc4DQAwpYfKwW2/Z0SHvbIHGYjQv0b1ikou7HX9T2K5zyQNDAUCwmjXLb1xDNSkIilLcI1Lqn GryFPhvl GL0rmdaNm1wpB4th34zyKOLp0lrUbm0hVPOI28qKJXO+KtmVyk3M6xoGjCaCxL5FIF5GNxJBKhoX+Fy51dv36JloB5pnU8jou5fp7iiEwg838Sxz1bA8nQR5pHteNMFqC42xJwmGX4LJG42GUZ8XEKmXRkMXqL/I1hK4JpE/hOA5YrBot3y14Wa5GkHFrRDCse7ZVNWI3tyN3DS6HXCPy33to2k7kpaWnAmUD2J12L61IzzQd9g37w+Id+1G/WX1yYSguEWHiUBH67Rrxuy2VrXrDd74QJ+qWSEBu6h98OjEO29SBe9xurwT5HKWf588diOyhQ180aT+LJq2oz4KCOyBSfF05aYVmQdOAcT6lu5vuJTI9j5w5DxTUX0QebjapCjsMeaq73reE7HUNpXoOCKMlse0jTRtvByPo9lnz4Is2U+maDS+svhKEKZcNVSI4Pr4h9VEbvFLty8VC1ElCRJNzVPByxv/zE3eVNt2F0+yGtTHWviDt/YMpNUa8HJWWIpr/rKpmfRPVPK2A15bPefhxW5ce/emqLKAz 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, Jun 25, 2025 at 3:35=E2=80=AFPM Christophe Leroy wrote: > > > > Le 25/06/2025 =C3=A0 11:52, Sabyrzhan Tasbolatov a =C3=A9crit : > > Historically the fast-path static key `kasan_flag_enabled` existed > > only for `CONFIG_KASAN_HW_TAGS`. Generic and SW_TAGS either relied on > > `kasan_arch_is_ready()` or evaluated KASAN checks unconditionally. > > As a result every architecture had to toggle a private flag > > in its `kasan_init()`. > > > > This patch turns the flag into a single global runtime predicate that > > is built for every `CONFIG_KASAN` mode and adds a helper that flips > > the key once KASAN is ready. > > Shouldn't kasan_init_generic() also perform the following line to reduce > even more code duplication between architectures ? > > init_task.kasan_depth =3D 0; I've tried to introduce a new function kasan_mark_ready() to gather all arch duplicated code in one place: In mm/kasan/common.c: void __init kasan_mark_ready(void) { /* Enable error reporting */ init_task.kasan_depth =3D 0; /* Mark KASAN as ready */ static_branch_enable(&kasan_flag_enabled); } So we could've called it in mm/kasan/generic.c: void __init kasan_init_generic(void) { kasan_mark_ready(); pr_info("KernelAddressSanitizer initialized (generic)\n"); } in mm/kasan/sw_tags.c: void __init kasan_init_sw_tags(void) { ... kasan_mark_ready(); pr_info("KernelAddressSanitizer initialized .."); } in mm/kasan/hw_tags.c: void __init kasan_init_hw_tags(void) { ... kasan_mark_ready(); pr_info("KernelAddressSanitizer initialized .."); } But it works only for CONFIG_KASAN_GENERIC mode, when arch code calls kasan_init(), for example, arm64: void __init kasan_init(void) { kasan_init_shadow(); kasan_init_generic(); } And for HW_TAGS, SW_TAGS it won't work. Fails during compiling: mm/kasan/common.c:45:12: error: no member named 'kasan_depth' in 'struct task_struct' 45 | init_task.kasan_depth =3D 0; because kasan_init_sw_tags(), kasan_init_hw_tags() are called once on CPU boot. For arm64, where these KASAN modes are supported, both functions are called in smp_prepare_boot_cpu(). So I guess, every arch kasan_init() has to set in kasan_init() init_task.kasan_depth =3D 0; to enable error messages before switching KASAN readiness via enabling kasan_flag_enabled key. > > Christophe >