From patchwork Tue Nov 29 23:58:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kim Phillips X-Patchwork-Id: 27547 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp632515wrr; Tue, 29 Nov 2022 15:59:36 -0800 (PST) X-Google-Smtp-Source: AA0mqf5stS0U7/5PTZWvDjMGF9u+YW+GczlSmeKv+WDgkSKDE0c+oiftf3XGnLxAt0QzRBhSOi/h X-Received: by 2002:a63:ce0e:0:b0:457:dced:8ba9 with SMTP id y14-20020a63ce0e000000b00457dced8ba9mr38264120pgf.221.1669766376600; Tue, 29 Nov 2022 15:59:36 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669766376; cv=pass; d=google.com; s=arc-20160816; b=paRaEUITeAs/SAhwwJHexchR5Q+KI68p/QqF5waKw9WzPAwL9GS/ng8+eQBmZ1v8+C t4IeRbcVrgt9W85JGgF0l+UUYVmYqaDnA16LfDhhdKqFmDvAY7+3r/NwerkA5bozqlzr u0Jn0BzDfURJtGswbGtzbGHoVuIutFTYdUUQFwtEdWHNCS7ib30tQaRDX4uUsEQb/9M1 5O29vpHOmyfKxLLRamo9xkvtPmiO8nQaMpQ+iLbXKN86bD8EQreT5lTsgBp1fYxu2+nG pQyce+ikq9yxEhKoYjXuNyXQqHqUWHg5VU8RDXrYcHSnCClur5BXjNeTUoHcmO6FnuY8 Ysqw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Ghj5ckqgDV1lXiflmVljLCykoA4qqKKX7qqvp75pDmY=; b=Mx5dnsWh6BMGmZDU9CQ8Uqwmhg46hLr+yCj1sdcmo0GtKU+KUzOU1Vl9ZctxhZNAxi 5HeQ0+20Kf0jaz6N2fXj3VSnWNLK7oObzAEc1oSxwygsg2O/zvGSl4cwsn84jnIig8LF KQcqhquYh79lwnlokDNE94EfcehquYuDxkiY7wreYUHO6N+1h9GggFvDzB+Thjhm/EER z/gQt+ASENWPdIsdN07Sa6gs60X5qd9rxtLqxR3eu5e3wlhW9gcaxBnQP4sKoUNakMV5 fXRYGKYqyrfJpccGrVu90WRq6mJx8x7QAk6kTitxKNXm1jOZt6HgaFQYRejZPMprIRQ8 jv9Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=gBzK9FKo; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a39-20020a056a001d2700b00561898445bdsi80874pfx.273.2022.11.29.15.59.23; Tue, 29 Nov 2022 15:59:36 -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=@amd.com header.s=selector1 header.b=gBzK9FKo; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231192AbiK2X7B (ORCPT + 99 others); Tue, 29 Nov 2022 18:59:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48290 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230434AbiK2X6y (ORCPT ); Tue, 29 Nov 2022 18:58:54 -0500 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2066.outbound.protection.outlook.com [40.107.237.66]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 367636C738; Tue, 29 Nov 2022 15:58:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MKAydu4oS57Qu5I9Lgdw+WTK6ewxl3OKV0sorxOzJ9zfErpqojtcoke9hnKBKejNFrKlaglhG8bjL261wkBPIymiRw3Rbwya/egwiUKRWciSB4VqqoEsyUNIPiLUAIjiFVcESQPRjeih85+9aeMtvFvnJgXv21DtWmOftPwynyx4kb1pBtkJXLkqTPI3C+bzSorVPZ7TzOS6us4QXQ508ywnpS+rUgsYReI2svxDSTzp4lNqiFnvlSUbg+mB99xyGFC+O0HS+oTZVKErcBW62cGWFmNjTUwgLNA5h/QPRrGaO1yrCy5C29r98V+aaYnNWKrk6oXESzZEbBshgTFsWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ghj5ckqgDV1lXiflmVljLCykoA4qqKKX7qqvp75pDmY=; b=hjUZB1nMD3oJM27HIX0/lUIEzobAW65Dhc+8iR/3zMMlqI03pQ+d2ajOCl4Q4cKO+CkhqG7su9LeHd8LVo1xbdSRw1acZ4SvSQ85gZFXW/Sy7jfpe21y8QcgULzu4eZJvSp8BiyGYazAo8P6gXaCG6W7aKM6cSucgydWcbX3aIW7Stu5wUr+wWX2nRU/uKkzgRTn/FDwY9LrlTGiolCNAcOewjmuUpqw46+oeVpE3diHMcj64xmmpk3AKvV9QiltvXjHVYwm46ub+ltJk+s/HW0YaBUfq6FCSUo9XMrApjZPF+CJd2sf6jJuAzTl6p2VbQ1reENqOOy/0u2tzOlF5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ghj5ckqgDV1lXiflmVljLCykoA4qqKKX7qqvp75pDmY=; b=gBzK9FKoi8FIBwu4fEQLoOAqy0WMNV3X80D90SilAOEHmy61NvRBitRffPq3K/5WIYqyXoI4Y7vEeq78UDcp83d8yLEajh9IF5rJa1qKisLyF9qgJW5ZADx4k8PoL/6I+SLWkYZo5NheDS5O12e04dTJSBmLCz9Nl8z3ldazfos= Received: from DM6PR02CA0146.namprd02.prod.outlook.com (2603:10b6:5:332::13) by SA0PR12MB4496.namprd12.prod.outlook.com (2603:10b6:806:9b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 23:58:45 +0000 Received: from DM6NAM11FT089.eop-nam11.prod.protection.outlook.com (2603:10b6:5:332:cafe::b6) by DM6PR02CA0146.outlook.office365.com (2603:10b6:5:332::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23 via Frontend Transport; Tue, 29 Nov 2022 23:58:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT089.mail.protection.outlook.com (10.13.173.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5857.18 via Frontend Transport; Tue, 29 Nov 2022 23:58:45 +0000 Received: from fritz.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 29 Nov 2022 17:58:42 -0600 From: Kim Phillips To: CC: Kim Phillips , Babu Moger , Borislav Petkov , Borislav Petkov , Boris Ostrovsky , Dave Hansen , "H. Peter Anvin" , Ingo Molnar , Joao Martins , Jonathan Corbet , "Konrad Rzeszutek Wilk" , Paolo Bonzini , Sean Christopherson , Thomas Gleixner , David Woodhouse , Greg Kroah-Hartman , Juergen Gross , Peter Zijlstra , Tony Luck , Tom Lendacky , Alexey Kardashevskiy , , , Subject: [PATCH v3 1/7] x86/cpu, kvm: Define a scattered No Nested Data Breakpoints feature bit Date: Tue, 29 Nov 2022 17:58:10 -0600 Message-ID: <20221129235816.188737-2-kim.phillips@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221129235816.188737-1-kim.phillips@amd.com> References: <20221129235816.188737-1-kim.phillips@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT089:EE_|SA0PR12MB4496:EE_ X-MS-Office365-Filtering-Correlation-Id: 868e6511-5d51-4477-c9c2-08dad265a6a4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x/CzIxxiBcUXtOORtPtXQYMHsKMDVQkvQcjditKtJRTonA+uJ2yqx1eQdfpE01pQ57o6xuOOG2Mn8K37aZhDtq2K52AUiaCJc7Ksn3d5RKW9IusvLeXFBo7mbucXQrgTiy6Y6jmOmzqEL9YsMfqhdO9ZbKtQzuhV9/7ICfIa9DxevJhuuwXWybL5qVQd1V3EsUivhVywZdeK0AY0SXsH25Hlcs0cS4u6AO/c8zzV6iSBdp4Qg61puVSkpQyqOJ7qw+zyiIZY7JzTpLiBH6LF3ZqAwYj4gievgOgqQYRyPYWZq/MpIITdbKxlu7t9FyRq8H3k5PcumNEazQLlFKjxL06dOsmo4t/zsuryVfil7nK0lXb8yAsQDI7HJFlxYsGOU+qIP5xcUW4RzS8KNKldEcekKxRIpeNjQNTDOhytKIsuSr+nI8kHsZzefFwLuCpplh6u0K6R/QwAIg/5M43eeJd8RT5uFySmpmWcj8Br71wXJ/3spVc37DLgKNZ1ov7nZpQHDi1B9keaH9aP6bIUW3PYTtD1rc3cpeZPyaAZFUZn60XcuAJfSqbtQLPgG3X9pJrpSOKD73DIUItXX6wiZd1v4i2KcBd3L/SUj8uB9rud94KzozMZZjH1pCeQrZWggHTSi1EPD3fqVrxkUFBECGWLpgiLj3mHVWIsrtudZGNm++2BySFT7T3ps0hYiCOwDEEAaU5/dfNmzdbPXnpWYgXMkkmpZNVLhdtr1LSifOI= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(376002)(39860400002)(346002)(396003)(136003)(451199015)(40470700004)(36840700001)(46966006)(478600001)(70586007)(316002)(2906002)(70206006)(6916009)(36756003)(54906003)(356005)(81166007)(40460700003)(82740400003)(426003)(83380400001)(6666004)(47076005)(36860700001)(82310400005)(40480700001)(26005)(86362001)(336012)(16526019)(2616005)(186003)(7696005)(1076003)(44832011)(7416002)(5660300002)(41300700001)(8936002)(4326008)(8676002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2022 23:58:45.4912 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 868e6511-5d51-4477-c9c2-08dad265a6a4 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT089.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4496 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,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?1750876948387024897?= X-GMAIL-MSGID: =?utf-8?q?1750876948387024897?= It's a part of the CPUID 0x80000021 leaf, and this allows us to group this and other CPUID 0x80000021 EAX feature bits to being propagated via kvm_set_cpu_caps instead of open-coding them in __do_cpuid_func(). Signed-off-by: Kim Phillips --- arch/x86/include/asm/cpufeatures.h | 2 +- arch/x86/kernel/cpu/scattered.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h index b6525491a41b..b16fdcedc2b5 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -306,8 +306,8 @@ #define X86_FEATURE_RSB_VMEXIT_LITE (11*32+17) /* "" Fill RSB on VM exit when EIBRS is enabled */ #define X86_FEATURE_SGX_EDECCSSA (11*32+18) /* "" SGX EDECCSSA user leaf function */ #define X86_FEATURE_CALL_DEPTH (11*32+19) /* "" Call depth tracking for RSB stuffing */ - #define X86_FEATURE_MSR_TSX_CTRL (11*32+20) /* "" MSR IA32_TSX_CTRL (Intel) implemented */ +#define X86_FEATURE_NO_NESTED_DATA_BP (11*32+21) /* "" AMD No Nested Data Breakpoints */ /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX_VNNI (12*32+ 4) /* AVX VNNI instructions */ diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c index f53944fb8f7f..079e253e1049 100644 --- a/arch/x86/kernel/cpu/scattered.c +++ b/arch/x86/kernel/cpu/scattered.c @@ -45,6 +45,7 @@ static const struct cpuid_bit cpuid_bits[] = { { X86_FEATURE_CPB, CPUID_EDX, 9, 0x80000007, 0 }, { X86_FEATURE_PROC_FEEDBACK, CPUID_EDX, 11, 0x80000007, 0 }, { X86_FEATURE_MBA, CPUID_EBX, 6, 0x80000008, 0 }, + { X86_FEATURE_NO_NESTED_DATA_BP,CPUID_EAX, 0, 0x80000021, 0 }, { X86_FEATURE_PERFMON_V2, CPUID_EAX, 0, 0x80000022, 0 }, { X86_FEATURE_AMD_LBR_V2, CPUID_EAX, 1, 0x80000022, 0 }, { 0, 0, 0, 0, 0 } From patchwork Tue Nov 29 23:58:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kim Phillips X-Patchwork-Id: 27548 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp632642wrr; Tue, 29 Nov 2022 15:59:59 -0800 (PST) X-Google-Smtp-Source: AA0mqf7t3cvViuSNNybvAbS9SgjxTGbvqUn6Y5Y/6MmqLMz6J1qiGgTeFoi3sxUTM6l0wp5vlzkC X-Received: by 2002:a17:902:e887:b0:189:1fcf:6ceb with SMTP id w7-20020a170902e88700b001891fcf6cebmr38524507plg.45.1669766399146; Tue, 29 Nov 2022 15:59:59 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669766399; cv=pass; d=google.com; s=arc-20160816; b=QMnkW/m1QPlC73PGcntCI/IObjUQAqnnESPe2ec+iP+944tvNjyeA+gtcvMajdKHOy lizKHbBc5K62jRsUfN0bnfaNTqNZMQeGEGFGosJrFpY2n5gih9MFnwGZev1OCkha97d7 5Hp1CeQ4kI7XWJ5kP1hmi6FRzk3mQlA81Ys2FTrQ0CuxeUrTNKKfit4ze27IokSfNJIK jQuSuyMOrsVTGo8t0o6xfNkZ7h8cWlTj+1oDvfuKr8tvrg/6NtLdCCvwMoAzIbBct3sT OtcAoiFEBALvfZtNz5G+HINFDkN0Eo15VOkxIgliy4egrl/tsRwjxL+ke3TFIFrZo3uh E5Bg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=3mBRCH0RHZGhPDha632U6j9+A9xCRgPvHIBf/L4fpSY=; b=eOqK7O7Zx9u0ssuqdWnQIWAUImX9d2evJiz29EOPBxN5pUx0Ei6kEDCqIqPHqf9twH mvYkI4wjxBLYLWdzCZ4ctoRgAWCuT8uID7J8aUqJmLkfe70RSCLRc3Cbv0jWAGacWvOr AdiSAqvmfs34+vrlJZRL6L83Mfl4FItUp3k8+g3CxBGHIkATPg3ih0MN1Nx2Hx241JQY LsSXFrmtqGGtuMzgt6CKpXF4JPn2J1gjPLKFZyHwDHETpfOrIMQsfBAnTuJw4M2CgxNs 9DnfEkglhvSkyg+21Fm43JbOpjVUVXO/1k7FNXSOjmr+4FJ49bOEkiWDXsKzNIFxb956 TahA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=uCTaG4HI; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cd5-20020a056a00420500b0056ed0d35397si103298pfb.184.2022.11.29.15.59.46; Tue, 29 Nov 2022 15:59:59 -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=@amd.com header.s=selector1 header.b=uCTaG4HI; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230522AbiK2X7V (ORCPT + 99 others); Tue, 29 Nov 2022 18:59:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48836 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229919AbiK2X7H (ORCPT ); Tue, 29 Nov 2022 18:59:07 -0500 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2067.outbound.protection.outlook.com [40.107.93.67]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EDF3B6F812; Tue, 29 Nov 2022 15:58:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BeopJMIBqi3lZAg21la+5B8G0N+rQtGWelBe3OvhiTgJRyxeG69+VFd943Q3TIFPVS9Wl0nunE1a4BV5KV/zAsjF29ygEiPL1F3U7VRlgbZgRdVvGR4IjQcZ5dz9pvM54iGo8qOc+PNfIGCFBTWtrfL8Lq+SjtqtzDe968i4vso8qE11+Gnno6dLNHRAfK2EztGtN5SrKpS7OGMDyijySrU2qlD14Z6/y2zIiQmPnBwlt/3HjZCWqFgkJDCCTvpht+6ysrx9j+W7rP1pC81wm5uNKmXax0sSjVGYAU0mEk8+b6MzROwnw1U74ngo0EUoeoHjr966Ycuy46yJuILd7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3mBRCH0RHZGhPDha632U6j9+A9xCRgPvHIBf/L4fpSY=; b=SHmb/UHhFL2Xx5y1cuTN9R8Jt423r0P2U15Z+RjjYkOp2/xrYsVdJE4H5kv90otiZ3BhrEqCDAnfKLNEoIBoXCO94vSZ9xFklxha/9PEqmoTZqPh2MzEIQz9hdVBITT5ZIRuBAYqCDf6YOwgMqXRN1pdMGVdDVJtS7qaKfS8tsIw334u6BsCAIAsrIJnSNbk5/Q9YCGiYOpOUFwtuLHl1tPwrruNZae7pzjS57GgGaB137vMRcTrWcF4a1XMwncqMgTBRLwyKg0dID7rT2qTeBLSx8faX2QYvG2uxNhG1/WDRhFm1KJrJEaNMj+TwbKt3MUvRFrMhj59nQ3Das+Otw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3mBRCH0RHZGhPDha632U6j9+A9xCRgPvHIBf/L4fpSY=; b=uCTaG4HIc1zbTH927WJBf3KqGhO8GpEA8bN9IXmoltfqCSNd7+MZItv/c+mGcBapeRtpNzGiYaoiwxMDSL/ys7tBDIN11QmkTca0TdRlNOtfohQ5mBPle8ROKrgQoRn52zVilEoMemUQY5AwUvPZCxv5+uGspRRVPH9DQxfkojs= Received: from DM6PR01CA0002.prod.exchangelabs.com (2603:10b6:5:296::7) by DM6PR12MB4252.namprd12.prod.outlook.com (2603:10b6:5:211::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 23:58:56 +0000 Received: from DM6NAM11FT112.eop-nam11.prod.protection.outlook.com (2603:10b6:5:296:cafe::69) by DM6PR01CA0002.outlook.office365.com (2603:10b6:5:296::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.18 via Frontend Transport; Tue, 29 Nov 2022 23:58:56 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT112.mail.protection.outlook.com (10.13.173.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5857.18 via Frontend Transport; Tue, 29 Nov 2022 23:58:56 +0000 Received: from fritz.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 29 Nov 2022 17:58:54 -0600 From: Kim Phillips To: CC: Kim Phillips , Babu Moger , Borislav Petkov , Borislav Petkov , Boris Ostrovsky , Dave Hansen , "H. Peter Anvin" , Ingo Molnar , Joao Martins , Jonathan Corbet , "Konrad Rzeszutek Wilk" , Paolo Bonzini , Sean Christopherson , Thomas Gleixner , David Woodhouse , Greg Kroah-Hartman , Juergen Gross , Peter Zijlstra , Tony Luck , Tom Lendacky , Alexey Kardashevskiy , , , Subject: [PATCH v3 2/7] x86/cpu, kvm: Define a scattered Null Selector Clears Base feature bit Date: Tue, 29 Nov 2022 17:58:11 -0600 Message-ID: <20221129235816.188737-3-kim.phillips@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221129235816.188737-1-kim.phillips@amd.com> References: <20221129235816.188737-1-kim.phillips@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT112:EE_|DM6PR12MB4252:EE_ X-MS-Office365-Filtering-Correlation-Id: aa1b7b52-0eb8-4c46-cce0-08dad265acfb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zokKW8VjUgFVODjrUUZZuCb9bnPEQa/fm+MVbWitwHb8GYsvpP588z/QEgwevyq2Yzp6z/DVw7JOVkp3Rw3kyDq72ayLU1YlPZ1ocwmK525Okn2ANgNQGoQ6lJcXrphGbkJwnCy2aWMMe67cyybuEKl0gaA5nriGia/V+7RfiVelNxLjeq0mstwqar4eH5JTb24caVv4J1UTFm51isVD9wbTa2ASUE3UuYaxJB8j6v9ClZzyoYD2c6Y5NUSppoNY+f48or2wzQzG07b8V+sRSDwdZiICyD7WgWqOusoLMaCYGY3+X6Indcsy0RPNqOBpeujVHQZLS2ATjaDvQWCn0OJx48KQ8MSAwS6PHvSKe0uTQhUoWZcCS9IKJwLqGstGDZMCCbaTD3ALVGK2rfJ7vKttutKz1ArpBXX+YAFyCXAI0ViTQfJEg0GLnY5K/I2VjQuONDIr+dnUvIj9kqoH4DXsntiogYJBjuKy+FaNCEA8lkY4C+ico3PFZuns+/CD8TGmcNbsvzMtMObTaiFqrHHpSYSOCoB5NECZk9t0Xji6Wwgq6ySWGKzQRpVzdc/FJRnQi5fbW8rJWCw9Oi/OFhylgxraf6rcMtM8U38gzHPKAYBSEmo++Stx49t+vrPVawFWFWkO/8+5gUIryteiDESpvb/QWsKRecm6upN1k7cfa9yLyczU2ogEfGg0QQXnuGh4sy9fjBhQ5wAolUjATBma6EBvcc98Px1rw0uk+QY= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(396003)(346002)(376002)(136003)(451199015)(40470700004)(36840700001)(46966006)(356005)(81166007)(86362001)(40480700001)(16526019)(70586007)(336012)(41300700001)(186003)(8676002)(8936002)(70206006)(4326008)(26005)(2616005)(478600001)(40460700003)(7696005)(316002)(6666004)(6916009)(36860700001)(83380400001)(82740400003)(44832011)(54906003)(7416002)(5660300002)(426003)(1076003)(47076005)(2906002)(36756003)(82310400005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2022 23:58:56.1278 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: aa1b7b52-0eb8-4c46-cce0-08dad265acfb X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT112.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4252 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,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?1750876971852149727?= X-GMAIL-MSGID: =?utf-8?q?1750876971852149727?= It's a part of the CPUID 0x80000021 leaf, and this allows us to group this and other CPUID 0x80000021 EAX feature bits to being propagated via kvm_set_cpu_caps instead of open-coding them in __do_cpuid_func(). Also use the feature bit definition in check_null_seg_clears_base() instead of open-coding it. Signed-off-by: Kim Phillips --- arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/kernel/cpu/common.c | 3 +-- arch/x86/kernel/cpu/scattered.c | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h index b16fdcedc2b5..5ddde18c1ae8 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -308,6 +308,7 @@ #define X86_FEATURE_CALL_DEPTH (11*32+19) /* "" Call depth tracking for RSB stuffing */ #define X86_FEATURE_MSR_TSX_CTRL (11*32+20) /* "" MSR IA32_TSX_CTRL (Intel) implemented */ #define X86_FEATURE_NO_NESTED_DATA_BP (11*32+21) /* "" AMD No Nested Data Breakpoints */ +#define X86_FEATURE_NULL_SEL_CLR_BASE (11*32+22) /* "" AMD Null Selector Clears Base */ /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX_VNNI (12*32+ 4) /* AVX VNNI instructions */ diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index 73cc546e024d..8d28cd7c9072 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -1683,8 +1683,7 @@ void check_null_seg_clears_base(struct cpuinfo_x86 *c) return; /* Zen3 CPUs advertise Null Selector Clears Base in CPUID. */ - if (c->extended_cpuid_level >= 0x80000021 && - cpuid_eax(0x80000021) & BIT(6)) + if (cpu_has(c, X86_FEATURE_NULL_SEL_CLR_BASE)) return; /* diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c index 079e253e1049..d0734cc19d37 100644 --- a/arch/x86/kernel/cpu/scattered.c +++ b/arch/x86/kernel/cpu/scattered.c @@ -46,6 +46,7 @@ static const struct cpuid_bit cpuid_bits[] = { { X86_FEATURE_PROC_FEEDBACK, CPUID_EDX, 11, 0x80000007, 0 }, { X86_FEATURE_MBA, CPUID_EBX, 6, 0x80000008, 0 }, { X86_FEATURE_NO_NESTED_DATA_BP,CPUID_EAX, 0, 0x80000021, 0 }, + { X86_FEATURE_NULL_SEL_CLR_BASE,CPUID_EAX, 6, 0x80000021, 0 }, { X86_FEATURE_PERFMON_V2, CPUID_EAX, 0, 0x80000022, 0 }, { X86_FEATURE_AMD_LBR_V2, CPUID_EAX, 1, 0x80000022, 0 }, { 0, 0, 0, 0, 0 } From patchwork Tue Nov 29 23:58:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kim Phillips X-Patchwork-Id: 27549 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp632894wrr; Tue, 29 Nov 2022 16:00:28 -0800 (PST) X-Google-Smtp-Source: AA0mqf4Jicaq28wxGUzMGHDJayvqIoMyuY+QVAZ7zsAbkzHMTxNiWi2/URNcCBvSQFTfVN+OVYxg X-Received: by 2002:a17:902:d711:b0:188:c7b2:2dd with SMTP id w17-20020a170902d71100b00188c7b202ddmr40871838ply.88.1669766427748; Tue, 29 Nov 2022 16:00:27 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669766427; cv=pass; d=google.com; s=arc-20160816; b=bMx0yryALvo5KykU+Fo9XxPNWACofVe+sN84TlJpVWxpMS2N0b4OhMP3dq9ukl8pzy W4ECrKb4PhF2fjpGXWgYw81KcRMjd4GreimSoPcpghtZdSrrHW0aVl9JLYsfIVvAJb1a Nt1OTQN2uf0iOcwDVVdrnPW3re86gASecWYnTuq17ZEWO0txf8o2RblLPQz2x9dlSpdt VHgXDGpMzDAXePon/mONguoNR668rrmRFLAk4hZqnvKbs7gUxKbWb3brGBinnI4Fyfd8 v4jyl0qDqRTG7hqSA0IUTyLizrJRlq9uZAXWxKlVLSMl7j+yEyA/7OOXtio3hNVb2KzJ Pgcg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=nMesUoH8kGFotcuGaOijJiorBejNzqio1mI5w5aNIKI=; b=naNfvIOL6DSNFA+J9jLmEv2JA3BZ6rpy6hdt5JiiqGDzgwstUoV8koSF/sj32Mvs9j ITkNque2nz/hH+dS8kET3+d+s7g39lmBnb9Hq8ERN/TLSphtOze4dIZzV6ZfpuIgRaHX BDbd2EDWGULQHqwYcwEs4Sb6UUaMJSi6XRQm0BzTw5GskUCgaf2wkvkDcOVFAhKL3v/i xcueuCEz0DLyFv0/ZtGDJXH0d84RdDZOUyYYqoZ0bGQGjT74qzd/efjvZcxqt6lOP4yB TmUd9zmaU6ztCNEMMITfuwKdlOxRewbzpmCAO60oNZDQzdK2+7OfOYrzcJyg47rrAQnH s+NA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=QvlnlItD; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f22-20020a056a00229600b005638baac87csi148165pfe.64.2022.11.29.16.00.10; Tue, 29 Nov 2022 16:00:27 -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=@amd.com header.s=selector1 header.b=QvlnlItD; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231516AbiK2X73 (ORCPT + 99 others); Tue, 29 Nov 2022 18:59:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231356AbiK2X7V (ORCPT ); Tue, 29 Nov 2022 18:59:21 -0500 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2051.outbound.protection.outlook.com [40.107.223.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 939676F35B; Tue, 29 Nov 2022 15:59:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i+ao8IwiYhRb1lsl3S4S4afZv7id7xgDE9jDjOWF6ezZ3Zrw2Mgiy4iXA3ghA8dWlTdqrYoDBajlFvctOP5a70t4hYReqQamcJGvb/LBV9yflAPmXydMwNb0/Pxc7riWjeimgJ04Ueypl1Pu5Kp9/C5N+PH0JQVFdOMZGuaBT/zo7jqCD3WKy1agScUAN3pHQCw47hR3Fle0TuYsnqT+0p8BL/oRag1axcvD6DRhkprtPvslKgktZ60qWRXGauoXvGpZTxQpP41ZBe59cLkxOPZprbyUZCtYCt9f0HdEfou2Wmj++ur6jM73qbYzItADnUKyrsDEsozpzawkw0rjAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nMesUoH8kGFotcuGaOijJiorBejNzqio1mI5w5aNIKI=; b=d1MaQHqF3UKLny+qJtZyBWct2LiPPe+3aWtA6R7gMlmPNHAxfxz22+XJtYHnzEB4n7MhG3L6bgkCN62OhGcpfbJxsKQJvX7MpBZFNbNWB7ucV2xlmKRAZFKbdv1a2nk0TGVgKt3hjxx0SJjkjnTpF8QwHx6Z7DosjrWBnX0BoNnHkp6e8Ly0gI6a5KN14YUoAzO5OZK8iCt+lUxyN/CiamtVuPjr3arJBd2e1JM4H0oZvTD3mhg9ckBFAHLvU+67IxLuT2H53OJfMAANP15286lheGUXQ/Uwf7SZ8CECbcRf7vIUayi0yx891Kvxa/MP92S8pLnCY4/1QO+1KJgejw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nMesUoH8kGFotcuGaOijJiorBejNzqio1mI5w5aNIKI=; b=QvlnlItDAqX68u8ewam+kPCD7OsQwquPCkaaHXuv6ah6ci3zMIvz4HfMLZCGUFIIRBHuEYUntRysnCE4XqiLrjSweDZScvKsEDQ+JY3XsWPuXPkkqMpvX03KEjkc7znB546NLz3UDJ3ZFX/dNwsWR052Ei9vON3HAIVZd/turag= Received: from DM6PR11CA0017.namprd11.prod.outlook.com (2603:10b6:5:190::30) by CY5PR12MB6382.namprd12.prod.outlook.com (2603:10b6:930:3e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.20; Tue, 29 Nov 2022 23:59:08 +0000 Received: from DM6NAM11FT033.eop-nam11.prod.protection.outlook.com (2603:10b6:5:190:cafe::27) by DM6PR11CA0017.outlook.office365.com (2603:10b6:5:190::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23 via Frontend Transport; Tue, 29 Nov 2022 23:59:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT033.mail.protection.outlook.com (10.13.172.221) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5857.20 via Frontend Transport; Tue, 29 Nov 2022 23:59:08 +0000 Received: from fritz.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 29 Nov 2022 17:59:06 -0600 From: Kim Phillips To: CC: Kim Phillips , Babu Moger , Borislav Petkov , Borislav Petkov , Boris Ostrovsky , Dave Hansen , "H. Peter Anvin" , Ingo Molnar , Joao Martins , Jonathan Corbet , "Konrad Rzeszutek Wilk" , Paolo Bonzini , Sean Christopherson , Thomas Gleixner , David Woodhouse , Greg Kroah-Hartman , Juergen Gross , Peter Zijlstra , Tony Luck , Tom Lendacky , Alexey Kardashevskiy , , , Subject: [PATCH v3 3/7] x86/cpu, kvm: Make X86_FEATURE_LFENCE_RDTSC a scattered feature bit Date: Tue, 29 Nov 2022 17:58:12 -0600 Message-ID: <20221129235816.188737-4-kim.phillips@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221129235816.188737-1-kim.phillips@amd.com> References: <20221129235816.188737-1-kim.phillips@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT033:EE_|CY5PR12MB6382:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b284d98-dcdf-4fcc-7eae-08dad265b44f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6SUnmB80h9cyVNEHmNbwK67Ok1GsJCeGWY8S8RNiBgBLfiqRvOwGa/X4VRkeJFPEWjRKy3cKiiI77YvyuXG9mmeFsP7l0Mn4oQu8WZuC724iH8Vn/cUHOfA13lnGAjlGdAUZN/j9/KhVLtWTYlGllgD1gb99YuSsJkeBdtPTRT5AlZmcuvO1TeizKUO3auUSoN9t8Jlitr8I9/z/cMLb+MTcvagdFEjjMoqK0/TAfRNxoQt20n03nRxOR6xRkmNnLf5YrtEUsC4+8MfNi9kn/qR6uEinBROsQVuucmG1HCrB6kSyxN2apgeN7MKs4Ifrg7DF70/GGnMJl36DFaLK2eDURqfjP/4H6kc3U7XsWJbKXxNryym+6M5T9vjsfhXw2fCGvLQS7lbTAbmy3rPW1guXmvtTfmdIVnrA+vrpDe9Zg8BE4Ye7KFBRK2bfL07J/hQEDQda9bQBenJTDhqkx/q96KPOvLBAcB5Sz/kYD9lj07RdcksyY3tajhrrXVqGz7g0uJ2hOfR472QHMbrba+QwTrBesoTdZMWLphVp336cGkIFl5etpfGnV/reK83dhBAM1r+x/KRZMB5CvySEKVruMFSxqWRs3AKt6yubxMH+RCEsb/5PJ5DD4qyvN13/LJNeqnflEDonelyMIW7fuAu5lc/8xB8OgW6wiZJOlSJJq/pltKKnCJKBTdZ+jHdhDV+Q0yIqzulec+SU+46yzMrAJxQxT+MRU8oSMbqK11I= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(396003)(136003)(376002)(346002)(451199015)(40470700004)(36840700001)(46966006)(44832011)(40460700003)(70586007)(478600001)(86362001)(81166007)(356005)(36756003)(40480700001)(82740400003)(16526019)(36860700001)(2616005)(336012)(186003)(426003)(1076003)(47076005)(4326008)(41300700001)(6916009)(6666004)(316002)(8936002)(7416002)(26005)(8676002)(70206006)(2906002)(7696005)(54906003)(82310400005)(5660300002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2022 23:59:08.3266 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4b284d98-dcdf-4fcc-7eae-08dad265b44f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT033.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6382 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,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?1750877002097199902?= X-GMAIL-MSGID: =?utf-8?q?1750877002097199902?= It's a part of the CPUID 0x80000021 leaf, and this allows us to group this and other CPUID 0x80000021 EAX feature bits to being propagated via kvm_set_cpu_caps instead of open-coding them in __do_cpuid_func(). Unlike the other CPUID 0x80000021 EAX feature bits, X86_FEATURE_LFENCE_RDTSC already had an entry in cpufeatures.h. Signed-off-by: Kim Phillips --- arch/x86/kernel/cpu/scattered.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c index d0734cc19d37..caa03466cd9e 100644 --- a/arch/x86/kernel/cpu/scattered.c +++ b/arch/x86/kernel/cpu/scattered.c @@ -46,6 +46,7 @@ static const struct cpuid_bit cpuid_bits[] = { { X86_FEATURE_PROC_FEEDBACK, CPUID_EDX, 11, 0x80000007, 0 }, { X86_FEATURE_MBA, CPUID_EBX, 6, 0x80000008, 0 }, { X86_FEATURE_NO_NESTED_DATA_BP,CPUID_EAX, 0, 0x80000021, 0 }, + { X86_FEATURE_LFENCE_RDTSC, CPUID_EAX, 2, 0x80000021, 0 }, { X86_FEATURE_NULL_SEL_CLR_BASE,CPUID_EAX, 6, 0x80000021, 0 }, { X86_FEATURE_PERFMON_V2, CPUID_EAX, 0, 0x80000022, 0 }, { X86_FEATURE_AMD_LBR_V2, CPUID_EAX, 1, 0x80000022, 0 }, From patchwork Tue Nov 29 23:58:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kim Phillips X-Patchwork-Id: 27550 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp632960wrr; Tue, 29 Nov 2022 16:00:33 -0800 (PST) X-Google-Smtp-Source: AA0mqf6uS/WiYtbEQM18g+hIg+wcFDkMQHVhfhLs4CM1iHh4fVG5DDBNuJNy9kf/iC+vrAR2nCDR X-Received: by 2002:a63:4708:0:b0:461:4039:88d1 with SMTP id u8-20020a634708000000b00461403988d1mr32979957pga.568.1669766433039; Tue, 29 Nov 2022 16:00:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669766433; cv=pass; d=google.com; s=arc-20160816; b=ik+kR2GUx+Tq9KLIVL8CFtdwlBGDfCZdPgPvanrOBvzWmth1qkozhVn8hbdmo6S+2x wS0aVMcfiwyBnZB8Tn8m0npC9oj8szfxS1rxPiOSaHQMb7RhBNVb5w0Ctfz5b0jisGt5 i4q9GZ0qucggYrEgOIDFRv7/+H6JXChtg12OxuzSbiYRuDhKPgUQ5Gl+jwJpMZmULNy4 okROCVmbt0SQ/cBZt8V94ympKKqTyxvLafB9SEUNUHUrTUV6JPBQ6GTVPwjKkI3mIqOa ThhX08boXK9LfOrCiu6ooF3Rx7s9f0RzwobuRB+z3thBYokx670+A4N75LBRhvZ4Esuz QWTw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=CqdISPSbp7KQRgmhiHQrk4ift4qakd4q5TfFK7+GO+k=; b=yYmHVy3dBwkgb2axMJPjdsOfFwh1fsZzomzL8Zm2JZTzIkvNOoIaxBSqXmsoZ9dIiz QBykbIXBtJwm7dbOaXDzBomUSSdDir271Reb0MQote6YkAJM/IAcFdNxKhYqt7vC5frL L0+A4fL9RkN7foqIjZo4CNq5eR9UKS90QpQvY8kDkroj5eVpNRB5D99TYPf1AhQqtBZP Kpgtw8Qhzs6/7P3yRJfbSjZ3FQpixF0kn9rcNBeXEEHYAZDU7XRrJ96MWFJ4//RocCVM L0FmXxmNnHpp7BDO6OkhTl4J5HBiNzJYSOIz4HhrJnKSgfbXrDI5HuInsA/hucU6vS5e lxfw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=c0DwQ+8S; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cv9-20020a056a0044c900b005631aaf81f2si105228pfb.183.2022.11.29.16.00.19; Tue, 29 Nov 2022 16:00:33 -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=@amd.com header.s=selector1 header.b=c0DwQ+8S; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231821AbiK2X7q (ORCPT + 99 others); Tue, 29 Nov 2022 18:59:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231345AbiK2X72 (ORCPT ); Tue, 29 Nov 2022 18:59:28 -0500 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2066.outbound.protection.outlook.com [40.107.237.66]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C260716EC; Tue, 29 Nov 2022 15:59:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tho6qxLhGEvUfujh/JFWunWjoT8WPPdugQEcZosdLeWIHsSLCs7CvYDZlpsqoxLjE0ltpxF+JdrvcjB43jJI0vEKiXgFg0+o45RBAYRKo9Ts1NMNABeUdXHU8dFg8EpqtgcFRFhRK4qtKbZCUnAasnHrWBkfqpQ6SRKi5VuxE0UWa+I7ii+dBP1HLAq4VjmnWx9sgHdEtRrifu0QkMNzN43NqrPiHWOQZ3ByfSvu8K0w+MZysOZs4DcOGUkLEuWEK4xvII9e/YeWesHrIGXy5+w5ENnPjsAXZd/e6iUBGN54xPzxXZ/pZ4vW0soLfEFgiV/XW6mMqkFB8QggwyJtjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CqdISPSbp7KQRgmhiHQrk4ift4qakd4q5TfFK7+GO+k=; b=fCyI+R91IHrlcs884kIw33KFzXKF/Up1Z58q6PjaYDGOfWj6WHTIDEpYX6EsVUmFRlJP9jZsdFfzqj01mFRdcD/DCUjtTBtFUnlbqA1vM0Yvq3gR4bETvD0qa+OR+KFeJQUgHJcCajwqQ1M1rQT8+Vz7t54V0Mb+GEc0l+g4yXZgFYesv0SOpFztyoi8TokhNWJGmWzpxEumG1lFfK/+Xp5azSDV29MV1dlIYOUqBhO/zeGd+M08/KMHGgqaXevcr0IM1Pc1Dm4ahpLy2KVyxo81iBQxezgsn5IS5PmoSbuuNYlVhMqe7TkDJB6UVD2lE6YxZW2GMI3cF+A7W/FsSA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CqdISPSbp7KQRgmhiHQrk4ift4qakd4q5TfFK7+GO+k=; b=c0DwQ+8S/1OoXbv+NBNDRiXH2TOaPHmNW5IB/UDx9cZqOxrlgmMVAT/+yovPcwp4ol3yK/kICppZ8TW1qfbW6M/VRYm+1ssBlUWeDQ3eWviXbb3LGVza+WrhBY8ybXZccsCUdLA3MbhiAalrj8WV4Zcb3BFW6avU8woz1vi4+PE= Received: from DM6PR07CA0101.namprd07.prod.outlook.com (2603:10b6:5:337::34) by DM6PR12MB4863.namprd12.prod.outlook.com (2603:10b6:5:1b9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 23:59:20 +0000 Received: from DM6NAM11FT081.eop-nam11.prod.protection.outlook.com (2603:10b6:5:337:cafe::1b) by DM6PR07CA0101.outlook.office365.com (2603:10b6:5:337::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23 via Frontend Transport; Tue, 29 Nov 2022 23:59:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT081.mail.protection.outlook.com (10.13.172.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5834.8 via Frontend Transport; Tue, 29 Nov 2022 23:59:19 +0000 Received: from fritz.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 29 Nov 2022 17:59:18 -0600 From: Kim Phillips To: CC: Kim Phillips , Babu Moger , Borislav Petkov , Borislav Petkov , Boris Ostrovsky , Dave Hansen , "H. Peter Anvin" , Ingo Molnar , Joao Martins , Jonathan Corbet , "Konrad Rzeszutek Wilk" , Paolo Bonzini , Sean Christopherson , Thomas Gleixner , David Woodhouse , Greg Kroah-Hartman , Juergen Gross , Peter Zijlstra , Tony Luck , Tom Lendacky , Alexey Kardashevskiy , , , Subject: [PATCH v3 4/7] x86/cpu, kvm: Move CPUID 0x80000021 EAX feature bits propagation to kvm_set_cpu_caps Date: Tue, 29 Nov 2022 17:58:13 -0600 Message-ID: <20221129235816.188737-5-kim.phillips@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221129235816.188737-1-kim.phillips@amd.com> References: <20221129235816.188737-1-kim.phillips@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT081:EE_|DM6PR12MB4863:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ff28f6f-31ef-4a1e-5376-08dad265bb20 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3GMPWiphxH/KGTboGptpyayl3I4Q6JK5Ff2UCwNAtG0wosflALfBPzHeSGmGuzzJgmAeQAshiooGaDrHF6c9t60MtAD5KdNHutagZczZf+VDHO9LdAj//rtF6dEvv9JF8gpYfTflxvlAZzOwP+AMcgo2qspOit/X1Wg5G3QabehUOLpCqJVQQJEeOoQHp/DV43tF5f8dzNIpeimaKyQ4obiEw4toVletavVzKBjDvaJQyIbJ2D7vUl2TM/BkOmd0sgFhLxtiSDJOH8ObMBu6mGROBTygb9QcgyY3yFapszURiIXhEhu7GXwbuKW9RRQxGdi7daYBe6uBffOiBxveFmq26j6m/laLKJHQY7AT+8hjrexoF3NtKalY7S5kNzjIZs6sCaCiOgnLJj91OqdJaY2hYi/aGsMN4ZUEANVNz3va3sfe+J5xNoSY/7ouS57xtoOfnlyS8RcqyM7zUE2XSC4X1W0sngqSm33Z94TztHlHLcPujY7GMWdQ5NYPbdjskNHjJ4tuf8koxL8qoGP4bRvQzPJ4Pw9WKd926dT4EeiOfhcCOaQcmmDJaIyBHcr2bZIIyLx0bGvZWCV47Dx7TATHLLB29bdhkCSx8nj06RBLP7hE8TsciDwnaew4haCzMk3a2Y3BhH/jDSbvXkFjgS9H6myE5OcH/OxJyIBwRcxVJ3euT1pG+2jm5JPgSDgIOSIbEg+tfLAc3nehqbjnXlnfK2Fgm5KQwh9oNIYXKNk= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(346002)(136003)(376002)(396003)(39860400002)(451199015)(46966006)(40470700004)(36840700001)(2906002)(44832011)(81166007)(41300700001)(16526019)(4326008)(6916009)(36860700001)(70206006)(54906003)(8676002)(36756003)(186003)(316002)(8936002)(70586007)(5660300002)(26005)(478600001)(86362001)(6666004)(2616005)(82310400005)(7416002)(1076003)(336012)(7696005)(47076005)(40480700001)(356005)(426003)(40460700003)(83380400001)(82740400003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2022 23:59:19.8553 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6ff28f6f-31ef-4a1e-5376-08dad265bb20 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT081.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4863 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,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?1750877007281115360?= X-GMAIL-MSGID: =?utf-8?q?1750877007281115360?= Since they're now all scattered, group CPUID 0x80000021 EAX feature bits propagation to kvm_set_cpu_caps instead of open-coding them in __do_cpuid_func(). Signed-off-by: Kim Phillips --- arch/x86/kvm/cpuid.c | 35 ++++++++++++++++++++--------------- arch/x86/kvm/reverse_cpuid.h | 22 ++++++++++++++++------ 2 files changed, 36 insertions(+), 21 deletions(-) diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index c92c49a0b35b..8e37760cea1b 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -730,6 +730,25 @@ void kvm_set_cpu_caps(void) 0 /* SME */ | F(SEV) | 0 /* VM_PAGE_FLUSH */ | F(SEV_ES) | F(SME_COHERENT)); + /* + * Pass down these bits: + * EAX 0 NNDBP, Processor ignores nested data breakpoints + * EAX 2 LAS, LFENCE always serializing + * EAX 6 NSCB, Null selector clear base + * EAX 8 Automatic IBRS + * + * Other defined bits are for MSRs that KVM does not expose: + * EAX 3 SPCL, SMM page configuration lock + * EAX 13 PCMSR, Prefetch control MSR + */ + kvm_cpu_cap_init_scattered(CPUID_8000_0021_EAX, + SF(NO_NESTED_DATA_BP) | SF(LFENCE_RDTSC) | + SF(NULL_SEL_CLR_BASE)); + if (cpu_feature_enabled(X86_FEATURE_LFENCE_RDTSC)) + kvm_cpu_cap_set(X86_FEATURE_LFENCE_RDTSC); + if (!static_cpu_has_bug(X86_BUG_NULL_SEG)) + kvm_cpu_cap_set(X86_FEATURE_NULL_SEL_CLR_BASE); + kvm_cpu_cap_mask(CPUID_C000_0001_EDX, F(XSTORE) | F(XSTORE_EN) | F(XCRYPT) | F(XCRYPT_EN) | F(ACE2) | F(ACE2_EN) | F(PHE) | F(PHE_EN) | @@ -1211,21 +1230,7 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function) break; case 0x80000021: entry->ebx = entry->ecx = entry->edx = 0; - /* - * Pass down these bits: - * EAX 0 NNDBP, Processor ignores nested data breakpoints - * EAX 2 LAS, LFENCE always serializing - * EAX 6 NSCB, Null selector clear base - * - * Other defined bits are for MSRs that KVM does not expose: - * EAX 3 SPCL, SMM page configuration lock - * EAX 13 PCMSR, Prefetch control MSR - */ - entry->eax &= BIT(0) | BIT(2) | BIT(6); - if (static_cpu_has(X86_FEATURE_LFENCE_RDTSC)) - entry->eax |= BIT(2); - if (!static_cpu_has_bug(X86_BUG_NULL_SEG)) - entry->eax |= BIT(6); + cpuid_entry_override(entry, CPUID_8000_0021_EAX); break; /*Add support for Centaur's CPUID instruction*/ case 0xC0000000: diff --git a/arch/x86/kvm/reverse_cpuid.h b/arch/x86/kvm/reverse_cpuid.h index 4e5b8444f161..184614e27d5b 100644 --- a/arch/x86/kvm/reverse_cpuid.h +++ b/arch/x86/kvm/reverse_cpuid.h @@ -13,6 +13,7 @@ */ enum kvm_only_cpuid_leafs { CPUID_12_EAX = NCAPINTS, + CPUID_8000_0021_EAX, NR_KVM_CPU_CAPS, NKVMCAPINTS = NR_KVM_CPU_CAPS - NCAPINTS, @@ -25,6 +26,11 @@ enum kvm_only_cpuid_leafs { #define KVM_X86_FEATURE_SGX2 KVM_X86_FEATURE(CPUID_12_EAX, 1) #define KVM_X86_FEATURE_SGX_EDECCSSA KVM_X86_FEATURE(CPUID_12_EAX, 11) +/* AMD-defined Extended Feature 2 EAX, CPUID level 0x80000021 (EAX) */ +#define KVM_X86_FEATURE_NO_NESTED_DATA_BP KVM_X86_FEATURE(CPUID_8000_0021_EAX, 0) +#define KVM_X86_FEATURE_LFENCE_RDTSC KVM_X86_FEATURE(CPUID_8000_0021_EAX, 2) +#define KVM_X86_FEATURE_NULL_SEL_CLR_BASE KVM_X86_FEATURE(CPUID_8000_0021_EAX, 6) + struct cpuid_reg { u32 function; u32 index; @@ -49,6 +55,7 @@ static const struct cpuid_reg reverse_cpuid[] = { [CPUID_7_1_EAX] = { 7, 1, CPUID_EAX}, [CPUID_12_EAX] = {0x00000012, 0, CPUID_EAX}, [CPUID_8000_001F_EAX] = {0x8000001f, 0, CPUID_EAX}, + [CPUID_8000_0021_EAX] = {0x80000021, 0, CPUID_EAX}, }; /* @@ -75,12 +82,15 @@ static __always_inline void reverse_cpuid_check(unsigned int x86_leaf) */ static __always_inline u32 __feature_translate(int x86_feature) { - if (x86_feature == X86_FEATURE_SGX1) - return KVM_X86_FEATURE_SGX1; - else if (x86_feature == X86_FEATURE_SGX2) - return KVM_X86_FEATURE_SGX2; - else if (x86_feature == X86_FEATURE_SGX_EDECCSSA) - return KVM_X86_FEATURE_SGX_EDECCSSA; + switch (x86_feature) { + case X86_FEATURE_SGX1: return KVM_X86_FEATURE_SGX1; + case X86_FEATURE_SGX2: return KVM_X86_FEATURE_SGX2; + case X86_FEATURE_SGX_EDECCSSA: return KVM_X86_FEATURE_SGX_EDECCSSA; + case X86_FEATURE_NO_NESTED_DATA_BP: return KVM_X86_FEATURE_NO_NESTED_DATA_BP; + case X86_FEATURE_LFENCE_RDTSC: return KVM_X86_FEATURE_LFENCE_RDTSC; + case X86_FEATURE_NULL_SEL_CLR_BASE: return KVM_X86_FEATURE_NULL_SEL_CLR_BASE; + default: break; + } return x86_feature; } From patchwork Tue Nov 29 23:58:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kim Phillips X-Patchwork-Id: 27551 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp633165wrr; Tue, 29 Nov 2022 16:00:53 -0800 (PST) X-Google-Smtp-Source: AA0mqf6HLTCAqPutWdeC950A6mhXrIq6PF6/szg/oC8l4BFX4fi2pjkMQhTkBk1pcVrVdA6VJCud X-Received: by 2002:a62:be16:0:b0:56b:676e:1815 with SMTP id l22-20020a62be16000000b0056b676e1815mr40712717pff.66.1669766452850; Tue, 29 Nov 2022 16:00:52 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669766452; cv=pass; d=google.com; s=arc-20160816; b=uW5EuqexlxJFioLxx9mdTarp07jHM9WXrujeCSCURX4q9m79V4RwQs6L9GZiwyEDbM h9UJUN37Je1Ti4AFM/JAVD5GQrRrcAQ404CwlrRlieSI7kK7cNFDEIyERtAwiPQL/W14 m2t3stDqwV4IOX+NS465sfgFn00cv4+JWMz+i/n81KEtRaTzExGyLoqst39eMceOq8xJ W6y1u8FMA1qGRH/AmseZvsorOkS+MimU/wNTX37Hf0PKmZrlNf7435Cq+0bYUejjkZ8+ uAZ/y7wAkSFE2uGZKHxBXeyzomGvj8V4uH/MR3kK5nv13dqopoO2gdu6UmJZu6hOb9X+ CvHQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=dAjHQUC+VMJtJYDXkaqs+IqGm6fkN6nhaAnYJNmf1as=; b=l0t2i0QV1i/vSV3WipjL9PZozbJUAFnMApqyhoAIMVKSs5ae2iE682VeXzPusIor4r WJ9FOPaYiLq6SZQ76SIkgAeUavCyGEqxZAQLhsvocBSlriqDT2twEJjq4ulBupdL5aMk dOtk8urqy5bVUL7Rn4Jfwi7vfn5lhBCtlCiBF6jhseHjYMpxjygwqJq8bs5omdALrva5 Jn6qm9/Zgcjyqtfyisy/3JK09iyCmoRr8RTk34ZYxVyvBFlZIRkbTXjrR/y0k2PO0bmf f57YXl0KjIKsm+RAHaybW9DFjRJ5mSsSBXS5tFqBqnK0pGflYHLA/TZshAHtSHDgvJ0I IjSQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=wJSILQY9; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c23-20020a17090a8d1700b001fe1c9436b1si31628pjo.86.2022.11.29.16.00.36; Tue, 29 Nov 2022 16:00:52 -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=@amd.com header.s=selector1 header.b=wJSILQY9; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231716AbiK3AAI (ORCPT + 99 others); Tue, 29 Nov 2022 19:00:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231262AbiK2X7k (ORCPT ); Tue, 29 Nov 2022 18:59:40 -0500 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2070.outbound.protection.outlook.com [40.107.237.70]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A4C0A71F03; Tue, 29 Nov 2022 15:59:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nFLwGwcevBwg0UDvFijQjrCKaryn0Wu4sI13A4rb/liwVY7QEiDOq2RppN/UeR6swfQR+ofpyFnTZvP5mMejoav740yUVbBzKjerMkFpeYOB5voZnniWZPgiABSUTfJIgQ+413X+UPbm7WGHfZnJYGZqcSYr/3eAXqp7x/975pGkMk7BolqSTzGT6OTS/pmzyFnZxpGgyTLCs0XUW+/5JazGLt1mU9LR6uWg/ouy2JQW11Cbq6rpZkSgYwItedw24w+TRhuTmvm66wahEWxYuphJhMzvnyACIhTAmbGHN+ngCxxTzH1NvQ+TnQ0Nf/ekbD1YY4u/kZnrX/Wbmd9uzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dAjHQUC+VMJtJYDXkaqs+IqGm6fkN6nhaAnYJNmf1as=; b=Au1IF2g2Hxy5uMzAe1rUdQLSSc2VTNsEwJs/elXaVGOIIDxPtXR2XzJPEOmTv6BIsTVs8U0kMfB/oPj8rj7Dd8VmCc6L6eMA6jE4RV8PKalXXP2aorEHatNLt+ZJHk3alYv4a/spJseCRmKDBoIfidouxcl68qXE1mwZ4+6ddrIHGQtYcoYViV98sBpeL4O+QNJ1Y1jylk3BZC3lqq2SgjvYehpCNyjo0yLG+Fc9fg3W9JfPrF5cJPBndgGYTkwmzy1tWVRYAdsmy7jPrwztua90s3xQIOP5Q+Xs5oX3WBQPoUYBtahqFVLHErkxEUcvEXBlbmXcSh/foy0AVP3u/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dAjHQUC+VMJtJYDXkaqs+IqGm6fkN6nhaAnYJNmf1as=; b=wJSILQY9nWoyBCGfPeLk8HRwVfSUJMZKob2gjcP56CX0TxJqklku4zdgqvXr25tsEHmRd5aJeG6jeXmgHJqE3kUpNwOuo5K9NEOhG453ANyoGaOztp5IyHm+3y1rp5O2X5xUpk2MGly9jku7ATJQN39UE9rzHk2mROW6yTD1C/0= Received: from DM6PR01CA0013.prod.exchangelabs.com (2603:10b6:5:296::18) by BL3PR12MB6378.namprd12.prod.outlook.com (2603:10b6:208:3b1::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 23:59:32 +0000 Received: from DM6NAM11FT099.eop-nam11.prod.protection.outlook.com (2603:10b6:5:296:cafe::19) by DM6PR01CA0013.outlook.office365.com (2603:10b6:5:296::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.19 via Frontend Transport; Tue, 29 Nov 2022 23:59:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT099.mail.protection.outlook.com (10.13.172.241) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5857.17 via Frontend Transport; Tue, 29 Nov 2022 23:59:31 +0000 Received: from fritz.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 29 Nov 2022 17:59:30 -0600 From: Kim Phillips To: CC: Kim Phillips , Babu Moger , Borislav Petkov , Borislav Petkov , Boris Ostrovsky , Dave Hansen , "H. Peter Anvin" , Ingo Molnar , Joao Martins , Jonathan Corbet , "Konrad Rzeszutek Wilk" , Paolo Bonzini , Sean Christopherson , Thomas Gleixner , David Woodhouse , Greg Kroah-Hartman , Juergen Gross , Peter Zijlstra , Tony Luck , Tom Lendacky , Alexey Kardashevskiy , , , Subject: [PATCH v3 5/7] x86/cpu, kvm: Define a scattered AMD Automatic IBRS feature bit Date: Tue, 29 Nov 2022 17:58:14 -0600 Message-ID: <20221129235816.188737-6-kim.phillips@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221129235816.188737-1-kim.phillips@amd.com> References: <20221129235816.188737-1-kim.phillips@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT099:EE_|BL3PR12MB6378:EE_ X-MS-Office365-Filtering-Correlation-Id: d82324d0-d1a7-4d73-dedb-08dad265c224 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hEcpmisT44hghpM4hsEuuu+TQAGMTvuqXhCTnfES7ZFfc0UD4jftyeb0fU9kcMD94ok7exH72V9DaVnZbNA5i8ggDWamtp6dAbnfC1Ah85uEnLXw/5SH7Dg3FMDsE5VAZmgfYYmGFtE4Mxq0DbEnZ5b/S64BouqG1dWDT/hRHcPQNhx2v91ws8oAzUsaT6Cg7piL4l1DUGak5nFOWS2KM+3tHdgqM0+p8+wvw3m4zd8yG3ACzL1IeKd6OR8NAPU4OKch5bd5jRBClUW3E95FVjpJ5SDdvs9ejJN6C8AkA8sw+LXbeXRJmn1E0cowoVbivnrHVPtPCqW85HZXRoTbrg+Y/siXvQOFO45ytgSA0ZvEF2hOkDqC185S06q/JSxY4S7NELWoz8kruMp+C70PDQScbgDWC/BPNrG84gmuy+Vnjj9s/cQjN7t2Jqi+PAOMKKGqG8zUaawX8uBbZbGFXzzGUbJua5e1tsoGb+pJj9/ccXVvNeL7l+yD7DXCXq0UYOUTedFefBTbpNYdIvJj7/YRYQKSJV9J+6R2HU3+u3QE7KRPOPaGs9HJ8VuBBQi5WnmwhkdakiyxGwoZsn4GlOgUpFIreFtNvXl0DYLvYuIitf7lsQhhHnkuvBxbzIsXvaRfS+cj7+3kpajEJmbVuL6z3/oxS+PqVYDUNxqtKdnc8aBOZXeJHLs1+8IVQjHTArZ/ZgY8FIaU6MXyGOSBueq1FwKgHugD0SqQ9OWHpV8= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(346002)(136003)(396003)(39860400002)(376002)(451199015)(36840700001)(40470700004)(46966006)(41300700001)(478600001)(36756003)(7696005)(36860700001)(336012)(316002)(54906003)(6666004)(356005)(4326008)(8676002)(82740400003)(70206006)(26005)(70586007)(82310400005)(8936002)(2906002)(186003)(44832011)(1076003)(2616005)(5660300002)(7416002)(16526019)(86362001)(40460700003)(40480700001)(81166007)(6916009)(47076005)(426003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2022 23:59:31.6291 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d82324d0-d1a7-4d73-dedb-08dad265c224 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT099.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6378 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,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?1750877028153354005?= X-GMAIL-MSGID: =?utf-8?q?1750877028153354005?= It's a part of the CPUID 0x80000021 leaf, and this allows us to group this and other CPUID 0x80000021 EAX feature bits to being propagated via kvm_set_cpu_caps instead of open-coding them in __do_cpuid_func(). Signed-off-by: Kim Phillips --- arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/kernel/cpu/scattered.c | 1 + 2 files changed, 2 insertions(+) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h index 5ddde18c1ae8..961eb49532b7 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -309,6 +309,7 @@ #define X86_FEATURE_MSR_TSX_CTRL (11*32+20) /* "" MSR IA32_TSX_CTRL (Intel) implemented */ #define X86_FEATURE_NO_NESTED_DATA_BP (11*32+21) /* "" AMD No Nested Data Breakpoints */ #define X86_FEATURE_NULL_SEL_CLR_BASE (11*32+22) /* "" AMD Null Selector Clears Base */ +#define X86_FEATURE_AUTOIBRS (11*32+23) /* AMD Automatic IBRS */ /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX_VNNI (12*32+ 4) /* AVX VNNI instructions */ diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c index caa03466cd9e..7ae7203cd410 100644 --- a/arch/x86/kernel/cpu/scattered.c +++ b/arch/x86/kernel/cpu/scattered.c @@ -48,6 +48,7 @@ static const struct cpuid_bit cpuid_bits[] = { { X86_FEATURE_NO_NESTED_DATA_BP,CPUID_EAX, 0, 0x80000021, 0 }, { X86_FEATURE_LFENCE_RDTSC, CPUID_EAX, 2, 0x80000021, 0 }, { X86_FEATURE_NULL_SEL_CLR_BASE,CPUID_EAX, 6, 0x80000021, 0 }, + { X86_FEATURE_AUTOIBRS, CPUID_EAX, 8, 0x80000021, 0 }, { X86_FEATURE_PERFMON_V2, CPUID_EAX, 0, 0x80000022, 0 }, { X86_FEATURE_AMD_LBR_V2, CPUID_EAX, 1, 0x80000022, 0 }, { 0, 0, 0, 0, 0 } From patchwork Tue Nov 29 23:58:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kim Phillips X-Patchwork-Id: 27552 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp633312wrr; Tue, 29 Nov 2022 16:01:07 -0800 (PST) X-Google-Smtp-Source: AA0mqf7fbf/KcAQfdBl/A0/RjZjq6XGcw/l3HtYal73oClicb7UDzwexkB/dBseZdGIsK3DZhGm1 X-Received: by 2002:a05:6a00:1696:b0:571:2b7c:6693 with SMTP id k22-20020a056a00169600b005712b7c6693mr41616893pfc.48.1669766466872; Tue, 29 Nov 2022 16:01:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669766466; cv=pass; d=google.com; s=arc-20160816; b=HSw1LD7SXBwmfsARPxaMIzb8++SvPYVs6mK9DspthgO3iVIVbWPidghGpw8yDhP1AE GMDgnIxQPqXzzPzFGgayhq0UBYPAEMA23oC5Zs8LmCfxHwoiOGjsIs62dHtTUG+8Ldpj kLntJNw0DRr8eR+aX+EgW+RRo1UwrsyvU3Ajx3V1oHl9l+LOUICcaCBbbyINLJzA48wa P7doeQFphgAuW9NF9ZvLKaVMGHzEHJVUTTcCYiMCeurSXE7fNnmGENhXaD2uvVkD7Pcy NaRtW3RURJI4K0pe0zr/Nywzkg0yNzra7qUjOqhycrRPL4MhDicI5HIHI0rI3I97rNAZ eXWA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=nN5weJ79cyT58jZYmjSBjPJ+VRu7fp+JJWujD6UWFFQ=; b=ssX3umFkzct0rVxEhk/qO3PWyz6aDKBjlOD5arObNMRvb2GWb8BVuStYRjokWccCGY c+eGhf+7HPFcXqVfCz3iAbZqOdNvwue4UPWtmqBD74LQ6FU2gORefY9gRfLxbJwiITEa sq5E3oqimq9ElOKmlPd2fQYtgVx3R/D9hIEjPTkkAO+sX0LXTSEMMBi0fLStV5OrMOXP A5NVMTYw7+4W+lsLoIvFnhEuQOtk5jxFRsnAXOqTwOp117xJOSqzUO6UDYoZhsPjsa1G igKBzk8iusPthsq3cxqnkaDpxuNryGFUpx/Hp8A5EAQyff9CEijEw4x3XM9p012kRrXb 4ucA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=vF6ShrX2; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h62-20020a636c41000000b0046f71a7292dsi16238498pgc.384.2022.11.29.16.00.53; Tue, 29 Nov 2022 16:01:06 -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=@amd.com header.s=selector1 header.b=vF6ShrX2; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231962AbiK3AAe (ORCPT + 99 others); Tue, 29 Nov 2022 19:00:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231705AbiK3AAI (ORCPT ); Tue, 29 Nov 2022 19:00:08 -0500 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2063.outbound.protection.outlook.com [40.107.100.63]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40F6373413; Tue, 29 Nov 2022 15:59:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q7DsS5qSN3d1hx7VWrkP3W79aMpbP1XzJ6DxGhr4FXVLDlsEiLFK0HlmDdTc6YmMYskgVkCzULpAR3eeXtRkDMlQOrHpqwiqOPNA68cpZf9eSdv4d+Gv0HAKJZOkES/5EZhlCwrheytA7E5PhAUnW/FNNa4vGvUTuG/O9J6Vfqyq9GvqJB30KvFHXorPEj09GmSpqL712mBWazghIJtCw/DV6wkeeCOFCqbDvFiB5daz5BoGA+zMzZgagSDVYd6ePB/CBFwjJwBG97pBGwFNQ7rClJ+PrqzWuHjEX/K5taj3bRdyCYBA5lXgLLk8UVibRtrWinv+NtY8ODLCtVoMQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nN5weJ79cyT58jZYmjSBjPJ+VRu7fp+JJWujD6UWFFQ=; b=AfvvcyceDwFC8FToHotKS4p4SbP1DvMLz/oLouK7wawW1KUgGyXZT5uxD7BHc44XzJFH5Yv0q/t9hohWvmFQgf1lMLEsZFvig1WCS5kkWIfpKerkupjA1Pzs0doSfj9X7PiDyH9cPrMi6QZ9/lUgPCYRlYzIEwm5oQpUR4BK8eVwjk62AbLWcAf+lweN6+4rlquQfNYjLfVJoPsip0KswJ+cW0G0ajn9uV6AR5Uv+USlocDHZxsJlnoZk6uWirj4IphoQTfC0vpR/64L7f5bkjtR1ZuCZpdoevPOGpdmOk+EZv2h7hYpu1ZBT18SkgFLPlUKeFoRBsSfi+eO+vYIVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nN5weJ79cyT58jZYmjSBjPJ+VRu7fp+JJWujD6UWFFQ=; b=vF6ShrX27Y6nWsVyVWqIFLPSUqyUGNFEVJy2ro1bn3ZEJSkHs5dJvLNltsk/XarG8bMqOK49DtivRneBXjoQrWcupmvR89xir+FX5hfuyqZm+wNny1EsQv2U+fCgeuinf7dZ3Wr1SNKzThFh/XONUPg1P7BlhFJ3ppHvTOUelfw= Received: from DM6PR07CA0106.namprd07.prod.outlook.com (2603:10b6:5:330::15) by SN7PR12MB6930.namprd12.prod.outlook.com (2603:10b6:806:262::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 23:59:46 +0000 Received: from DM6NAM11FT051.eop-nam11.prod.protection.outlook.com (2603:10b6:5:330:cafe::49) by DM6PR07CA0106.outlook.office365.com (2603:10b6:5:330::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23 via Frontend Transport; Tue, 29 Nov 2022 23:59:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT051.mail.protection.outlook.com (10.13.172.243) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5834.8 via Frontend Transport; Tue, 29 Nov 2022 23:59:46 +0000 Received: from fritz.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 29 Nov 2022 17:59:41 -0600 From: Kim Phillips To: CC: Kim Phillips , Babu Moger , Borislav Petkov , Borislav Petkov , Boris Ostrovsky , Dave Hansen , "H. Peter Anvin" , Ingo Molnar , Joao Martins , Jonathan Corbet , "Konrad Rzeszutek Wilk" , Paolo Bonzini , Sean Christopherson , Thomas Gleixner , David Woodhouse , Greg Kroah-Hartman , Juergen Gross , Peter Zijlstra , Tony Luck , Tom Lendacky , Alexey Kardashevskiy , , , Subject: [PATCH v3 6/7] x86/cpu, kvm: Support AMD Automatic IBRS Date: Tue, 29 Nov 2022 17:58:15 -0600 Message-ID: <20221129235816.188737-7-kim.phillips@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221129235816.188737-1-kim.phillips@amd.com> References: <20221129235816.188737-1-kim.phillips@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT051:EE_|SN7PR12MB6930:EE_ X-MS-Office365-Filtering-Correlation-Id: 2d963652-cde2-46b4-0317-08dad265caeb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8yC6g6io7xoQoRBRhSwL4t8f624l16En3d9GG1rSd2z4dqll9It4/0BxIBQePzjADQEbxRJPol2ho1x0sfGH3TBgs0H/BFstW8bM6+gcE8K37cI2KgUorckEY/ObKvPZVQ6hTDiKjhG1dsHZOtSPrcHWSGs09R/BAyPp1XKNUChO+w7WjW+MtlkI6HwUN1czUFt0lYkOTIN04jsR4qniYc2vZ0kkYQnkMc6H8CHvl4Uk3njxe6aweRWf8wnXtSeiwYtvyUyEOHU2UVlOwh8LAe8qROgt3+9WOBL1kijz3tTHxbHYoekBWKqvYJAsULamYPoEzmhEsycmRHKL9fDp9AfI/mI7W+DDKZK2Gpl5MZOXCsdwn4mmbTZBOG4/UZGCbGcShR33J5Ze3H7NKv757Cn4Y1dEXK7xMom1IhKd9JP18jlQsrP5xfRVyKDOu3welc8D9AVfwaJ2slg17jymerf6mK5IV4y+eVoINbHBN38Rcqa8kQDX1Fu+7BwrCQN5bZvA6eKSih/LGyHGGFipaW1yQAhC+Zc4MZujwbKneIuxdqM+De+tYEsseVT0FhWtR2gXUComkneYZaho8gSkj4a/Ip663bhhMh3Vb6o0q0S3oGiUnZos5Vo4mP5BzwYRrljvpXOI5CuxbNm23CbA+sJ7aEhhbN9IypfUbngzQZUv/qP5HG/XHkc3RRyWC/qw8ZD5bth5ZBpee01pXDr7w9Sc6czuZjejqxAfV1LozJc= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(396003)(376002)(346002)(136003)(39860400002)(451199015)(36840700001)(40470700004)(46966006)(16526019)(1076003)(2616005)(36860700001)(2906002)(83380400001)(7696005)(6666004)(70206006)(356005)(8676002)(41300700001)(478600001)(70586007)(40460700003)(82310400005)(36756003)(82740400003)(26005)(81166007)(40480700001)(186003)(336012)(426003)(5660300002)(8936002)(47076005)(4326008)(86362001)(6916009)(54906003)(7416002)(44832011)(316002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2022 23:59:46.3494 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2d963652-cde2-46b4-0317-08dad265caeb X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT051.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6930 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,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?1750876923364351138?= X-GMAIL-MSGID: =?utf-8?q?1750877042837274315?= The AMD Zen4 core supports a new feature called Automatic IBRS. It is a "set-and-forget" feature that means that, like Intel's Enhanced IBRS, h/w manages its IBRS mitigation resources automatically across CPL transitions. The feature is advertised by CPUID_Fn80000021_EAX bit 8 and is enabled by setting MSR C000_0080 (EFER) bit 21. Enable Automatic IBRS by default if the CPU feature is present. It typically provides greater performance over the incumbent generic retpolines mitigation. Reuse the SPECTRE_V2_EIBRS spectre_v2_mitigation enum. AMD Automatic IBRS and Intel Enhanced IBRS have similar bugs.c enablement. Also allow for spectre_v2=autoibrs on the kernel command line. 'spectre_v2=autoibrs,retpoline' and 'autoibrs,lfence' are honoured but not required. AutoIBRS will also be enabled if the =eibrs[,{lfence,retpoline}] variants are specified. Signed-off-by: Kim Phillips --- .../admin-guide/kernel-parameters.txt | 9 +++++--- arch/x86/include/asm/msr-index.h | 2 ++ arch/x86/kernel/cpu/bugs.c | 23 ++++++++++++------- arch/x86/kernel/cpu/common.c | 8 +++++++ arch/x86/kvm/svm/svm.c | 3 +++ arch/x86/kvm/x86.c | 3 +++ 6 files changed, 37 insertions(+), 11 deletions(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index a465d5242774..880016d06a8a 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -5698,9 +5698,12 @@ retpoline,generic - Retpolines retpoline,lfence - LFENCE; indirect branch retpoline,amd - alias for retpoline,lfence - eibrs - enhanced IBRS - eibrs,retpoline - enhanced IBRS + Retpolines - eibrs,lfence - enhanced IBRS + LFENCE + eibrs - Enhanced/Auto IBRS + autoibrs - Enhanced/Auto IBRS + eibrs,retpoline - Enhanced/Auto IBRS + Retpolines + autoibrs,retpoline- Enhanced/Auto IBRS + Retpolines + eibrs,lfence - Enhanced/Auto IBRS + LFENCE + autoibrs,lfence - Enhanced/Auto IBRS + LFENCE ibrs - use IBRS to protect kernel Not specifying this option is equivalent to diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h index 8519191c6409..88fdd75f6a2f 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -30,6 +30,7 @@ #define _EFER_SVME 12 /* Enable virtualization */ #define _EFER_LMSLE 13 /* Long Mode Segment Limit Enable */ #define _EFER_FFXSR 14 /* Enable Fast FXSAVE/FXRSTOR */ +#define _EFER_AUTOIBRS 21 /* Enable Automatic IBRS */ #define EFER_SCE (1<<_EFER_SCE) #define EFER_LME (1<<_EFER_LME) @@ -38,6 +39,7 @@ #define EFER_SVME (1<<_EFER_SVME) #define EFER_LMSLE (1<<_EFER_LMSLE) #define EFER_FFXSR (1<<_EFER_FFXSR) +#define EFER_AUTOIBRS (1<<_EFER_AUTOIBRS) /* Intel MSRs. Some also available on other CPUs */ diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index aa0819252c88..5f48dd4dbc48 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1222,9 +1222,9 @@ static const char * const spectre_v2_strings[] = { [SPECTRE_V2_NONE] = "Vulnerable", [SPECTRE_V2_RETPOLINE] = "Mitigation: Retpolines", [SPECTRE_V2_LFENCE] = "Mitigation: LFENCE", - [SPECTRE_V2_EIBRS] = "Mitigation: Enhanced IBRS", - [SPECTRE_V2_EIBRS_LFENCE] = "Mitigation: Enhanced IBRS + LFENCE", - [SPECTRE_V2_EIBRS_RETPOLINE] = "Mitigation: Enhanced IBRS + Retpolines", + [SPECTRE_V2_EIBRS] = "Mitigation: Enhanced / Automatic IBRS", + [SPECTRE_V2_EIBRS_LFENCE] = "Mitigation: Enhanced / Automatic IBRS + LFENCE", + [SPECTRE_V2_EIBRS_RETPOLINE] = "Mitigation: Enhanced / Automatic IBRS + Retpolines", [SPECTRE_V2_IBRS] = "Mitigation: IBRS", }; @@ -1240,8 +1240,11 @@ static const struct { { "retpoline,lfence", SPECTRE_V2_CMD_RETPOLINE_LFENCE, false }, { "retpoline,generic", SPECTRE_V2_CMD_RETPOLINE_GENERIC, false }, { "eibrs", SPECTRE_V2_CMD_EIBRS, false }, + { "autoibrs", SPECTRE_V2_CMD_EIBRS, false }, { "eibrs,lfence", SPECTRE_V2_CMD_EIBRS_LFENCE, false }, + { "autoibrs,lfence", SPECTRE_V2_CMD_EIBRS_LFENCE, false }, { "eibrs,retpoline", SPECTRE_V2_CMD_EIBRS_RETPOLINE, false }, + { "autoibrs,retpoline", SPECTRE_V2_CMD_EIBRS_RETPOLINE, false }, { "auto", SPECTRE_V2_CMD_AUTO, false }, { "ibrs", SPECTRE_V2_CMD_IBRS, false }, }; @@ -1293,7 +1296,7 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void) cmd == SPECTRE_V2_CMD_EIBRS_LFENCE || cmd == SPECTRE_V2_CMD_EIBRS_RETPOLINE) && !boot_cpu_has(X86_FEATURE_IBRS_ENHANCED)) { - pr_err("%s selected but CPU doesn't have eIBRS. Switching to AUTO select\n", + pr_err("%s selected but CPU doesn't have Enhanced or Automatic IBRS. Switching to AUTO select\n", mitigation_options[i].option); return SPECTRE_V2_CMD_AUTO; } @@ -1479,8 +1482,12 @@ static void __init spectre_v2_select_mitigation(void) pr_err(SPECTRE_V2_EIBRS_EBPF_MSG); if (spectre_v2_in_ibrs_mode(mode)) { - x86_spec_ctrl_base |= SPEC_CTRL_IBRS; - write_spec_ctrl_current(x86_spec_ctrl_base, true); + if (boot_cpu_has(X86_FEATURE_AUTOIBRS)) { + msr_set_bit(MSR_EFER, _EFER_AUTOIBRS); + } else { + x86_spec_ctrl_base |= SPEC_CTRL_IBRS; + write_spec_ctrl_current(x86_spec_ctrl_base, true); + } } switch (mode) { @@ -1564,8 +1571,8 @@ static void __init spectre_v2_select_mitigation(void) /* * Retpoline protects the kernel, but doesn't protect firmware. IBRS * and Enhanced IBRS protect firmware too, so enable IBRS around - * firmware calls only when IBRS / Enhanced IBRS aren't otherwise - * enabled. + * firmware calls only when IBRS / Enhanced / Automatic IBRS aren't + * otherwise enabled. * * Use "mode" to check Enhanced IBRS instead of boot_cpu_has(), because * the user might select retpoline on the kernel command line and if diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index 8d28cd7c9072..0af7b963f2e4 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -1406,6 +1406,14 @@ static void __init cpu_set_bug_bits(struct cpuinfo_x86 *c) !(ia32_cap & ARCH_CAP_PBRSB_NO)) setup_force_cpu_bug(X86_BUG_EIBRS_PBRSB); + /* + * AMD's AutoIBRS is equivalent to Intel's eIBRS - use the Intel flag only + * after IBRS_ENHANCED bugs such as BUG_EIBRS_PBRSB above have been + * determined. + */ + if (cpu_has(c, X86_FEATURE_AUTOIBRS)) + setup_force_cpu_cap(X86_FEATURE_IBRS_ENHANCED); + if (cpu_matches(cpu_vuln_whitelist, NO_MELTDOWN)) return; diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 4b6d2b050e57..3ac3d4cfce24 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -4960,6 +4960,9 @@ static __init int svm_hardware_setup(void) tsc_aux_uret_slot = kvm_add_user_return_msr(MSR_TSC_AUX); + if (boot_cpu_has(X86_FEATURE_AUTOIBRS)) + kvm_enable_efer_bits(EFER_AUTOIBRS); + /* Check for pause filtering support */ if (!boot_cpu_has(X86_FEATURE_PAUSEFILTER)) { pause_filter_count = 0; diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 490ec23c8450..db0f522fd597 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -1682,6 +1682,9 @@ static int do_get_msr_feature(struct kvm_vcpu *vcpu, unsigned index, u64 *data) static bool __kvm_valid_efer(struct kvm_vcpu *vcpu, u64 efer) { + if (efer & EFER_AUTOIBRS && !guest_cpuid_has(vcpu, X86_FEATURE_AUTOIBRS)) + return false; + if (efer & EFER_FFXSR && !guest_cpuid_has(vcpu, X86_FEATURE_FXSR_OPT)) return false; From patchwork Tue Nov 29 23:58:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kim Phillips X-Patchwork-Id: 27553 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp637745wrr; Tue, 29 Nov 2022 16:09:09 -0800 (PST) X-Google-Smtp-Source: AA0mqf4tH2DAcPathR8pi5ErZfylfY4L2P/kBJLbfCAbg5uglhfphNABee4Hh5I4NSkiipwQo/C+ X-Received: by 2002:a05:6402:5d5:b0:464:fa1:9ece with SMTP id n21-20020a05640205d500b004640fa19ecemr29454340edx.262.1669766949115; Tue, 29 Nov 2022 16:09:09 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669766949; cv=pass; d=google.com; s=arc-20160816; b=ZkNBvAcPNaZzzynjEUjdWJQFn19oRd5VK4koH+eGZTbYxVgirf9/pd0elzUQip9ti3 yHMamOptDKC83/4pIhMf5GfEFgoGV8uS+rPbmzjKj726Ond2suo1t1L8e2lhInt+b2q9 QubHrBuwQWU2vo72lWAigv0x5w3d0vKB0UD3uPUT9YJruiAkIOKNUjgpBKtlfJ4Z5ffp WAWjh0aCiKy5i5P4c4hc7ixdocsErP5BsW0H5r1CYc/AL/D05opW4zDYL7hOL0ovW+i+ AxLHfYm5nh9y8Lnceiu1sK6i20/Ea2NZavwvtTf5Sx5Nwfi6yia7792fcO3sAa+uTdPU e2jg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=2Y3K0hU9pYTi+63DTkfvm/QK3ks7jn2pT5fO03+8bYE=; b=bR77CIeS3nF64ZCp3+CZ/Xu3P+sggtHfWYFH56e7vdbllb6x29BFxyvw8xZXeA4APT v3jf46WIiddaudQcCt88vKOjjVg637QNit4+aP0FYOFDhyq/ohfP1i8FHWuzh50RCuHx PmL745BdevbgLrUSL7NtPeDePSvZ2fQCAzrja/odM6znNerASsPYMvpOp4PauBRfwXhP DU1u6rAg8wp8tSBmgPONiATVUXrYen43RJ89LX6kW4naAykAoJHmJThvZIDYcfMAb7EX ZtaSveRYkGEcXxMGSXbemQhTROjfKF8GrjJoqVurNDPRkI/UgU/VZm2XmPA9At7Qx+Cz REuA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=Dkjok1fI; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dn21-20020a17090794d500b007bfdadb58d8si6153214ejc.544.2022.11.29.16.08.43; Tue, 29 Nov 2022 16:09:09 -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=@amd.com header.s=selector1 header.b=Dkjok1fI; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231981AbiK3AAt (ORCPT + 99 others); Tue, 29 Nov 2022 19:00:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48800 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231753AbiK3AAT (ORCPT ); Tue, 29 Nov 2022 19:00:19 -0500 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2084.outbound.protection.outlook.com [40.107.223.84]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A8966DFCE; Tue, 29 Nov 2022 15:59:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nljLp/VwNAOpHCmkzKvz+iCkvpl2kM82CiiCj60TYYeubh1wtwTWwdCHREdpESIAfZ9tT0weYXnkuNHp1OWyLiWj61VyOSuHKDmuBaY38qDDCDPGjy9d57AYwrvNtr+2JouSGFVvGby2ukwUIzN95z6n1e5IDXpGiP8SRfG7LjCoq3Z13Zec9kiXGTS1zMGtqbaJVC2rxglPD6RebB/sq2FWGC/Y04UZ8oPeBql1tZtlNrUNBS2ARj//hf5E8Bvw9d1MAjmm2L9b+OW9PPi57VYf8xALBNjRSClG/f/5c347TJ82arAYs15UVQzKoYIRlMAs2wlvmo1WKW7py0KcBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2Y3K0hU9pYTi+63DTkfvm/QK3ks7jn2pT5fO03+8bYE=; b=Hk88bnsz+iPOctS57THaZ9t6I/mPfsNO/N6bFEl/L+hG2oRR8PlNFCASmU59mEYATZpZPg79pihYBwd1xO9nS4qcolj//cRnSNv+6Cac+1xTg6eUszvpqKdvAJBKXDlyMJuHVdxiDy77CDzvS49Dq/sf1uiVH3VRFUheFWDB58qwLtR8sUmvhcwtU889lGL79fztsY1K6gZlyyNHd4udT20Bvqw4P22ERZUXxeCJmNePaT4ZOV2cwOXg7vs4hoPUpJtFPn1MUotVCd0WVaZmtkeMUd8iYuiKpV/5PCCKQYt/raoa9C07MXAm8G1iT8r4E/BtX/0r7Q9GJZkPzvTZ6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2Y3K0hU9pYTi+63DTkfvm/QK3ks7jn2pT5fO03+8bYE=; b=Dkjok1fIJIOnJ0C+bxoARczBIhZ5PIhpOBb4EaEdXMuMzs+Tcve4IOlEjEIgNI3/dpSQmV3FG5hjFt+fFRwYybSo9q4o/XpjnAJpwV422VbV6FzpyWSIuiggIHG06qGa4HFc0eHdY9Zbz83TsAy5zQoE7n/vdoKJbcjoFGu+YTY= Received: from DM6PR12CA0023.namprd12.prod.outlook.com (2603:10b6:5:1c0::36) by DM6PR12MB4339.namprd12.prod.outlook.com (2603:10b6:5:2af::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 23:59:55 +0000 Received: from DM6NAM11FT101.eop-nam11.prod.protection.outlook.com (2603:10b6:5:1c0:cafe::b7) by DM6PR12CA0023.outlook.office365.com (2603:10b6:5:1c0::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23 via Frontend Transport; Tue, 29 Nov 2022 23:59:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT101.mail.protection.outlook.com (10.13.172.208) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5834.8 via Frontend Transport; Tue, 29 Nov 2022 23:59:55 +0000 Received: from fritz.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 29 Nov 2022 17:59:53 -0600 From: Kim Phillips To: CC: Kim Phillips , Babu Moger , Borislav Petkov , Borislav Petkov , Boris Ostrovsky , Dave Hansen , "H. Peter Anvin" , Ingo Molnar , Joao Martins , Jonathan Corbet , "Konrad Rzeszutek Wilk" , Paolo Bonzini , Sean Christopherson , Thomas Gleixner , David Woodhouse , Greg Kroah-Hartman , Juergen Gross , Peter Zijlstra , Tony Luck , Tom Lendacky , Alexey Kardashevskiy , , , Subject: [PATCH v3 7/7] x86/cpu, kvm: Propagate the AMD Automatic IBRS feature to the guest Date: Tue, 29 Nov 2022 17:58:16 -0600 Message-ID: <20221129235816.188737-8-kim.phillips@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221129235816.188737-1-kim.phillips@amd.com> References: <20221129235816.188737-1-kim.phillips@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT101:EE_|DM6PR12MB4339:EE_ X-MS-Office365-Filtering-Correlation-Id: e5f95a8e-8d80-4961-fba1-08dad265d046 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +tYXD9jLNun7oszmC59jA2Vsl+iHYWZc6nAWozNbVH74wGVv7F96fcNXPZEeAEhh+JI1alA3InADFryte3jF3wJq5sfV18yx0fznP5w6sQM7vniaC4ozXAPNrZHgVVncWSJgbZgfoz41TkkJLqY+C3sDOrkbNFD2fywE2rjZRyf4cwbhyXeSHUJzLELLngiLu02dCXEa2ugg0d8dD+DtaZ9dsN1LZIzX4PJAgDr1hEQm07eK8u2Artu/HqGoIsSVJzHJulJ8XbkKodUc7wrJ7nPvKvxdEo6l/ke69pigkZMaIv5a2pvFj3yc7f6Item0BQrWmMZn88wkM455i3qlJqCsutuOfQdI6ZrH5WqhbvXo80ojz8EgwwI66UVp/1zo1G0VTTJoWCKfiUxFUHUnnGgKIufXTX+t2ygRKlAhZ/MnTRYnZp1VF1poAv2VcrqH1TdKRcjMjED9yTIlBqpLC4HDfZJ6NPwbmsl2A7OSOSiz2lW0mH8zFFu5q7X7xcprpb5tofdCGjA0qpr8lZlIqOKgOfDr2NdVXlUXAW2ApkYv+YZEzfaLrmV9dGI93ao0stLBhJmFL88Pzz16WCNkr85/Xji22/0I07nw0OCe6KRMdeXkH3P54NhN3fhCKPL3OwIJq54aSfevqtTrjW0vGfjTQ2f7tfldZoZzW3hdS1Huq8nThjCHxn5C1EB+STA1wRsoAaaGARkOmvTwvmcifPsPzyK1PM/ZEEWjXJ+vaiE= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(376002)(346002)(396003)(136003)(39860400002)(451199015)(36840700001)(46966006)(40470700004)(54906003)(26005)(6916009)(7696005)(316002)(6666004)(81166007)(70586007)(70206006)(8676002)(4326008)(356005)(426003)(478600001)(40460700003)(47076005)(5660300002)(41300700001)(44832011)(8936002)(336012)(16526019)(186003)(1076003)(2906002)(83380400001)(36860700001)(36756003)(2616005)(82740400003)(82310400005)(7416002)(40480700001)(86362001)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2022 23:59:55.3251 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e5f95a8e-8d80-4961-fba1-08dad265d046 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT101.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4339 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,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?1750877548315845510?= X-GMAIL-MSGID: =?utf-8?q?1750877548315845510?= Add the AMD Automatic IBRS feature bit to those being propagated to the guest. Signed-off-by: Kim Phillips --- arch/x86/kvm/cpuid.c | 2 +- arch/x86/kvm/reverse_cpuid.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index 8e37760cea1b..acda3883a905 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -743,7 +743,7 @@ void kvm_set_cpu_caps(void) */ kvm_cpu_cap_init_scattered(CPUID_8000_0021_EAX, SF(NO_NESTED_DATA_BP) | SF(LFENCE_RDTSC) | - SF(NULL_SEL_CLR_BASE)); + SF(NULL_SEL_CLR_BASE) | SF(AUTOIBRS)); if (cpu_feature_enabled(X86_FEATURE_LFENCE_RDTSC)) kvm_cpu_cap_set(X86_FEATURE_LFENCE_RDTSC); if (!static_cpu_has_bug(X86_BUG_NULL_SEG)) diff --git a/arch/x86/kvm/reverse_cpuid.h b/arch/x86/kvm/reverse_cpuid.h index 184614e27d5b..0bf02c02bb0a 100644 --- a/arch/x86/kvm/reverse_cpuid.h +++ b/arch/x86/kvm/reverse_cpuid.h @@ -30,6 +30,7 @@ enum kvm_only_cpuid_leafs { #define KVM_X86_FEATURE_NO_NESTED_DATA_BP KVM_X86_FEATURE(CPUID_8000_0021_EAX, 0) #define KVM_X86_FEATURE_LFENCE_RDTSC KVM_X86_FEATURE(CPUID_8000_0021_EAX, 2) #define KVM_X86_FEATURE_NULL_SEL_CLR_BASE KVM_X86_FEATURE(CPUID_8000_0021_EAX, 6) +#define KVM_X86_FEATURE_AUTOIBRS KVM_X86_FEATURE(CPUID_8000_0021_EAX, 8) struct cpuid_reg { u32 function; @@ -89,6 +90,7 @@ static __always_inline u32 __feature_translate(int x86_feature) case X86_FEATURE_NO_NESTED_DATA_BP: return KVM_X86_FEATURE_NO_NESTED_DATA_BP; case X86_FEATURE_LFENCE_RDTSC: return KVM_X86_FEATURE_LFENCE_RDTSC; case X86_FEATURE_NULL_SEL_CLR_BASE: return KVM_X86_FEATURE_NULL_SEL_CLR_BASE; + case X86_FEATURE_AUTOIBRS: return KVM_X86_FEATURE_AUTOIBRS; default: break; }