From patchwork Mon Dec 18 08:23:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tong Tiangen X-Patchwork-Id: 13496358 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 D2AF4C46CD2 for ; Mon, 18 Dec 2023 08:24:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E39986B0088; Mon, 18 Dec 2023 03:24:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DC1776B008A; Mon, 18 Dec 2023 03:24:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C8B3A6B008C; Mon, 18 Dec 2023 03:24:26 -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 B98286B0088 for ; Mon, 18 Dec 2023 03:24:26 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9804640954 for ; Mon, 18 Dec 2023 08:24:26 +0000 (UTC) X-FDA: 81579252132.13.4CF8327 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf13.hostedemail.com (Postfix) with ESMTP id 0B3D320011 for ; Mon, 18 Dec 2023 08:24:22 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf13.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702887863; 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=RWelpyzW3rv3OqFIwOb3OXrWhQlJpUZfCmh4vKefgxw=; b=ulZqCN18o+uIMMXhcegljlVv/7KBNpI+0PT0s5VvNnZNL6lvH0Ngwm50daG2oj+5iy0jKe YwbvN2gA+lLACFr+IFQK+zel77t/3eYqrfYFqMG6CMw42NXrNt6nYk1hWo4yjaVd3w9Jay re8gY0bRe+5SxNN8p5rFGgn9W/iunhs= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf13.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702887863; a=rsa-sha256; cv=none; b=D2SpAxMAAI7AFGjZHFacgS3GYBKc22QHuA5km6+++gwDmWtUQHmJXMS6ocHAFhpT4PF3sb dTryHw6vp4TELF0uPuTTWSOXiS1H9LwpujQqqeYN9aD3TQOKTe6az7/F+kNsNNb4wzYtOF w4QqBz/TbEmbDwtt4YM3HVaFKt5lfvE= Received: from mail.maildlp.com (unknown [172.19.162.254]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4SttCK0dlFzZdZ4; Mon, 18 Dec 2023 16:24:13 +0800 (CST) Received: from kwepemm000017.china.huawei.com (unknown [7.193.23.46]) by mail.maildlp.com (Postfix) with ESMTPS id 50A1518005A; Mon, 18 Dec 2023 16:24:19 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by kwepemm000017.china.huawei.com (7.193.23.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 18 Dec 2023 16:24:18 +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 v3 2/3] x86/mce: rename MCE_IN_KERNEL_COPYIN to MCE_IN_KERNEL_COPY_MC Date: Mon, 18 Dec 2023 16:23:59 +0800 Message-ID: <20231218082400.2694698-3-tongtiangen@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231218082400.2694698-1-tongtiangen@huawei.com> References: <20231218082400.2694698-1-tongtiangen@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm000017.china.huawei.com (7.193.23.46) X-Rspamd-Queue-Id: 0B3D320011 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: es8i9dgyn1jeswyciiswo6z8nkrz9hgp X-HE-Tag: 1702887862-898097 X-HE-Meta: U2FsdGVkX1/ILvIx4ZJPSRf0tEP3afJL+Ymd5tM5aUa9hKj/Lk3WFTbE1X0Pi8+pVB3StjLmyWa3cgJaQ6BbFpTUEhcWD98qetcBGYh4etOtv36uPhMO181hy1qaDtO1ScwyjyPbmeZs6TYB7vR/ZbllDVjgnZJFPL6A6HPnm8pyTt3FBSmoNu3vBQGEYKci9O9+8GsTFlYcmO9vMcjar2DnYRDsBFAyu8HYhT3hJ+njxkYp1secU2xtZA6GNnL/wO4N2IuVbKsr1C1mRsKPsQJ9sOtFT6zetDZIzuhCE2d9E4vaoPXoYaB0yEUiCYXjzkL0FEJnpOUAY+Rm2p9Gu1NKV3GXVrbpKdJ6KJ7/lEf3HkUDfBPGuVU1qn6LQUopGk04ZA/ZPn2S0rc9I/ur9U/yOTd9efA683jfTh2fplujyCjM9ijvPVWwiWwlwANDXALMk58HPzaZu3h9VMcWQbEm4mroMGgPebOFPREFyTFfn0sukRxyiFhFXo+RRvdHXErdzCxrNLt6fEH756rSvyjD68S+TULN9SYeRJ1nLqMnNJOQQ6m+uEfgXw0dp8q/UKpTwgZT9Imxj1ecLl97SBKb+7ZlaACE8+5Xe08aj97PO/S34TN9ruZ9HjGFAtYmlqf/A1IiHb1oCXp1RZgUwF8F+2JU864SjAifg8jLSYi46X0Zxe7M5vbjvmUzMsLldfYsuBcuGwxJJyjFmT3eoyAtjtPrtNMvapXqSK0F6QkvOPpBevOHwlVUDGlr1jvy6eTwhpKMkwsi7WxFwdzs9fH3i6COKePrIA6mMnHOvzU7ndHIwkd00A/xzMadqopMOV+ALwhYAn57m7HUoqmQKSRkSpIWL6MBtqOZpsvtRXTltcMPm3WQfSpNMxeZh9SAyAEZmJP06PTCDNH16aOAGH7rPzcisCVcTrnlxHVl9eU+qm2DYZKk7MM+3/RQOztFbXJmBouQTw0E0Gv8Dfe y6aX+vEz CcZpq0IM71ge53FSdLPwwq5KbclqWb8A7ZYgRpFiWPzwbdXMMnZwQBJhJufjzNtsy87ZokV1AQa8KE6l+LrZng53cAyyKNS9vPhe9YFJrFxzv+BwvvAxd2OqjSZ6FwciBbiCqPs0GKXmTDvxlC78mHZ04ZnpgGvJRsjE225QNsVyQHyG0C571zsHUioatcfalrUOK 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 faef7ceed746..dbea0c395c56 100644 --- a/arch/x86/kernel/cpu/mce/core.c +++ b/arch/x86/kernel/cpu/mce/core.c @@ -1597,7 +1597,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: