From patchwork Fri Dec 16 16:21:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 3028 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp1062263wrn; Fri, 16 Dec 2022 08:23:23 -0800 (PST) X-Google-Smtp-Source: AA0mqf6oJ/6TBJRO62fBybpnMIEgWy5HurbgknR9yxpQPsfdJGeC8IMqNJmFc/ZXmymvn5KwGVSK X-Received: by 2002:a05:6402:360b:b0:46f:7154:2409 with SMTP id el11-20020a056402360b00b0046f71542409mr23792175edb.42.1671207803295; Fri, 16 Dec 2022 08:23:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671207803; cv=none; d=google.com; s=arc-20160816; b=y26ks2CQn2qQH7GLNvU8Q1aFPujWCzbqunYj1m7JBPV1NkXO1nJM8ikBpV0gFGTBVF FRKGd+htUe8VRxFFXvRVkj2F0Mwy++g5fqjes2u+obYrm/aNyPwA/oz43mvAiSit9cZQ EZlFBiZOjQ8OWumpZgA1wFsFS7OrjVzgN749iGC/6dLd33jN0QnXgn4tRUWrtXNuWpl+ IfJdVCTHOMr82z+yrn7s08pL0ZcIbPI7WRJpDjBIlmJ6ZvzSgbZv3rU8tG6mlnC1DSGj vfMYm3Jsc1khov5TwL7Zo4dCeqxL1tTWFEvF2I80XampcELKqZcScrUnvokF+ZprMbN+ Zshg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=G6XB8sFEdgRyJHccqiCj1UYEgQGTrZTp9EBrE9hoiO8=; b=bh8VA7laLPnXMxcqDPjqUiuhgiy+msNDGFGxeigt3Nq8Dgojr0zRIPofgk8vfhNdf6 36mHsXzN8UQqn/aJZPwdORmygsKurqX/DEMOzW1VK0jxxU6IaG0JDq+1gZ0VL2q4WIis pb7ovZqZFWiPuQrmEd79hlslHqzA4oxQ7uo37RNWL793oOg1yHC0k5fGq/KUpL4DcwFB BK9Wmafu1E859OV0rQhUvKrv7Rf3Q5E79BQwLo/OwiQ8FpNh0LQwORWIcGpuA2asCs7c oXAfUuLPRyoTasx9YKfVSjVapPTU3SxnA0dLoS5bzeJgv3QvxhetYbJO3khOE9G6xPFb wVTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rivosinc-com.20210112.gappssmtp.com header.s=20210112 header.b=tMy2czpc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d3-20020aa7c1c3000000b0046fdd119a47si2538044edp.145.2022.12.16.08.23.00; Fri, 16 Dec 2022 08:23:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@rivosinc-com.20210112.gappssmtp.com header.s=20210112 header.b=tMy2czpc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231872AbiLPQWl (ORCPT + 99 others); Fri, 16 Dec 2022 11:22:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231816AbiLPQVz (ORCPT ); Fri, 16 Dec 2022 11:21:55 -0500 Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6DCF429C9E for ; Fri, 16 Dec 2022 08:21:53 -0800 (PST) Received: by mail-wm1-x343.google.com with SMTP id h8-20020a1c2108000000b003d1efd60b65so4523207wmh.0 for ; Fri, 16 Dec 2022 08:21:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=G6XB8sFEdgRyJHccqiCj1UYEgQGTrZTp9EBrE9hoiO8=; b=tMy2czpcjtMBFGplX2Fj7b6/e2vG/fUtkThLYkBLLkPglMspo20XEG9HwQEYmXVsLt eO4VB9DrpQAXgI4uETDdB5L/OKyiOCfwyhrPKjBWG9vZWeSVuhwtQJMlvHU/2IpavWrp X86zGFLZ9TwJ5mquI/XvqoT+hBZxioXiysJ9WYjdGkLQ0A19DgU7N8Uo9ghG0Qd5nVH2 avk3pjckQjBuRBCwX+hZYyijMiEK5rNp4CRX+dgJr74DbLMoG9mt5xoCJerRFZgKGCj2 DFdtGso5i2tLuoWGzkL+T0dKYB53/BOLKQbuzU66FYjo6xcL9xaZ+SzMMIyRzTiC79xj CTOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=G6XB8sFEdgRyJHccqiCj1UYEgQGTrZTp9EBrE9hoiO8=; b=V+V1fNgY6f0pJsl49TYaRB5OUx3m0QyRkUwOQN8JKjKMQ0CR0dxLcEvRu6fHGPuJve lHgXryqPoscJkSTnnf5mjTgWC5kn0fSVDqv4/LShBPvliJgWJeD7tUJ7eChkkgt1BtpP +Oo74F1A0Trrd1WbedzmO2FjLsmGMX0TquxeWQflFGFpRHkJdIYlfaPxK7+yTYvmwS1q aDzmQ/R7ZZCdVW1anJrQoql93/H2rbpGvhBlZWc2wAJs4w0a/3xE1P9WAT6rIW9gErcP 0n8rRcLY7Ug5RI2wIsvKnuuhAGmLqg7lSBtd8Qm7pssVDuE76aF2jqOTd0ua+q95Fwyv eZOw== X-Gm-Message-State: ANoB5pkrhEHesa1JLzs3PLclW7D+7f4LLn0CE8TlkXiCfb+5oDWFLwTf rUDhy6uDDPI4pLYSMKkk9gU/sw== X-Received: by 2002:a05:600c:1e8a:b0:3d1:bd81:b1b1 with SMTP id be10-20020a05600c1e8a00b003d1bd81b1b1mr24959580wmb.18.1671207712025; Fri, 16 Dec 2022 08:21:52 -0800 (PST) Received: from alex-rivos.home (lfbn-lyo-1-450-160.w2-7.abo.wanadoo.fr. [2.7.42.160]) by smtp.gmail.com with ESMTPSA id z19-20020a05600c221300b003a3170a7af9sm3027506wml.4.2022.12.16.08.21.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Dec 2022 08:21:51 -0800 (PST) From: Alexandre Ghiti To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Ard Biesheuvel , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, linux-efi@vger.kernel.org Cc: Alexandre Ghiti Subject: [PATCH 0/6] RISC-V kasan rework Date: Fri, 16 Dec 2022 17:21:35 +0100 Message-Id: <20221216162141.1701255-1-alexghiti@rivosinc.com> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752388393548868355?= X-GMAIL-MSGID: =?utf-8?q?1752388393548868355?= As described in patch 2, our current kasan implementation is intricate, so I tried to simplify the implementation and mimic what arm64/x86 are doing. In addition it fixes UEFI bootflow with a kasan kernel and kasan inline instrumentation: all kasan configurations were tested on a large ubuntu kernel with success with KASAN_KUNIT_TEST and KASAN_MODULE_TEST. inline ubuntu config + uefi: sv39: OK sv48: OK sv57: OK outline ubuntu config + uefi: sv39: OK sv48: OK sv57: OK Actually 1 test always fails with KASAN_KUNIT_TEST that I have to check: # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan__test.c:1020 KASAN failure expected in "set_bit(nr, addr)", but none occurrred Note that Palmer recently proposed to remove COMMAND_LINE_SIZE from the userspace abi https://lore.kernel.org/lkml/20221211061358.28035-1-palmer@rivosinc.com/T/ so that we can finally increase the command line to fit all kasan kernel parameters. All of this should hopefully fix the syzkaller riscv build that has been failing for a few months now, any test is appreciated and if I can help in any way, please ask. Alexandre Ghiti (6): riscv: Split early and final KASAN population functions riscv: Rework kasan population functions riscv: Move DTB_EARLY_BASE_VA to the kernel address space riscv: Fix EFI stub usage of KASAN instrumented string functions riscv: Fix ptdump when KASAN is enabled riscv: Unconditionnally select KASAN_VMALLOC if KASAN arch/riscv/Kconfig | 1 + arch/riscv/kernel/image-vars.h | 8 - arch/riscv/mm/init.c | 2 +- arch/riscv/mm/kasan_init.c | 511 ++++++++++++++------------ arch/riscv/mm/ptdump.c | 24 +- drivers/firmware/efi/libstub/Makefile | 7 +- drivers/firmware/efi/libstub/string.c | 133 +++++++ 7 files changed, 435 insertions(+), 251 deletions(-)