From patchwork Mon Nov 6 18:11:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10044073 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 861F460247 for ; Mon, 6 Nov 2017 18:19:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7D5342905E for ; Mon, 6 Nov 2017 18:19:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 70726290CE; Mon, 6 Nov 2017 18:19:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0B2852905E for ; Mon, 6 Nov 2017 18:19:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754339AbdKFSPa (ORCPT ); Mon, 6 Nov 2017 13:15:30 -0500 Received: from mail-by2nam03on0078.outbound.protection.outlook.com ([104.47.42.78]:49424 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932700AbdKFSMg (ORCPT ); Mon, 6 Nov 2017 13:12:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=QhbbOZIi7AzQGya4qgrLi/IbC8oZ+/PE9mK1f9AOAb0=; b=Z1uj9tmu8DyOLBzchAqrgZcc2ZL/VEePvEeULV/wzaKdzkcXvpjHSnboJUXkApu+X7w7nTngsz2b44nhJKTHlAhxBFNi8NeV8OIxhk8ETLmRCzcpfweM0Q6RQzXDFuQ6dc2Mgm6UGUBhlb4+aRBWRmnZc+y3rxwHgEo/Hi0TAjs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by SN1PR12MB0159.namprd12.prod.outlook.com (10.162.3.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.197.13; Mon, 6 Nov 2017 18:12:24 +0000 From: Brijesh Singh To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: bp@alien8.de, Brijesh Singh , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Joerg Roedel , Borislav Petkov , Tom Lendacky , x86@kernel.org Subject: [Part2 PATCH v8 23/38] KVM: SVM: Add sev module_param Date: Mon, 6 Nov 2017 12:11:15 -0600 Message-Id: <20171106181130.68491-24-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171106181130.68491-1-brijesh.singh@amd.com> References: <20171106181130.68491-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR10CA0031.namprd10.prod.outlook.com (10.175.102.145) To SN1PR12MB0159.namprd12.prod.outlook.com (10.162.3.146) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e82346a5-59f2-4c3a-596d-08d52541eeb6 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603199); SRVR:SN1PR12MB0159; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0159; 3:dV7psCxmtXzb/FtsCbcOUnN/smrtLZuGoUl+fbiqBjSLCxo4WMJiOlGyDL3yumKdDrZXNRT0bkU7gsE/geR2qN8WMep42266jqCrdQ/MSbpNdl2f3rC+D4sYIInPO+XukWM5DhDNpjhm00ztnTXuU6XrJfYwLUGy0iRZMqxlOqDR4rGuw7j+jVaH1FphMbIcUTDfoif7qpb4FwPly4elCs/Hk4Hpl+dLWYeZmq04/BT0XyC+BXI7MeqgBUfE7hL5; 25:1L6bCiQfVMnE80/eEK2Qwm8FpOflTOYUpO3+BZ9vhwuhYepLk9na+zTGvAyAlWi7iKzfIy5B0WYRN41IOFcZkgvwyadMfxQ7LTpXPHE78XVfQb3ly2Yjn1wcCS4BRd3+RNB+Z0a+TdtDkyH9Hn+mPpiRze+BliF0vPYkFlvebaMsnpHa9H59CcoeAyaWET+EXpjydr+CuCv6+SBUEGHMFrsss8B+O2tCjo2Kq3SQCPHgtNA+GOYFC9DDznUhvrqjyddQN6gaTb65t0vjBfWjw5eoOcAKSoompDb5h8S/GFUDmUYeXvCAwA0B8WagAURQZlryWHNH73se90BvWettzQ==; 31:l4GNHBxf8r5GtMb6CBIfmhrgF/zMvuV2+9D7abFo0F/o781rZrCaVfd6kzi+PBNr+bVicyQ7+2BrQ5RJcl15ADb9Zh8OM2egvNShT8PGAXx5UkiWNdOOeP7pGc8JZhPugTr6Pj5oHPT79QEEdBdZbQy5WuEB7mSb+2ZU0GppvDXCZtrvfAD3FlpXwt5p2l6Pm272PncOUJ5JysnTOSEYv/N/svJk+g83yyGYNm6G/Cc= X-MS-TrafficTypeDiagnostic: SN1PR12MB0159: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0159; 20:4jmb5REqwQmRgi9Vgw9ozh1cpLCd0fxw7hsEFxLJCRKRR83gbgiWUV9AmswR9S16WBEnY+hQTMObyGBmuVMGH1xE8IMoSW08DZNO0alr54jyIGZVG60JbVCrGmEVNKApEZ2/Y690nFUWNTkSFtg/54BitRQGBhqRddajpmaHqC0rguz27xfKvUXuYYjgxu43o6Fd4C6F5pFcWKta3M2cXf36iM2CvBfVr+mFBkraic29QWqSCABACRFsfXy6tATJ1Mpff9/mrNqQtmR4K5f9cqrwUlOcfNe3WrqhBW135pYleQFGKWHmw/QTE0rwBDqWj4q6agv3T2JvJooUtWM9n5fe2QHvfu5q8726kZUEm+tdVTnw+QogPW4yGORrFj2ouLZPBp02vx2JKOMQcXpSJxo3kAl1cXhL8YGuPpQJnzAHojwCxbc1eZVdX6y4axKwpm0PNXncY3xRAtMk/ab+fPWzum3Rt/VBd8ClONiTFLR0MUFv1Cl+rwd6enddeNal; 4:yZcl0yGOzQnEcdCV/pLZDvHQO8Ms3h5wTbN3MILWzA8CX+5nRAVi1ApnfP3LA8W4q06YCxFcYDaOFXZ0/Jwwt8VEzQOXzrY/5LX8vDzWHTCuEEwmj1+R7j9Mc9nzzYFQQVxyPQHwAiLxl410kj2kDtnH1+XwJLYyAphZjagT3t5ffSOuMk8WrphdKJPv6I1Y4wumo2KRTc68N81sdv/tiX8Xf/eUcHmV+HqcLSi/W3PXG5KZMFnBayhp/RsXw1O+tQaQUaDcySOUTWW+IB8cMrt7KSgedwxpXlBTbVfdNWjG5rrRlNH4AP8PcSvGlDPObrZ4XMeAyz2ded7iKhe+5Q== X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3231021)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN1PR12MB0159; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN1PR12MB0159; X-Forefront-PRVS: 048396AFA0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(189002)(199003)(68736007)(97736004)(4326008)(316002)(16526018)(54906003)(7736002)(8936002)(2906002)(81166006)(81156014)(25786009)(53936002)(8676002)(2870700001)(1076002)(6116002)(23676003)(50226002)(189998001)(305945005)(86362001)(3846002)(50466002)(33646002)(66066001)(36756003)(53416004)(47776003)(5660300001)(7416002)(76176999)(478600001)(6486002)(105586002)(50986999)(2950100002)(101416001)(106356001)(6666003); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB0159; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTU5OzIzOnd4N1VUdUxzQnhUYVU1U0FLcTBpYXJ6cDJS?= =?utf-8?B?TXRpViszWWJxQnlwZW9kMnhjNWNGaHh5T25qd21veTM3aDlYQStCNUNrY3lB?= =?utf-8?B?WjlIVjM4dmRzYkwydkVTWjlmMW5Md0toeEhpS3VCS1NnWlFVNkwwdlN4UW1o?= =?utf-8?B?RW9QRWpuazJ3Nmlhckc4T09ETi9Fd0NJN2FsNTg4WkVJWG1kcTFzc2xDQUhU?= =?utf-8?B?SEx4SkNKNzFIUmNVdUhleloyMHJlUnFmdk9jUWhVeE9qbjlyNC96ZE1lMTdj?= =?utf-8?B?TmZCMmVsUXl5d3YrWkhzU3RzclZEVVlIK3BKVkJPdlRNQkd0OGlWdGxRbHYy?= =?utf-8?B?SlZjVU01ejJZS3o5UjRZR3l2bXp3ZzB0N0cxUWxiakhHazVVOWJPNDdIZTFn?= =?utf-8?B?b3p0bmJZM2x1UTgxRmFSRG1YM0Mxd0JhOC9YWWQwT05odkhLT0pBVWJBN2lK?= =?utf-8?B?dmJzWEtRLzdzellJaXgzOVh6N2wyS2ozWG1KbzlDejhzRzcxWlhyNS9kQk9R?= =?utf-8?B?RlN0L2c0WEg4MWpjbHRzN3NXbThaaWQ4MGxVYXIyZE44aFAwejlEOHU4TjNN?= =?utf-8?B?b0hzbXN4dUk2R0NVM24rSUxMSERaMml2NEhhN0dxanZoLzZNUTFtVHZlbDVQ?= =?utf-8?B?bDk1ZiszcVFxelJQQ0NaZHpkSWt1K3MwajdLSk1RaDM0QThNc1hsdkVpaysv?= =?utf-8?B?R08zZXYzTm4waWR3dC9ENm5DMFZRaUlpRzBJaFNXalhCZDNndG9CU0c4Yi96?= =?utf-8?B?cFZkN3ZXRWNEbWxmNHJJVklkMG9BNzFpc3NlNk9EcURKRHUvZVMweFQ4ZXRs?= =?utf-8?B?eEloNWljYWhkUHVwaEg2d0liZUhFdzNtWDdCeGkyekZWV1NVVE5RMTZwbUVp?= =?utf-8?B?dlY3RGJJTmJGMDdOK2tFMFZkU3pGVW9OTjdJaVVRMU5yZTdQVXg2aDFQVEZZ?= =?utf-8?B?ZHNNYm1qVFA1YmJCV1VEVTJDZXF4LzV6WFBWeWR4TmhFOFAxd3E4TFBPN1NI?= =?utf-8?B?WVJzNGo1NEszUHJIdE9EK0tFeDZPMHFiU0U0ZFc2LzNYYzhEWDVXbjRabC9v?= =?utf-8?B?WUo4aG9saW1QY0Fnb0VTRDJtcFdPTU5Ta2NHWXRsdnhyMlN0RDZqY3dLbTUr?= =?utf-8?B?S2FJek0wYWVwUmJhenFjNUh5MzFJdDdBSlRyc2RpU1BKem5tZGxERzZTbTVC?= =?utf-8?B?K1NNME0zemVBelpRVm9hZWFaa2d4Z0JDVFZDMjVtZVZuVWxsRVFneWFLcTNV?= =?utf-8?B?WnE5akpMNEM0M3JISitBU0U3NzNwdWVuTFQzMnlkK08rK0dHajB5Qm41ZlJn?= =?utf-8?B?Q0V6NnkzSXJlYjNzNkFzcVh5QjljMktsMG14ZjAyT3h0SCtiS1gydHI2cHBJ?= =?utf-8?B?K3hxRSsyMU5WRHJNcTRzanFFV3VPT3B0Ri9iWUgvdDZHMlhJWTE2eE5WdjBX?= =?utf-8?Q?rUCpMQzmNxrQBOMLmkNj5BXHr1a?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0159; 6:PFejbU/g6X5qlXJm3O/aQ5AYEy75fRFxD6ndAXylizNyVP7CS+2Ux4mx+CrYISkSab1FSrMN+NCoES36OMa5Su+633osPF0SEWUS5wUX9HQ5eBIiN9WG5HUZvyHV9PSoQiscnqQVLl1ErQmvpw624HlvyBHl4Do44nW6MCc7tDV4cpSpzKMcOF4HZgHjEiGEs/b9N6YsXF48JIoWGYNfEpwSJdXgysf3+NCBL+PlmHVYjIEEXIbT/D+akMrjg7JVE8TJhzKFEgDoJgr+4JNv+3oDOhelllCqxLXPNewIk2hdXISYPskQVID2q/N05MslZkKhuXpMiEQ/O5FHeu+QQNrVBIJoI3f7ySy2MkH8sjw=; 5:aRefJn1MBfGJpIMarCfe6VoGYkDZkgaLi1/KtYagvT2oh8Ty7VUswWBfqugOqfGlwG/VhGGaFBlvlN0rVZoMi9UWI4lOMPT3ORKJFxhlz72qxDDFHrmJPQoY5PYADbXc8Gh5blej8eTheB1VoIPAKebB+vo/WBtgddHzw0EFFdA=; 24:FExyOZIRV7hVgO9IrnzUdYP5IBnZWiVakv2kjc93T6YmEm5XhDnj8EJ5wk21GrEm9wXD0EshnQrjtaYSI2ioiwBIWlwfq27Elt5gLunIvr0=; 7:JK1afkRF7OtChp4E2ZCumDpbIVVubMo96TibLmsEgYeixPb7SgZYIns8lPBDcMmEIll6g6WWc3UqPkOpFOa2eFBqRNcIu9TCj0L4H4+NiQMltsFUQAzDG4ZhbotRLZFEAV06aPNIDOO6yagO1qf9jDSZScsfIBf0ziTs4+92tjsbu7J9MwWwy5WfM0Cc/+Vpp+KCe/aWeOKrMKlU6WQD7hRUFz5lYjZfwVFiZEPsOGaFbIZhi/d95SG08cTtBmtH SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0159; 20:PPEialgayh+oiBIRsucfVIp3UxdU+XG8afYLFBK89jfZ9n0rhzL2drJcS214Ip1aSiH5onV9pVKeyzEehNSMPNg70QHeRsig8s5xQrk0sWTbNhyrbJzE5SmPjG9McDvQ5/fv6c/MlXT/zPBA7e5vkvCd+A+wYvonkYnpq9fYBZ4DcOuT86gyGBD7TYXAK5zN/hY6yhNfhce0od/xc0y4L6sYIrLSkraGAXJ1f37gQKqMagLzpvfUq1Yk7zzJUacZ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 18:12:24.0510 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e82346a5-59f2-4c3a-596d-08d52541eeb6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0159 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The module parameter can be used to control the SEV feature support. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Paolo Bonzini Cc: "Radim Krčmář" Cc: Joerg Roedel Cc: Borislav Petkov Cc: Tom Lendacky Cc: x86@kernel.org Cc: kvm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Brijesh Singh Reviewed-by: Borislav Petkov --- arch/x86/kvm/svm.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 7e46aea59615..59abb9fe2f13 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -284,6 +284,10 @@ module_param(vls, int, 0444); static int vgif = true; module_param(vgif, int, 0444); +/* enable/disable SEV support */ +static int sev = IS_ENABLED(CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT); +module_param(sev, int, 0444); + static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0); static void svm_flush_tlb(struct kvm_vcpu *vcpu); static void svm_complete_interrupts(struct vcpu_svm *svm); @@ -1049,6 +1053,15 @@ static int avic_ga_log_notifier(u32 ga_tag) return 0; } +/* + * Get the maximum number of encrypted guests: + * Fn8001_001F[ECX][31:0]: Number of supported guests. + */ +static __init void sev_hardware_setup(void) +{ + max_sev_asid = cpuid_ecx(0x8000001F); +} + static __init int svm_hardware_setup(void) { int cpu; @@ -1084,6 +1097,16 @@ static __init int svm_hardware_setup(void) kvm_enable_efer_bits(EFER_SVME | EFER_LMSLE); } + if (sev) { + if (boot_cpu_has(X86_FEATURE_SEV) && + IS_ENABLED(CONFIG_KVM_AMD_SEV)) { + sev_hardware_setup(); + pr_info("SEV supported\n"); + } else { + sev = false; + } + } + for_each_possible_cpu(cpu) { r = svm_cpu_init(cpu); if (r)