From patchwork Thu Jan 11 13:55:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tong Tiangen X-Patchwork-Id: 13517458 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 CF751C47258 for ; Thu, 11 Jan 2024 13:56:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4C1796B00A2; Thu, 11 Jan 2024 08:56:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 44CBF6B00A1; Thu, 11 Jan 2024 08:56:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 07AFD6B00A4; Thu, 11 Jan 2024 08:56:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E75186B00A1 for ; Thu, 11 Jan 2024 08:56:06 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CF38DA095B for ; Thu, 11 Jan 2024 13:56:06 +0000 (UTC) X-FDA: 81667179132.29.CEB585E Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by imf23.hostedemail.com (Postfix) with ESMTP id 2BCDF140003 for ; Thu, 11 Jan 2024 13:56:02 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704981364; 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; bh=l2zsVIk+1b7Atngi/VgaU2Rm1o1MWo/CA5ScH0V0f5E=; b=IiXAT1VcY4DaDFQAPjsTG/Qkr511Vq2W/ozuqS9TG7d3foz95ZNYKjkTCcibB2hj7riWdX YOYdZqF8heM9jd7rRA8wCbtUfSXeye711h+x0mOPp0+TXOs/DvUAbxeH7q+NcFPeiaEAtH XN48AWpGnRIcSVR6d8iPNraYlFKwN/I= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704981364; a=rsa-sha256; cv=none; b=S7FBSsZ9rmSpuYp5Smr4JXNxwrVk9JkrcZqwSfOQWoXXmpKfR4X+yGNLgPeMLCLIjuE40t kbbK0qrrvspAKC2zb2VBc9DrU4/ODztVhMbQe/xWdkpNHFh2H/VfB3zYPWbQQiWZ7y0iEW DbKRX8H/dkNBB5sqHe58hjA6anY272Q= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com Received: from mail.maildlp.com (unknown [172.19.88.194]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4T9mQ92wXWz1Q7fB; Thu, 11 Jan 2024 21:55:13 +0800 (CST) Received: from kwepemm600017.china.huawei.com (unknown [7.193.23.234]) by mail.maildlp.com (Postfix) with ESMTPS id 3CAAD14011B; Thu, 11 Jan 2024 21:55:59 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 11 Jan 2024 21:55:57 +0800 From: Tong Tiangen To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , , Dave Hansen , , "H. Peter Anvin" , Tony Luck , Andy Lutomirski , Peter Zijlstra , Andrew Morton , Naoya Horiguchi CC: , , , Tong Tiangen , Guohanjun Subject: [PATCH -next v4 2/3] x86/mce: rename MCE_IN_KERNEL_COPYIN to MCE_IN_KERNEL_COPY_MC Date: Thu, 11 Jan 2024 21:55:47 +0800 Message-ID: <20240111135548.3207437-3-tongtiangen@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240111135548.3207437-1-tongtiangen@huawei.com> References: <20240111135548.3207437-1-tongtiangen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600017.china.huawei.com (7.193.23.234) X-Rspamd-Queue-Id: 2BCDF140003 X-Rspam-User: X-Stat-Signature: ufssjnfgybmdt63jsz74yyjf3ui1esy1 X-Rspamd-Server: rspam03 X-HE-Tag: 1704981362-559530 X-HE-Meta: U2FsdGVkX1+vgcLc1/I2favZS4ARRG6T8NirHxLHfYWYo5Iq8upRPDOSZiFBzrGgHrxnN32EMwrfd6PpMmolESQvVLcclE5mSyGc2/gpuF79FrN0z5dr+B89PEgXmZiUoG8VHY+q4gs/h9y5CcebC+vf3BskZYYu/dZZLMryUOJsq3gcDt+4b/VFsWWLi5Opp0xFby9Ha0TLqYVP9PE/MI596xGF26h6wznGpTWsOoYR8BeORvRvsYknyV44YLDltzeEip0WX5asRJTMlj6jfYI5NnF1EPNLwzpBL426rilRKyFWfvmkodz/V5rAXuQ8TG6XA6DVTRko/wghRQgZ4hWsgtHlN+yKSLpmvEhs9gqHNLXJ0PkQNfUvIsxeK3l4uTnQZ5f3D6LuIdyAVlpXw5GDBAL0+shdfDJQGQNt0rMANIwqPDrjvqCvsZAehE5t8xcHtoiTXQlyHZc6tS6XFwaysx2RWbx4XkFIAp2x2tMXpYfSaoF8YvYcg53T26Lkt5kZoE/0V3A5pQZ04Q9twh7DKqZ6KTjuSF9JJrHVYCBiovau08IXlAYeAijiTlN32oE301CHiwfiyshpFMiVfhDXu63A54LFvrXGm6+7sin2cfMsWiq7n+MFCbyETW3bvkvL8bwjOPpVhoPk0qKkyvEe1o3O8UIjbQepmldH2LDQT6R/vHjJoamxfq9rehvoEQWVoOlkpgE1dk2efOml7B7yrB9CNtaYikMz8OiZwZrInse8uQU1Xg9iZify6T3Bafvc8dpdixT0KEiCfj76N/j8gKhm8Yjxu8hMFUcJ2j4cL3/oS0c/wj5Y7TeuECoa0A5S1HJvFqyTab+WZurW6YFO8O1rwRNHn2LYDm1dTn1+mHknFvb8bGfhF9+Kne60OGQPZpxea8ztZBAlozMBoA3I9GiM4XRGPGHKJjGkBvQf11OSFF06U3R4nkMGEybk1Aa73p3HqLxUKv2/Ds1 tYu+MtZx fW1hn0Z6uXnW57BNSmMrSqaOJSWMPf+n2dgzLwrSeZyJzcQvx566kjNWxc0IqVHIRRi2upa2NHx+e/Zx9JNx25gQbufrciKSoMBnx02T95v7U7LDScFZTSwYKXNye0QPxpYdBa73McnP7x0cvRWzrxymebkI8pImpgEgyQCDSy6Kc+NL/eYMuw0C+/MuL6aNpBtOa 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: In the x86 mce processing, macro MCE_IN_KERNEL_COPYIN is used to identify copied from user. do_machine_check() uses this flag to isolate posion page in memory_failure(). there's nothing wrong but we can expand the use of this macro. Currently, there are some kernel memory copy scenarios is also mc safe which use copy_mc_to_kernel() or copy_mc_user_highpage(). In these scenarios, posion pages need to be isolated too. Therefore, a macro similar to MCE_IN_KERNEL_COPYIN is required. For this reason, we can rename MCE_IN_KERNEL_COPYIN to MCE_IN_KERNEL_COPY_MC, the new macro can be applied to both user-to-kernel mc safe copy and kernel-to-kernel mc safe copy. Signed-off-by: Tong Tiangen --- arch/x86/include/asm/mce.h | 8 ++++---- arch/x86/kernel/cpu/mce/core.c | 2 +- arch/x86/kernel/cpu/mce/severity.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h index de3118305838..cb628ab2f32f 100644 --- a/arch/x86/include/asm/mce.h +++ b/arch/x86/include/asm/mce.h @@ -151,11 +151,11 @@ /* * Indicates an MCE that happened in kernel space while copying data - * from user. In this case fixup_exception() gets the kernel to the - * error exit for the copy function. Machine check handler can then - * treat it like a fault taken in user mode. + * from user or kernel. In this case fixup_exception() gets the kernel + * to the error exit for the copy function. Machine check handler can + * then treat it like a fault taken in user or kernel mode. */ -#define MCE_IN_KERNEL_COPYIN BIT_ULL(7) +#define MCE_IN_KERNEL_COPY_MC BIT_ULL(7) /* * This structure contains all data related to the MCE log. Also diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c index 2bfd0e3c62e4..bd1a31ed148b 100644 --- a/arch/x86/kernel/cpu/mce/core.c +++ b/arch/x86/kernel/cpu/mce/core.c @@ -1607,7 +1607,7 @@ noinstr void do_machine_check(struct pt_regs *regs) mce_panic("Failed kernel mode recovery", &m, msg); } - if (m.kflags & MCE_IN_KERNEL_COPYIN) + if (m.kflags & MCE_IN_KERNEL_COPY_MC) queue_task_work(&m, msg, kill_me_never); } diff --git a/arch/x86/kernel/cpu/mce/severity.c b/arch/x86/kernel/cpu/mce/severity.c index bca780fa5e57..df67a7a13034 100644 --- a/arch/x86/kernel/cpu/mce/severity.c +++ b/arch/x86/kernel/cpu/mce/severity.c @@ -292,7 +292,7 @@ static noinstr int error_context(struct mce *m, struct pt_regs *regs) case EX_TYPE_UACCESS: if (!copy_user) return IN_KERNEL; - m->kflags |= MCE_IN_KERNEL_COPYIN; + m->kflags |= MCE_IN_KERNEL_COPY_MC; fallthrough; case EX_TYPE_FAULT_MCE_SAFE: