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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50CE3C433F5 for ; Tue, 26 Oct 2021 04:39:49 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id A5661604DA for ; Tue, 26 Oct 2021 04:39:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org A5661604DA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=canonical.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id EAF0E80007; Tue, 26 Oct 2021 00:39:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E5E4A940007; Tue, 26 Oct 2021 00:39:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D4D4880007; Tue, 26 Oct 2021 00:39:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0224.hostedemail.com [216.40.44.224]) by kanga.kvack.org (Postfix) with ESMTP id C4103940007 for ; Tue, 26 Oct 2021 00:39:47 -0400 (EDT) Received: from smtpin32.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 812122776A for ; Tue, 26 Oct 2021 04:39:47 +0000 (UTC) X-FDA: 78737335614.32.603A3BD Received: from smtp-relay-internal-1.canonical.com (smtp-relay-internal-1.canonical.com [185.125.188.123]) by imf17.hostedemail.com (Postfix) with ESMTP id 0078AF00038F for ; Tue, 26 Oct 2021 04:39:46 +0000 (UTC) Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id 216C340268 for ; Tue, 26 Oct 2021 04:39:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1635223185; bh=KVhIZhSXB0M0vyj9/7/Cl1UkXRcb4g+5QcVGTYNYcgo=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=cdEzxWE4E0P6DTEwzmtHGbavKRnW3dWTxmEH6xKne1QxEPaLXnRAX4SngboAdSGZj Ei+4nGmElOAVVGWWGh8iorXQKNjb9/qY6kF/9WIPfpm83Ox43ywn4y0EIwO4cCkNz/ RgFYdyALEgnOD1yOS4arRhMjiSPtpubalg36Cp4DPmBT7BfWfA6cF2LJdC7i3s/U6J 9dwA5b1+h/4JBqbLjxEZ66xTkv0jTkj/nwojldPk/M/iHudxou9Ba6P09ACB7MHD0J GdCzf29ov1G0yKXTW3Sb0d1kNEpqk9lwh1smJSQDyzyHuu5bAUvfhAG+n+azTayDWw I0j+IMPyrou+g== Received: by mail-ed1-f72.google.com with SMTP id z1-20020a05640235c100b003dcf0fbfbd8so11891925edc.6 for ; Mon, 25 Oct 2021 21:39:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=KVhIZhSXB0M0vyj9/7/Cl1UkXRcb4g+5QcVGTYNYcgo=; b=qq/v0hGdQSBSLUrAfSrAalMQ+pAIhMCCmBqErr75sDjAANHYAJjmiyCakA4eJY7ZEj L9oTJN5LQVBDVfnmhf0oXjkLfI/jqU08vy3VvKDOiAtIMygKSYhe2+RD+tQDXu2TGuop +V1EbYrg6xjUdB7c/yik6Zf8j0WgE0b+ko+lWHh2+XpKkvIiuycD+z60guA/BjSHCzO/ 0TInPi/T8bgX7Cdu/jxWAlN65LdKLahBCKnd9riCAaNUTGKUGK42R3fVGyzY4+XlsgWl klAG4A7wcJcpwjUQ4wvL1jCzus/f62o5cnoWj9d4ZQVMuF+K1xNYizXoUfJX19yMLZgw 7CjA== X-Gm-Message-State: AOAM532Eu71zuORdwYBzQOWCd5f/MJNbxjs+Jr737Wx7c4LxH05SWdNN SKjzHW93Q3kfvue2cVc8BpY9roaFaBRD9GK4Bn/NT1f/WtbBqfTYs6LwcuFk2CAzVThgj4Tgmsq aM+L0gx5+FynHh8VBcx6TmwGKTSZY+dYRenk6ibIF6D0H X-Received: by 2002:a17:907:3e0a:: with SMTP id hp10mr2839507ejc.156.1635223183518; Mon, 25 Oct 2021 21:39:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzkpOQjSsxy4BbivbGbiR5w6Hk4KaWKisTkBst3LHn0VETbEITcOi/fB/MTKShp/KaTjhZkVas96zEud+sqEuw= X-Received: by 2002:a17:907:3e0a:: with SMTP id hp10mr2839461ejc.156.1635223183204; Mon, 25 Oct 2021 21:39:43 -0700 (PDT) MIME-Version: 1.0 References: <990a894c-1806-5ab2-775e-a6f2355c2299@ghiti.fr> In-Reply-To: <990a894c-1806-5ab2-775e-a6f2355c2299@ghiti.fr> From: Alexandre Ghiti Date: Tue, 26 Oct 2021 06:39:31 +0200 Message-ID: Subject: Re: [PATCH] kasan: Always respect CONFIG_KASAN_STACK To: Alexandre ghiti Cc: Nathan Chancellor , Palmer Dabbelt , elver@google.com, akpm@linux-foundation.org, ryabinin.a.a@gmail.com, glider@google.com, andreyknvl@gmail.com, dvyukov@google.com, ndesaulniers@google.com, Arnd Bergmann , kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-riscv@lists.infradead.org, Paul Walmsley , aou@eecs.berkeley.edu, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 0078AF00038F X-Stat-Signature: jbebpto6kexgmqzdjhuoz3f8ciiwm73c Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=canonical.com header.s=20210705 header.b=cdEzxWE4; dmarc=pass (policy=none) header.from=canonical.com; spf=pass (imf17.hostedemail.com: domain of alexandre.ghiti@canonical.com designates 185.125.188.123 as permitted sender) smtp.mailfrom=alexandre.ghiti@canonical.com X-HE-Tag: 1635223186-174475 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: Hi, On Fri, Oct 15, 2021 at 3:08 PM Alexandre ghiti wrote: > > On 10/14/21 8:31 PM, Alex Ghiti wrote: > > Hi Nathan, > > > > Le 14/10/2021 =C3=A0 18:55, Nathan Chancellor a =C3=A9crit : > >> On Fri, Oct 08, 2021 at 11:46:55AM -0700, Palmer Dabbelt wrote: > >>> On Thu, 23 Sep 2021 07:59:46 PDT (-0700), nathan@kernel.org wrote: > >>>> On Thu, Sep 23, 2021 at 12:07:17PM +0200, Marco Elver wrote: > >>>>> On Wed, 22 Sept 2021 at 22:55, Nathan Chancellor > >>>>> wrote: > >>>>>> Currently, the asan-stack parameter is only passed along if > >>>>>> CFLAGS_KASAN_SHADOW is not empty, which requires > >>>>>> KASAN_SHADOW_OFFSET to > >>>>>> be defined in Kconfig so that the value can be checked. In RISC-V'= s > >>>>>> case, KASAN_SHADOW_OFFSET is not defined in Kconfig, which means > >>>>>> that > >>>>>> asan-stack does not get disabled with clang even when > >>>>>> CONFIG_KASAN_STACK > >>>>>> is disabled, resulting in large stack warnings with allmodconfig: > >>>>>> > >>>>>> drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02= .c:117:12: > >>>>>> > >>>>>> error: stack frame size (14400) exceeds limit (2048) in function > >>>>>> 'lb035q02_connect' [-Werror,-Wframe-larger-than] > >>>>>> static int lb035q02_connect(struct omap_dss_device *dssdev) > >>>>>> ^ > >>>>>> 1 error generated. > >>>>>> > >>>>>> Ensure that the value of CONFIG_KASAN_STACK is always passed > >>>>>> along to > >>>>>> the compiler so that these warnings do not happen when > >>>>>> CONFIG_KASAN_STACK is disabled. > >>>>>> > >>>>>> Link: https://github.com/ClangBuiltLinux/linux/issues/1453 > >>>>>> References: 6baec880d7a5 ("kasan: turn off asan-stack for clang-8 > >>>>>> and earlier") > >>>>>> Signed-off-by: Nathan Chancellor > >>>>> > >>>>> Reviewed-by: Marco Elver > >>>> > >>>> Thanks! > >>>> > >>>>> [ Which tree are you planning to take it through? ] > >>>> > >>>> Gah, I was intending for it to go through -mm, then I cc'd neither > >>>> Andrew nor linux-mm... :/ Andrew, do you want me to resend or can yo= u > >>>> grab it from LKML? > >>> > >>> Acked-by: Palmer Dabbelt > >>> > >>> (assuming you still want it through somewhere else) > >> > >> Thanks, it is now in mainline as commit 19532869feb9 ("kasan: always > >> respect CONFIG_KASAN_STACK"). > >> > >>>>> Note, arch/riscv/include/asm/kasan.h mentions KASAN_SHADOW_OFFSET i= n > >>>>> comment (copied from arm64). Did RISC-V just forget to copy over th= e > >>>>> Kconfig option? > >>>> > >>>> I do see it defined in that file as well but you are right that > >>>> they did > >>>> not copy the Kconfig logic, even though it was present in the tree > >>>> when > >>>> RISC-V KASAN was implemented. Perhaps they should so that they get > >>>> access to the other flags in the "else" branch? > >>> > >>> Ya, looks like we just screwed this up. I'm seeing some warnings lik= e > >>> > >>> cc1: warning: =E2=80=98-fsanitize=3Dkernel-address=E2=80=99 with = stack protection > >>> is not supported without =E2=80=98-fasan-shadow-offset=3D=E2=80=99 fo= r this target > >> > >> Hmmm, I thought I did a GCC build with this change but I must not have > >> :/ > >> > >>> which is how I ended up here, I'm assuming that's what you're > >>> talking about > >>> here? LMK if you were planning on sending along a fix or if you > >>> want me to > >>> go figure it out. > >> > >> I took a look at moving the logic into Kconfig like arm64 before sendi= ng > >> this change and I did not really understand it well enough to do so. I > >> think it would be best if you were able to do that so that nothing get= s > >> messed up. > >> > > > > I'll do it tomorrow, I'm the last one who touched kasan on riscv :) > > > > Adding KASAN_SHADOW_OFFSET config makes kasan kernel fails to boot. > It receives a *write* fault at the beginning of a memblock_alloc > function while populating the kernel shadow memory: the trap address is > in the kasan shadow virtual address range and this corresponds to a > kernel address in init_stack. The question is: how do I populate the > stack shadow mapping without using memblock API? It's weird, I don't > find anything on other architectures. @kasan: Any idea what we are doing wrong in riscv to encounter the above situation? Thanks, Alex > > And just a short note: I have realized this will break with the sv48 > patchset as we decide at runtime the address space width and the kasan > shadow start address is different between sv39 and sv48. I will have to > do like x86 and move the kasan shadow start at the end of the address > space so that it is the same for both sv39 and sv48. > > Thanks, > > Alex > > > > Thanks, > > > > Alex > > > >> Cheers, > >> Nathan > >> > >> _______________________________________________ > >> linux-riscv mailing list > >> linux-riscv@lists.infradead.org > >> http://lists.infradead.org/mailman/listinfo/linux-riscv > >> > > > > _______________________________________________ > > linux-riscv mailing list > > linux-riscv@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-riscv > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv