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 X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B166CC2D0A3 for ; Fri, 30 Oct 2020 01:34:06 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 14B91206E5 for ; Fri, 30 Oct 2020 01:34:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="zZ85VX38"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="q7YVUywv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 14B91206E5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=VzOA67V5EA+2OezftPyi5jaaxwuMfPH/yPlZph/e+cg=; b=zZ85VX38DJDoMYSSBXbPGCzws 7DI+AJG4eT+0u6vQazLvZKxo8F0Fpn9L9nRMpf4QYecGhKLNsFBAnWtk8A/+tQjsTtEX0QuZTyMzP Y81jTOvlLldCP4zu9ZmnQWDdyiH9dx8LBCtlwG2Dj+qvBPphQVFgpIKh/iClvw6eyT9Uebl2ZFsL8 f7Rpkw8CYXuzelYvB/x0KvREOyIGWCSo4pdlGhxGkRgL3SXTndNN+gIkR5arIVbW77fmowGzh4a5c rSwyl1wF0hvvhFkyN7X0TwIIPXakBol1N0/z5W+bzQAX9z50MozRk1e6+fX+hs6eQnQZmHPAC7eIe ErU4zTJ5Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYJHO-0003E3-LW; Fri, 30 Oct 2020 01:32:34 +0000 Received: from mail-il1-x143.google.com ([2607:f8b0:4864:20::143]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYJHM-0003De-Fp for linux-arm-kernel@lists.infradead.org; Fri, 30 Oct 2020 01:32:33 +0000 Received: by mail-il1-x143.google.com with SMTP id c11so5117348iln.9 for ; Thu, 29 Oct 2020 18:32:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=SKn3njU4bPvKkYLygxpCgawvVfvtVn5t194pKZDbdAE=; b=q7YVUywvQpSnLH9Zf46eYuqGs1ARa6VHiEyJxenCzOROb03WD9EG/8K/wY5RKqcrjP pL8bcEczV7j9QJEmSPPmrGrO8wd5wuhwaB09VbyLZzl9cUGROvIwwAbzYivlWRn2klA+ sys/zr1e51c1TBU70kA3TVtVZZWE+ctwSf7GbdT/B9YD1NErU2QvMsSQg2TAHVnqbFKq cvGqYGAtnft9QTcnt4OenkaawDGi/y0hprwkyJj72JPBl4ykdwfNIsUXr5BIJi+uXfOC r4AEw7+26V1FlijstdroyPXUz1UfYUo6LPWCQZ8pZDBzJhMtljtXQ4V4jZ+qrJd0SpVA L+GA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=SKn3njU4bPvKkYLygxpCgawvVfvtVn5t194pKZDbdAE=; b=Wg/Zc5JnNbvOHNQh9drxuPo5jUy7bJT3dG6qTaywuu02gFHVf3i6rvy5A8Hil0rwRf 6cTGU3lFtL8Q0EJHpq50fwkJex41hmzRTEG0+z4ayRZzOLSU89gCKN8W4ReMEOQt3gST o+dv2Z8sOhKojY1X1dwCN/uM/uWqk/SpT2k4F6mXnIdB1gYRSE2FesyfOGT0OykulMCE H2/h/8v3NHrfIKKnEtWmznb1ZUpkZlFWYdHEILpEmhPQC6umKOXTYV/mqLEx06U48bVI gAEl17Gp/qc4rVn/7ks5byIe6Fa6pVtTpNLDrCg8OHLgksOc1iekC8sfaY/d56UY0e05 Sj5w== X-Gm-Message-State: AOAM533GCU+TKUuhU/72Q+As4IeyakpiznJBQHFzR1Aq2NThTRR0s5eL mLaf4/FsgIFDJL+zzCjwQuc= X-Google-Smtp-Source: ABdhPJxCGIJLHgnbOdPtLZkA53d9gDvkPNCDCyzcovZeANHhn/bPe/c8nVGD/PtmuSF9oXmf85GVMQ== X-Received: by 2002:a92:d1c9:: with SMTP id u9mr183432ilg.278.1604021550661; Thu, 29 Oct 2020 18:32:30 -0700 (PDT) Received: from ubuntu-m3-large-x86 ([2604:1380:45f1:1d00::1]) by smtp.gmail.com with ESMTPSA id i87sm4565750ill.25.2020.10.29.18.32.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Oct 2020 18:32:30 -0700 (PDT) Date: Thu, 29 Oct 2020 18:32:28 -0700 From: Nathan Chancellor To: Nick Desaulniers Subject: Re: [PATCH 0/5 v16] KASan for Arm Message-ID: <20201030013228.GA2519055@ubuntu-m3-large-x86> References: <20201019084140.4532-1-linus.walleij@linaro.org> <20201030002900.GA2248731@ubuntu-m3-large-x86> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201029_213232_611726_7032CE0F X-CRM114-Status: GOOD ( 35.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Florian Fainelli , Arnd Bergmann , Abbott Liu , Linus Walleij , Russell King , Mike Rapoport , clang-built-linux , Andrey Ryabinin , Will Deacon , Ard Biesheuvel , Linux ARM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Oct 29, 2020 at 05:38:22PM -0700, Nick Desaulniers wrote: > On Thu, Oct 29, 2020 at 5:29 PM Nathan Chancellor > wrote: > > > > On Mon, Oct 19, 2020 at 10:41:35AM +0200, Linus Walleij wrote: > > > This is the 16th and final (knock on wood) version of > > > KASan for ARM32. > > > > > > Changes since v15: > > > > > > - Things now work on all boards we have tested on including > > > Broadcom and i.MX6Q. > > > > > > - Folded in a fix from Ard to PAGE_ALIGN() the end of > > > mappings making everything work on all Broadcom board. > > > > > > - Folded in a fix from Ahmad Fatoum making things work > > > with fortify on i.MX6Q. > > > > > > - Testing and testing and testing on build servers. > > > > > > - We are good to go. > > > > > > I will now put this in Russell's patch tracker for v5.11. > > > > > > There is a git branch you can pull in: > > > https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git/log/?h=kasan > > > > > > This branch includes Ard's two patches already in Russell's > > > patch tracker. > > > > > > > > > Abbott Liu (1): > > > ARM: Define the virtual space of KASan's shadow region > > > > > > Andrey Ryabinin (3): > > > ARM: Disable KASan instrumentation for some code > > > ARM: Replace string mem* functions for KASan > > > ARM: Enable KASan for ARM > > > > > > Linus Walleij (1): > > > ARM: Initialize the mapping of KASan shadow memory > > > > > > Documentation/arm/memory.rst | 5 + > > > Documentation/dev-tools/kasan.rst | 4 +- > > > .../features/debug/KASAN/arch-support.txt | 2 +- > > > arch/arm/Kconfig | 10 + > > > arch/arm/boot/compressed/Makefile | 1 + > > > arch/arm/boot/compressed/string.c | 19 ++ > > > arch/arm/include/asm/kasan.h | 33 ++ > > > arch/arm/include/asm/kasan_def.h | 81 +++++ > > > arch/arm/include/asm/memory.h | 5 + > > > arch/arm/include/asm/pgalloc.h | 8 +- > > > arch/arm/include/asm/string.h | 26 ++ > > > arch/arm/include/asm/thread_info.h | 8 + > > > arch/arm/include/asm/uaccess-asm.h | 2 +- > > > arch/arm/kernel/entry-armv.S | 3 +- > > > arch/arm/kernel/entry-common.S | 9 +- > > > arch/arm/kernel/head-common.S | 7 +- > > > arch/arm/kernel/setup.c | 2 + > > > arch/arm/kernel/unwind.c | 6 +- > > > arch/arm/lib/memcpy.S | 3 + > > > arch/arm/lib/memmove.S | 5 +- > > > arch/arm/lib/memset.S | 3 + > > > arch/arm/mm/Makefile | 5 + > > > arch/arm/mm/kasan_init.c | 292 ++++++++++++++++++ > > > arch/arm/mm/mmu.c | 18 ++ > > > arch/arm/mm/pgd.c | 16 +- > > > arch/arm/vdso/Makefile | 2 + > > > 26 files changed, 561 insertions(+), 14 deletions(-) > > > create mode 100644 arch/arm/include/asm/kasan.h > > > create mode 100644 arch/arm/include/asm/kasan_def.h > > > create mode 100644 arch/arm/mm/kasan_init.c > > > > > > -- > > > 2.26.2 > > > > > > > After this series was applied and available in -next, ARCH=arm LLVM=1 > > allyesconfig builds started failing: > > > > $ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- KCONFIG_ALLCONFIG=<(echo CONFIG_CPU_BIG_ENDIAN=n) LLVM=1 distclean allyesconfig vmlinux > > ... > > ld.lld: error: section: .exit.data is not contiguous with other relro sections > > ... > > > > $ git bisect ld: [3f267ec60b922eff2a5c90d532357a39f155b730] Add linux-next specific files for 20201029 > > # good: [23859ae44402f4d935b9ee548135dd1e65e2cbf4] Merge tag 'trace-v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace > > git bisect start '3f267ec60b922eff2a5c90d532357a39f155b730' '23859ae44402f4d935b9ee548135dd1e65e2cbf4' > > # bad: [bfa70a4ea4bfa6f87b58cf8b90b88297389c92b7] Merge remote-tracking branch 'mtd/mtd/next' into master > > git bisect bad bfa70a4ea4bfa6f87b58cf8b90b88297389c92b7 > > # bad: [37a292dcf77532547f335ed5063d9169031c9b08] Merge remote-tracking branch 'sunxi/sunxi/for-next' into master > > git bisect bad 37a292dcf77532547f335ed5063d9169031c9b08 > > # good: [e6d922c77db276a16f0b7933c2a9951dc9c0052c] Merge remote-tracking branch 'drm-misc-fixes/for-linux-next-fixes' into master > > git bisect good e6d922c77db276a16f0b7933c2a9951dc9c0052c > > # bad: [cbe49fbb8f6c8d29bc1d9a5a9a742ef2c2eb6320] Merge remote-tracking branch 'mvebu/for-next' into master > > git bisect bad cbe49fbb8f6c8d29bc1d9a5a9a742ef2c2eb6320 > > # bad: [d0e12484e7e1ede73c538744cdbe9439f7335d01] Merge remote-tracking branch 'arm-soc/for-next' into master > > git bisect bad d0e12484e7e1ede73c538744cdbe9439f7335d01 > > # good: [24a23387c15f34bad2485a9e1c3b7ac6f0fb35a6] Merge branch 'asm-generic-cleanup' into asm-generic > > git bisect good 24a23387c15f34bad2485a9e1c3b7ac6f0fb35a6 > > # good: [3a8eb4d3421a2ca0f95ac3b1a8f012940d4f0d52] Merge remote-tracking branch 'kbuild/for-next' into master > > git bisect good 3a8eb4d3421a2ca0f95ac3b1a8f012940d4f0d52 > > # bad: [20f96e606509ee5084690179afe1810b95617a92] Merge branches 'fixes' and 'misc' into for-next > > git bisect bad 20f96e606509ee5084690179afe1810b95617a92 > > # good: [d6d51a96c7d63b7450860a3037f2d62388286a52] ARM: 9014/2: Replace string mem* functions for KASan > > git bisect good d6d51a96c7d63b7450860a3037f2d62388286a52 > > # good: [5615f69bc2097452ecc954f5264d784e158d6801] ARM: 9016/2: Initialize the mapping of KASan shadow memory > > git bisect good 5615f69bc2097452ecc954f5264d784e158d6801 > > # bad: [fc2933c133744305236793025b00c2f7d258b687] ARM: 9020/1: mm: use correct section size macro to describe the FDT virtual address > > git bisect bad fc2933c133744305236793025b00c2f7d258b687 > > # bad: [421015713b306e47af95d4d61cdfbd96d462e4cb] ARM: 9017/2: Enable KASan for ARM > > git bisect bad 421015713b306e47af95d4d61cdfbd96d462e4cb > > # first bad commit: [421015713b306e47af95d4d61cdfbd96d462e4cb] ARM: 9017/2: Enable KASan for ARMog > > > > An allyesconfig kernel compiled with clang does not link properly with > > ld.bfd without a workaround [1], which I do not have time to apply and > > test now but can later if it is relevant. I have not done any triage on > > this yet either but I wanted to get the report out in case there is > > anything obvious. > > > > [1]: https://github.com/ClangBuiltLinux/linux/issues/325 > > relro? smells like: > https://lore.kernel.org/lkml/20201016175339.2429280-1-ndesaulniers@google.com/T/#u > Huh, did not even realize that the error messages were the same, my bad! This issue is simple enough to produce by just adding CONFIG_KASAN=y to multi_v7_defconfig. I tried adding '-z norelro' to LDFLAGS_vmlinux in arch/arm/Makefile and it fixes the build error but the resulting kernel does not boot in QEMU. $ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- LLVM=1 distclean defconfig $ scripts/config -e KASAN $ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- LLVM=1 olddefconfig zImage $ ~/cbl/github/boot-utils/boot-qemu.sh -a arm32_v7 -k . /home/nathan/cbl/github/boot-utils/images/arm/rootfs.cpio.zst: 3176448 bytes + timeout --foreground 3m unbuffer qemu-system-arm -machine virt -no-reboot -append 'console=ttyAMA0 ' -display none -initrd /home/nathan/cbl/github/boot-utils/images/arm/rootfs.cpio -kernel /home/nathan/src/linux-next/arch/arm/boot/zImage -m 512m -nodefaults -serial mon:stdio + RET=124 + set +x '-z norelro' boots fine without KASAN so I assume there is something up specifically with KASAN and LLVM for ARM. Cheers, Nathan _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel