From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D850DC352BE for ; Tue, 14 Apr 2020 20:14:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B43D52076B for ; Tue, 14 Apr 2020 20:14:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="lgD/KdHW" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2632838AbgDNUO5 (ORCPT ); Tue, 14 Apr 2020 16:14:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S2632824AbgDNUOq (ORCPT ); Tue, 14 Apr 2020 16:14:46 -0400 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on20608.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eaa::608]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3F6F5C061A10; Tue, 14 Apr 2020 13:04:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EW7co+8Nu+u5BlrEXXfwjpa5SDHB2uDCvDZoJbOSouePuVkl0TrPTYw1kU9mvvC1fre1vIYwUmo8U+GgkqH0aluUtiDSLFuU2PIkzYELg8uP+NTAPeTjadHItf3tBUojW7yBAbOlY52V70sVbwFTIeAvglwuNhwXZboJim+DIrQTnOfbSVi2RS/4fu3T5OBSW7vjGNxaXqd5mlASwpfwOyb08hFOq7YJ2n3n56kGtGfUX6V5z+Kgp4KS0kn3KjgtkahUkqiympnXV5yYeQXwCnhDwOe6+cmrADsnKtdbgA9kO5WLjKYBsGyv2Uj7bqxxFO/hENKalGlkhgUVvbEpvw== 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-SenderADCheck; bh=2csmqSF8Oe5PBqXsxosUGpKAOc+oXHtZhuIHh6sR6i4=; b=DUdGywhwVII5gGFJnhMtHMKKPvE5+4OvEP0/OdEKljOpZB9NzJuZHRUAD0LfpHe+hzhtXTP/gsVjUb8wUTItFxS3wOzOP8AbkeDWVedspGZejx75kr7c7f0y9pR6A/JXbFjRqd7RTM3UjZnWVpURbSO6X0gnAgO3eUFzLkplCET4iWdRp5xstoBcY0BPzYYsXHFQfnjlo1DpQ62aA8lW4aHxbYFNfGD1uOG6pGWt99vfFMJ8fV6XOcyCu4lSQ7DbPAQD9Vz3Hg/kHKVxE2s7Ke6J49o8GToblATtPD1E9dt6AOippRJb6NKaTVNfaeKNWWwTK9Jymw9/LvV1KgQm1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2csmqSF8Oe5PBqXsxosUGpKAOc+oXHtZhuIHh6sR6i4=; b=lgD/KdHWeEm5tBEgvOVxjnvaPIUFS7X8FqiU+3UyoSbC1iH1mbijDStikSnPUIMlbFBbxrDLui3DGxb0XdAjO/38fpkDSgVH1w37PinlgE4m6IDQ6V+7Z+HnUt30oVpI0WlXgBXl1gcq0rXbUn1bF+/Ge0rKOiw2+JAnxFCOnc8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Received: from DM6PR12MB3163.namprd12.prod.outlook.com (2603:10b6:5:15e::26) by DM6PR12MB2730.namprd12.prod.outlook.com (2603:10b6:5:41::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2900.15; Tue, 14 Apr 2020 20:04:46 +0000 Received: from DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::f0f9:a88f:f840:2733]) by DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::f0f9:a88f:f840:2733%7]) with mapi id 15.20.2900.028; Tue, 14 Apr 2020 20:04:46 +0000 Subject: Re: [PATCH 40/70] x86/sev-es: Setup per-cpu GHCBs for the runtime handler To: Mike Stunes , Joerg Roedel Cc: "x86@kernel.org" , "hpa@zytor.com" , Andy Lutomirski , Dave Hansen , Peter Zijlstra , Thomas Hellstrom , Jiri Slaby , Dan Williams , Juergen Gross , Kees Cook , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" , "virtualization@lists.linux-foundation.org" , Joerg Roedel References: <20200319091407.1481-1-joro@8bytes.org> <20200319091407.1481-41-joro@8bytes.org> From: Tom Lendacky Message-ID: <09757a84-1d81-74d5-c425-cff241f02ab9@amd.com> Date: Tue, 14 Apr 2020 15:04:42 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SN6PR16CA0058.namprd16.prod.outlook.com (2603:10b6:805:ca::35) To DM6PR12MB3163.namprd12.prod.outlook.com (2603:10b6:5:15e::26) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from office-linux.texastahm.com (67.79.209.213) by SN6PR16CA0058.namprd16.prod.outlook.com (2603:10b6:805:ca::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2900.17 via Frontend Transport; Tue, 14 Apr 2020 20:04:44 +0000 X-Originating-IP: [67.79.209.213] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 2d88baec-7789-4b0f-0589-08d7e0af1408 X-MS-TrafficTypeDiagnostic: DM6PR12MB2730: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-Forefront-PRVS: 0373D94D15 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3163.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10009020)(4636009)(39850400004)(396003)(366004)(346002)(376002)(136003)(110136005)(54906003)(31686004)(5660300002)(8936002)(6486002)(316002)(7416002)(8676002)(66556008)(66946007)(66476007)(81156014)(4326008)(26005)(956004)(186003)(16526019)(86362001)(478600001)(31696002)(2616005)(6512007)(36756003)(52116002)(6506007)(53546011)(2906002);DIR:OUT;SFP:1101; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: P+9+lJO65BqVwKwfMoujGV3sf4YpG2eCuzAHByLpzOzbJtukbcWfkJDvONCIchkzwEMjdD936ZscwSVXDuTLpa3Bi1qXPDvANy03Ynd4la/aPgvYyik1B2Q7Ssj1zZaJCE52FkhcuuGNviGLYuXYuEROuiAobs9m7MIljv7J1TvZRK5DqgZEGTgBgu1wVFCVwPMAEo9edPaWukMky3agvbSxdFbxmK7sCYfCS1GCiFxO7YS8Grx6MnFRq7G2g1oUzbm11jPrHuQ1tVj4OdSQjH0Db3GkU9d75y92Dhk+ciaTQIXMCbZ4+yVZz1ooEarF3H+No5HusHfdMgy9WkicfA4lkbe30bUy6GKX3ItjMyAwNi08of4uYtdjjzSnLCACghyJ1Jgaig9e8hKvpyx1NSmGDOfwXIG9NsKKVU7NaBzYTK4h2Tg6mRGeubEHO4Xx X-MS-Exchange-AntiSpam-MessageData: jVKhd/ZTgd45QYJsJoPVhQy8kFS6DAAMbxql5MDnd7gHDEMf6uQkGo/Jwx3mFmsmfSW7O2wkQBMI0m82DnKypFqriiT3kTMvAySJIxYXEhOvl5yIC9fOve4E9NnGLNXPj7IoN0Plya5sWVqrWuIi1g== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2d88baec-7789-4b0f-0589-08d7e0af1408 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2020 20:04:45.9121 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fR+sn7Xb32FPeaon4HUWoZpK+isbhOd0bidW5D6YKoXedmbVCT5CRz0gcSeQSSIXC/SPyY2VuKFVm5agHiI6eg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2730 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org On 4/14/20 2:03 PM, Mike Stunes wrote: > On Mar 19, 2020, at 2:13 AM, Joerg Roedel wrote: >> >> From: Tom Lendacky >> >> The runtime handler needs a GHCB per CPU. Set them up and map them >> unencrypted. >> >> Signed-off-by: Tom Lendacky >> Signed-off-by: Joerg Roedel >> --- >> arch/x86/include/asm/mem_encrypt.h | 2 ++ >> arch/x86/kernel/sev-es.c | 28 +++++++++++++++++++++++++++- >> arch/x86/kernel/traps.c | 3 +++ >> 3 files changed, 32 insertions(+), 1 deletion(-) >> >> diff --git a/arch/x86/kernel/sev-es.c b/arch/x86/kernel/sev-es.c >> index c17980e8db78..4bf5286310a0 100644 >> --- a/arch/x86/kernel/sev-es.c >> +++ b/arch/x86/kernel/sev-es.c >> @@ -197,6 +203,26 @@ static bool __init sev_es_setup_ghcb(void) >> return true; >> } >> >> +void sev_es_init_ghcbs(void) >> +{ >> + int cpu; >> + >> + if (!sev_es_active()) >> + return; >> + >> + /* Allocate GHCB pages */ >> + ghcb_page = __alloc_percpu(sizeof(struct ghcb), PAGE_SIZE); >> + >> + /* Initialize per-cpu GHCB pages */ >> + for_each_possible_cpu(cpu) { >> + struct ghcb *ghcb = (struct ghcb *)per_cpu_ptr(ghcb_page, cpu); >> + >> + set_memory_decrypted((unsigned long)ghcb, >> + sizeof(*ghcb) >> PAGE_SHIFT); >> + memset(ghcb, 0, sizeof(*ghcb)); >> + } >> +} >> + > > set_memory_decrypted needs to check the return value. I see it > consistently return ENOMEM. I've traced that back to split_large_page > in arch/x86/mm/pat/set_memory.c. At that point the guest won't be able to communicate with the hypervisor, too. Maybe we should BUG() here to terminate further processing? Thanks, Tom >