Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp599979ybz; Wed, 15 Apr 2020 14:54:22 -0700 (PDT) X-Google-Smtp-Source: APiQypIffpqc5X/JAOVC20dGKvWfz944gE8l3GLkD0BAMvGKeBG0TiUCm+BCT6yebI7JraYyvkJ9 X-Received: by 2002:a05:6402:1597:: with SMTP id c23mr27632667edv.107.1586987662718; Wed, 15 Apr 2020 14:54:22 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1586987662; cv=pass; d=google.com; s=arc-20160816; b=ej/HL1NhvieXRbiXkp2kT7i7tQxr8OvIZW9pmIG0cMQhsEg/tVkTLiHwz4d/O6Vuh6 O7vGE1DVNLDXNI6HL4h3TOmjMQ6jwL/jNXCcVz92nck8kpWTd6f2dewFfRCA3pavFeA5 JJxrIL7+y1iy4/zw0YOT0b5sLIHGKIIUgPdqP5qJwrhcICUP3OgCMDLUHPdd42eJCu4r LfJgCBiHDuEKd4j8MZDrSv//vj0Psj+eS7Yzvqp29vn7lUlz6UBKwViDeDjfnpQ+wTXO WFi7udwORXR6Wd5N/aQ8YJlMcXMj8uVLpMMMbzMh+b05TxvBFGVxhPCgMbuROhCGyrEq qUsQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:in-reply-to:user-agent:date:message-id:from :references:cc:to:subject:dkim-signature; bh=2csmqSF8Oe5PBqXsxosUGpKAOc+oXHtZhuIHh6sR6i4=; b=Xq7nmaiyNP53vmtpAvIvtSahMGviWd44hXvXlVCUBMdcqMY06zRepVplaAfaDbG/1X dkNWQ/a9Nc9FTxqoAPaHMUsEfnOBIFdOEV9owFBO7nEA/L8P1/cPmcEL9NE7AlHitych q8AbhO324xTl8LRaQGcjmx/JZ3xUrw8lVxwXRgvexEtKWlerRFqNselH5qOz7F+oEC/S wBiRw2ycZaDVyh5gpkTQRs5zY3mfxJ9PZyIqJaETy6y6LQSluOtqtNHLhOd0mwKQkzRQ C1AVLw68WqMa0Ob/CI9tsghac/GaQBAjHG/IJlGLkWy2csR5jDA+hNieb5nA3LAAw/5V PtcQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b="lgD/KdHW"; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y6si10745681eds.303.2020.04.15.14.53.59; Wed, 15 Apr 2020 14:54:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b="lgD/KdHW"; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2632862AbgDNUPT (ORCPT + 99 others); Tue, 14 Apr 2020 16:15:19 -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: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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 >