Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp2128836ybb; Sun, 29 Mar 2020 23:25:27 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtankzfu/MqiMj5mI3lDtdmccPUrwyteshgL5kiPmfVSM5TBPJi3RJLXQzda4JLbtNnCGIj X-Received: by 2002:a05:6830:1046:: with SMTP id b6mr8555275otp.229.1585549527837; Sun, 29 Mar 2020 23:25:27 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1585549527; cv=pass; d=google.com; s=arc-20160816; b=ecjnuVTjUQCN464JwiWGmEqGEAGHw+P5l1HmJF2riIGgx89UwuMTcYIVaNOOWhKdCJ bt0w6Zc3FfgcCJDrPy1ZSfvAQS/ElJ8C/SmKGLEHWHT+kA+GYg7sCogBO/QYPz4zZEmr tLNRNUKQYdNX1FSNBQMSY0UoDCCet3RlUyN/7n0+VruNtybZxy+aE9+w2IqsjAXT2uLq 0hX7YIcLkdQzeYDYj7rEs/k+ca68SNNjySgWDFLve7C/X7SCmfN1GZVLxaIgsgLpd/hl 0S6ZTb/y32Rn7ehmtsSQxSBZLAyw3BRcT9gpMJ0tW4A54GOxMMfRrBImFGgM4/p1c3eZ LFPg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=aodWKOdHZfBvB6+8w8EpuzzbFUtA2r4yfbVD9G2bT3Y=; b=irHxv1CTb7nkANiKsKBEB++Y6lO3HGXYddti1EflbfP1wK3dAFpEw/4USnd4cs5baK kqZABBEbz3uNJgKCFrvfeoKl7ghiOy5dgxCrfPEA1aCVp2dr17Osx6/7xpTvyh8+FUpz brwZt18k77a1p2TGUYvigEknWwuOHRYyGsauk5eQPKS4Ii6zMI5Pt2gUHpEJfacLQsgb r86O8VOgzR1e8b9ZABcUx64ZyMrSVq+7UwSTn6A+HQiuH0tJUXWt1Kz9DNvtKyS2e4P3 ZyFcQ5nSEf/88/2iaho5mfy+sA1JvR1rkI614WOJSZGUt/X8qf81m//4CNmC+wrIJF2N z/pg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b="PlAi7qT/"; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z17si6470766oth.282.2020.03.29.23.25.15; Sun, 29 Mar 2020 23:25:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b="PlAi7qT/"; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729299AbgC3GXy (ORCPT + 99 others); Mon, 30 Mar 2020 02:23:54 -0400 Received: from mail-bn8nam12on2074.outbound.protection.outlook.com ([40.107.237.74]:19623 "EHLO NAM12-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729089AbgC3GXx (ORCPT ); Mon, 30 Mar 2020 02:23:53 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GPfz/aOdB7l5EfDeCFn4rYu5vNv/0qE4h7rnHJcT3+JpdHzTwFUbcnQ0+byxMq7roongoyjEXzhLpKBwmUlYiVlEz8lvWuDATZ1hd/jv9qncY6M1wXEcdTtmYoPXhGQqjMlqgRMYiJME9WAm2aje/aIbnTM+7kDu/6nMWXcx6X+9ZhICMQxQXp9EuarzGu+KAKg8bNZoKCbn0Uvc5P1RoY4suiYD4mYf1S9wdEGPc3kIc2dYUQrCAq55NLMLnarH0AQ4z7Js43NV/EPVvCWPCqiz7xFMmTumI3PO4uJ5wHYli5EP09hQqzo1ZolIcgBmTAnahuN7cynfr9UkfZETpw== 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=aodWKOdHZfBvB6+8w8EpuzzbFUtA2r4yfbVD9G2bT3Y=; b=jJ0+SrEETzjEuMaxP7EN0+j0C7los3qDqPXjHIlammvuZP0XtLq7V0NZs/3u8JdhgIZWZGUeFKJbKa7lftGo+/KGo+bGEsSVcENCp0n3EQzG/zT0UIbT0b6nuL282TZ+euynfOjXnNPHzBK2aVW7SOvYEanjZbEm6nz7K32WSWZQgJNcOl7z9TOGAdq9RF+2/Xj6xVLnMHx1kh24JgMHJ+O4zdgpWzMHE1n7wz38Cs8DcOhrRDcU2TKTPNc5VctNVavNripHXF4LowLHi6ogJX7bgDvGWW8BcaS26oTApPEkAa5a4QxQ/LULVP2mi71zpvUEWrx8di5YaWJm9niKYQ== 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=aodWKOdHZfBvB6+8w8EpuzzbFUtA2r4yfbVD9G2bT3Y=; b=PlAi7qT/9oOYxTmZRVyfVWGRoTtk9naNkDPnUE2FqffAykBJ4abxvmsQb5gdKT5gVTrL1anRzQh01Wt8qlH3R1/yGw/ogegTLMQzdlZinso5WQ8c1ejrVhXfJxdT0tmQxkshsiYj9mDChEiswm/9LIetbqHjjQ/IvnsLar2bITk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Ashish.Kalra@amd.com; Received: from DM5PR12MB1386.namprd12.prod.outlook.com (2603:10b6:3:77::9) by DM5PR12MB1692.namprd12.prod.outlook.com (2603:10b6:4:5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.18; Mon, 30 Mar 2020 06:23:50 +0000 Received: from DM5PR12MB1386.namprd12.prod.outlook.com ([fe80::969:3d4e:6f37:c33c]) by DM5PR12MB1386.namprd12.prod.outlook.com ([fe80::969:3d4e:6f37:c33c%12]) with mapi id 15.20.2856.019; Mon, 30 Mar 2020 06:23:50 +0000 From: Ashish Kalra To: pbonzini@redhat.com Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, joro@8bytes.org, bp@suse.de, thomas.lendacky@amd.com, x86@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, rientjes@google.com, srutherford@google.com, luto@kernel.org, brijesh.singh@amd.com Subject: [PATCH v6 14/14] KVM: x86: Add kexec support for SEV Live Migration. Date: Mon, 30 Mar 2020 06:23:41 +0000 Message-Id: <0caf809845d2fdb1a1ec17955826df9777f502fb.1585548051.git.ashish.kalra@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: Content-Type: text/plain X-ClientProxiedBy: DM6PR02CA0108.namprd02.prod.outlook.com (2603:10b6:5:1f4::49) To DM5PR12MB1386.namprd12.prod.outlook.com (2603:10b6:3:77::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ashkalra_ubuntu_server.amd.com (165.204.77.1) by DM6PR02CA0108.namprd02.prod.outlook.com (2603:10b6:5:1f4::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.20 via Frontend Transport; Mon, 30 Mar 2020 06:23:50 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [165.204.77.1] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1eeb11ef-ece6-40dc-3e71-08d7d472e998 X-MS-TrafficTypeDiagnostic: DM5PR12MB1692:|DM5PR12MB1692: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2512; X-Forefront-PRVS: 0358535363 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR12MB1386.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10009020)(4636009)(346002)(136003)(366004)(39860400002)(396003)(376002)(66556008)(86362001)(66476007)(478600001)(2616005)(956004)(81166006)(52116002)(8676002)(81156014)(6916009)(7696005)(8936002)(5660300002)(6666004)(6486002)(16526019)(186003)(26005)(66946007)(316002)(7416002)(2906002)(4326008)(36756003)(136400200001);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: PyMV+6T2dOh/4RUDAwz1Ne5I1u2hM/YqpnZ9HbLEqJxQAQdU1sUWknxleaqwmAaPqMqUXP6RGLY0+65cmHk/ZDmnegNmzucZHpxAVqkA0lpIakgIiZBFGjrROOjk5MDwoMVo9zF0jRhNPWZy2KlkOikCQv72zICpFnzHvASFcJ+wlHFkp24QlWiQQKO0aHqAdcaZjXCmO0vOXN1F8wgTF50/fqJVHd6snygJQ6Dcg4igw7rXL+ai3uOm1+3l1Y3P8DlVP6pNIlPqZtbFecOdr+kSbgFDVw3vRerY9N20oImoUJYKqInKxIJwRaBbDhAp1mykiLGue6sbjwyrLpC2dmUoXxtFHLZOFsJlyQWmAeaRZPGgjxyp+1eSMuyr/le0nJBZRdNd7/JoyOPWIqSHRCt1hwSWhj/D2NxFv1Bhx19HPp3RtJA9TrK4Dw6sBDvLjY+gpcoZALUix4T7OfxsAlww2J5GAkFez3mB3K1CE4tUfF1eKIC84ZwdBCOCMVP3 X-MS-Exchange-AntiSpam-MessageData: BzLhDw4CqT8g2fA8aSKfXI4mBhAvjHDImdlivDw4XkjclWm1xjnEfwTeig3UKBVRCiLZMhr0MaafgsWXY/cdIi1dAV2KHEoW0jVxTh3epi4rxX6+80JQsbni9fPIb2rPq3u7f9c0Hl0MksIs3ifRXg== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1eeb11ef-ece6-40dc-3e71-08d7d472e998 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2020 06:23:50.8022 (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: kBbcqQmry/sno62888DA1fzRaDGpDiMsbI0b/0rYml66kt6PHKaY4I8XkHsxWC9Ml1iNfxxsvMmCebQ1KhstiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1692 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ashish Kalra Reset the host's page encryption bitmap related to kernel specific page encryption status settings before we load a new kernel by kexec. We cannot reset the complete page encryption bitmap here as we need to retain the UEFI/OVMF firmware specific settings. Signed-off-by: Ashish Kalra --- arch/x86/kernel/kvm.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index 8fcee0b45231..ba6cce3c84af 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c @@ -34,6 +34,7 @@ #include #include #include +#include static int kvmapf = 1; @@ -357,6 +358,33 @@ static void kvm_pv_guest_cpu_reboot(void *unused) */ if (kvm_para_has_feature(KVM_FEATURE_PV_EOI)) wrmsrl(MSR_KVM_PV_EOI_EN, 0); + /* + * Reset the host's page encryption bitmap related to kernel + * specific page encryption status settings before we load a + * new kernel by kexec. NOTE: We cannot reset the complete + * page encryption bitmap here as we need to retain the + * UEFI/OVMF firmware specific settings. + */ + if (kvm_para_has_feature(KVM_FEATURE_SEV_LIVE_MIGRATION) && + (smp_processor_id() == 0)) { + unsigned long nr_pages; + int i; + + for (i = 0; i < e820_table->nr_entries; i++) { + struct e820_entry *entry = &e820_table->entries[i]; + unsigned long start_pfn, end_pfn; + + if (entry->type != E820_TYPE_RAM) + continue; + + start_pfn = entry->addr >> PAGE_SHIFT; + end_pfn = (entry->addr + entry->size) >> PAGE_SHIFT; + nr_pages = DIV_ROUND_UP(entry->size, PAGE_SIZE); + + kvm_sev_hypercall3(KVM_HC_PAGE_ENC_STATUS, + entry->addr, nr_pages, 1); + } + } kvm_pv_disable_apf(); kvm_disable_steal_time(); } -- 2.17.1