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 ED0CBC001DC for ; Wed, 19 Jul 2023 08:28:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7DF6728003B; Wed, 19 Jul 2023 04:28:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6FC3228003F; Wed, 19 Jul 2023 04:28:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3246F28003B; Wed, 19 Jul 2023 04:28:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id F3E5F28003D for ; Wed, 19 Jul 2023 04:28:47 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id C7BA81A01E0 for ; Wed, 19 Jul 2023 08:28:47 +0000 (UTC) X-FDA: 81027685494.27.18E68BB Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) by imf26.hostedemail.com (Postfix) with ESMTP id 6EE9A140015 for ; Wed, 19 Jul 2023 08:28:43 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=none; spf=pass (imf26.hostedemail.com: domain of lienze@kylinos.cn designates 124.126.103.232 as permitted sender) smtp.mailfrom=lienze@kylinos.cn; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689755324; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references; bh=lykMfvlKarYOxceN2J0mA5IMHhYMI9RIdlJZI5hom3A=; b=aVtnRtPf/RZIWwANdD+sx0hFmk6FL9pwn20Ey6tvfDcn7Mm1keyQGSUb3j93aTtWnu93bu 3PtKv87qpdbZPZ3CQraJfztp356x85A7z2XK5R7HO7o7SZmkEjKjRneGLjXlwILQIVQ+fr h2HTscgfVa2jg5w5uvBiQUT3Njd/Cc0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689755324; a=rsa-sha256; cv=none; b=BT/7nt/4OEyx5j4Y8TEN0chYB/IPdPw5q6yhKMrVCAnHsvn++wz9UV/SEX25hWumAX5oGt sxYkXbcsZomYDZOe2cwzX/jDUZyTGkiHSv/HaHDz52tYTtKugd6wdrBO4u8ZOsIKNoqjfW 9I2yBGK4UoxaqTC5pFmkyw+HBFwaeZM= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; spf=pass (imf26.hostedemail.com: domain of lienze@kylinos.cn designates 124.126.103.232 as permitted sender) smtp.mailfrom=lienze@kylinos.cn; dmarc=none X-UUID: 3439a2eb271147a5a78e7a938c3948d3-20230719 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.28,REQID:eba608f6-b7f5-4435-a8c7-db8af9869d8f,IP:25, URL:0,TC:0,Content:-25,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,AC TION:release,TS:-15 X-CID-INFO: VERSION:1.1.28,REQID:eba608f6-b7f5-4435-a8c7-db8af9869d8f,IP:25,UR L:0,TC:0,Content:-25,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTI ON:release,TS:-15 X-CID-META: VersionHash:176cd25,CLOUDID:f617c5dc-dc79-4898-9235-1134b97257a8,B ulkID:2307191614510XI4YAKB,BulkQuantity:1,Recheck:0,SF:17|19|44|38|24|102, TC:nil,Content:0,EDM:-3,IP:-2,URL:0,File:nil,Bulk:40,QS:nil,BEC:nil,COL:0, OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD,TF_CID_SPAM_FSI X-UUID: 3439a2eb271147a5a78e7a938c3948d3-20230719 X-User: lienze@kylinos.cn Received: from ubuntu.. [(39.156.73.12)] by mailgw (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1885092020; Wed, 19 Jul 2023 16:28:18 +0800 From: Enze Li To: chenhuacai@kernel.org, kernel@xen0n.name, loongarch@lists.linux.dev, glider@google.com, elver@google.com, akpm@linux-foundation.org, kasan-dev@googlegroups.com, linux-mm@kvack.org Cc: zhangqing@loongson.cn, yangtiezhu@loongson.cn, dvyukov@google.com, Enze Li Subject: [PATCH 0/4] Add KFENCE support for LoongArch Date: Wed, 19 Jul 2023 16:27:28 +0800 Message-Id: <20230719082732.2189747-1-lienze@kylinos.cn> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: wsht5it1ocjt7d96an4gw53qeq8cjntg X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 6EE9A140015 X-Rspam-User: X-HE-Tag: 1689755323-412508 X-HE-Meta: U2FsdGVkX1+/mZbXiTbN7SL3m0MbQprQkb/hkUSIWEGmWfMgclNGjsA3RZkVUGyf8sHASVOQAqOdkSSRm5V/b8aw/lljraiJiZ2/3bY7D2s8Q0LU3+8MiK4qm0XDuNEjt8E2qfyrJifnp1/CxMryGr5e6GMGOZs2bbeBmqMCnaP0NYxQABpBX6q9rpA6Di2krfMBDK8/sbeoTkdGegVKCCHgjFNEfkxxYAXyPoeaAKjp1Feqbaq7LiEo9QPZDun9yQg+FALep5EOJGoIaE8MhYeePL8/EAqbh/T9eaS36wfwyshwaRuuIMEMIOWPx1GgRb1o/5TTglzJaoW0i1Gpgx+pwuVM6L1NM11obnTcl1PNUSQH53HvTXfiYdU/P8pCxJDEFG4i4z0ybs5gvC8NUuuL3IoIV/wu+iUPsQS5md2mgxx5tAzAHurUIKteA22PvtbdIR5OPpc4Bjk5gnWnmJKm6EXmtXhlsSwDZWYurZ/n8O0tRbJfZbJ5ukJdBKkBzceoLU5+nkMNVrQ/cvF/YRR8sMUt+I+op++3Q4NfgjGJZYuRlHRs6dkvoYSRz744A032pKo+53CJQMWMGWSiajqKNpzl93XdMb/PcDUyYqkskMrsWtFuRW2HXw4PK50/bcTsiQvbvvOqoRZYjoWa3wMV/SlyEblnvsDFBRcvpoA1RTrhwLQRQHNARiSCFX/5RtSX9IpdTzPgiw0M5Qse+ILH2SgqkkCxmLjYFeCZhDMZfJbFEvE0nCGvoZg6Dh+gGyMJjywBOu6AhNcpY8KyP0kDQulWEWjvZ8kCkKJM83+O7k2X5NyTPpBwXaHYBmqPu55XNJimSq/S8OH6uWK0l1LQUxp1r2kcM4NDwO/yhMeuBuPUPbwsw4KUK9j1gXyKLNxdlcJPGeiydcqRvgPf+YpfWTHWGajIyVePSncTtd+uuXJwpy0RIwpE9x6UqO591o/1HKj4iyJeM671q8Y LFsRD3Sl RpID4WNnGjnzsz7jYLVOtpZh7EJxWKvMlaICd 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 all, This patchset adds KFENCE support on LoongArch. To run the testcases, you will need to enable the following options, -> Kernel hacking [*] Tracers [*] Support for tracing block IO actions (NEW) -> Kernel Testing and Coverage <*> KUnit - Enable support for unit tests and then, -> Kernel hacking -> Memory Debugging [*] KFENCE: low-overhead sampling-based memory safety error detector (NEW) <*> KFENCE integration test suite (NEW) With these options enabled, KFENCE will be tested during kernel startup. And normally, you might get the following feedback, ======================================================== [ 35.326363 ] # kfence: pass:23 fail:0 skip:2 total:25 [ 35.326486 ] # Totals: pass:23 fail:0 skip:2 total:25 [ 35.326621 ] ok 1 kfence ======================================================== you might notice that 2 testcases have been skipped. If you tend to run all testcases, please enable CONFIG_INIT_ON_FREE_DEFAULT_ON, you can find it here, -> Security options -> Kernel hardening options -> Memory initialization [*] Enable heap memory zeroing on free by default and you might get all testcases passed. ======================================================== [ 35.531860 ] # kfence: pass:25 fail:0 skip:0 total:25 [ 35.531999 ] # Totals: pass:25 fail:0 skip:0 total:25 [ 35.532135 ] ok 1 kfence ======================================================== Thanks, Enze Enze Li (4): LoongArch: mm: Add page table mapped mode support LoongArch: Get stack without NMI when providing regs parameter KFENCE: Deferring the assignment of the local variable addr LoongArch: Add KFENCE support arch/loongarch/Kconfig | 1 + arch/loongarch/include/asm/kfence.h | 62 ++++++++++++++++++++++++++++ arch/loongarch/include/asm/page.h | 10 +++++ arch/loongarch/include/asm/pgtable.h | 12 ++++++ arch/loongarch/kernel/stacktrace.c | 16 ++++--- arch/loongarch/mm/fault.c | 22 ++++++---- arch/loongarch/mm/pgtable.c | 25 +++++++++++ mm/kfence/core.c | 5 ++- 8 files changed, 137 insertions(+), 16 deletions(-) create mode 100644 arch/loongarch/include/asm/kfence.h -- 2.34.1