From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752669AbdJDNRV (ORCPT ); Wed, 4 Oct 2017 09:17:21 -0400 Received: from mail-co1nam03on0047.outbound.protection.outlook.com ([104.47.40.47]:4553 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752447AbdJDNRQ (ORCPT ); Wed, 4 Oct 2017 09:17:16 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: x86@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: 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 Subject: [Part2 PATCH v5 30/31] KVM: SVM: Do not install #UD intercept when SEV is enabled Date: Wed, 4 Oct 2017 08:17:03 -0500 Message-Id: <20171004131704.13266-1-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM5PR12CA0064.namprd12.prod.outlook.com (10.175.83.154) To CY1PR12MB0150.namprd12.prod.outlook.com (10.161.173.20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fddf27f1-2bca-4a68-a981-08d50b2a3a85 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:CY1PR12MB0150; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;3:kS+sBFyxU8uVX4aoHNQHd/fkwzqPSnfN+isIfUfIKQ9vjh9vk2iceZ8K37jEu2ZecUpw7JD7Y38fmxRPqlNJANtE1xWz0Dysj5Ysbj+NRUeOJacpWYtQ2sVf2L2Eos/4k6luOtBZu3k0pzde8YZ9z3vj4rE5LhVkY+FRjgnKDqVFa7PJYtBYgg/qrC2txVGQ+oyjgug5e5oBBZw/coGHj7tDMFfx33qudW9SzbG7YKOpzRTfXwCXfoZKFhZdjLqm;25:wmHEQg48RSoKt/dJ84XqtgN31N4HM0TGDtMus2pMKhhIMO2wQw58WaqpsJUIE+2b3UcE6R1JPFMsECtxZu/49TIi19lwKpAmZ4FxUSBH261yr1vDJfJJokneTv82t1k67b5+FmIqO4YifQKY0FYnKxXSd6v0XOBqQvTNdNt4CuRA1jKS5ocRhW7Ay+M2hNXG7WGfFJf7j7IDkLl2FD08XTOFT6sWJN6761FAPG2DI3wryyJ7scfe/fiWCL18qvwzmF97+//mOZIq5dP2nXvA5ql485HfN7AxBpcPNmZW7Cvz7ANIrFUuHGOWWXwsOOgQcEMSJCo3AYspza1JcjLgRA==;31:+Fm9y/amiBH1Xf5X5fFpdQnkq70phKDKEmsDSDJFA7dzx7+XPMPKiKQxNxyaylH0+q7ZP4MoldPnJdST9QjeWB/ioTtzfvREgF2BriwE52IdvtC9wevFnkmAikNbuNNV+uN1JmSBkWZB4i7gJ7BNsHcFlo1qJ8Q4XCH8r5csue0ZriKjdHPpl6A0vAFmV59ZAeouMzdcQlFdV1Hk7WwySWrXEDmRtgE0QcDtcL1C4zM= X-MS-TrafficTypeDiagnostic: CY1PR12MB0150: X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;20:W6AN4rmntzh5GDaLqPfMQWoPuv1Ol7j30UsE3BQDxZ9M12hpC5JO/WrdJcy8CLLXigh3Q/R7yMFJ8y4ndr2iR/aZCXbM+yoKJkBMjxiT8HLllY1i/H6FkabISAkjE9BcTt2kUkd0UkcJLVlXX5ZklA0MBtxgpWTYvuXbdmmv5ErHzHxpqUksXNAI+5iFW3rFpQDDmBdO2kqKrPxlF0V4gNRFIIgL47rM8AhrqyIGicRGp8sQM7brRcf061xtULAVlDR4EBo8y74GtdxzLyU9HrToq9bLnYi7AxJsvS8mbjCYDoLh4mDT8nFa2NYmwvv43oAWC7crw9f401y2o7eWdaeN1VtWPaH0A0kJPw8MEW5AsN5WGZG2G+9+7zgoguTeBtu5H7vlbtXnX8EWGbzKjoif3L6gE8nAX248bcfqG8/y8jEkgF1Itqu9EpblN98CMGgUDH76OiwEIIutgmPMqbp/zJ1PtwfcQRjmtaxsPZrp1j7xUrpexS37LY+M160y;4:kxojDEfgrF7WYkZKsvEYF4XZMkCkWRLiAkroC9qDorr6ftgFErKvnR+ThHQN8OCUuDxfkt53rVB9T/jwXVBuHyPui3zs6SMgyxQgcK78yXfI0aPMZvPQ+of/gG5sylgF62QxojzJFmAPza2rseksVP6Yq0rkCKcRK4W6yZK6FYPptKsbtg0oSydpqJlNpukUmUSMHBqPftk0D3CEXVHiqBMVGjt2o0gIul11QV0o99ZQ++LWF10zZgRi65n5IA5UVjNs04lpZLuu/sPncIWqljqsrhhW4ohrDQs30QXLDD4axq9t4Omm3damr/hEs7Hd 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)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123558100)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY1PR12MB0150;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY1PR12MB0150; X-Forefront-PRVS: 0450A714CB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(376002)(346002)(39860400002)(199003)(189002)(81156014)(1076002)(50226002)(86362001)(6666003)(3846002)(105586002)(6116002)(106356001)(23676002)(33646002)(81166006)(189998001)(8936002)(305945005)(68736007)(101416001)(8676002)(50986999)(7736002)(7416002)(50466002)(2906002)(53936002)(316002)(97736004)(47776003)(54906003)(53416004)(36756003)(4326008)(66066001)(5660300001)(6486002)(2870700001)(25786009)(16526018)(478600001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0150;H:ubuntu-010236106000.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjEyTUIwMTUwOzIzOlZxV1BDM3ZFVGlvN2hIT0JQRGYycEQzRWVO?= =?utf-8?B?U3lIZ293UkxCbG1RWURXZkNVMzd2eXpPa2txc2JLMzhwNlR1VnNYYXVQb2Rq?= =?utf-8?B?Nml3SzB4RTFpYlBtWXQrSFN0NDdDeXZMdHZDYWw5azN3WVY0M1BpZ3ptOGFo?= =?utf-8?B?ZXdJclF1dHptRm03WTdvOCtsTnBRcjdSRHk3WmVvSGVhM3pvaVhrcVZuT1Vz?= =?utf-8?B?Vml1Z3lrS2tiaUVablFtYkF2TCtvdU5FdVhLM3J2WnZNKzI1a1Q3QUlqWk9W?= =?utf-8?B?bkM3MWdudThpVDNXV3Q0U1R1Q3oxSHRlVHhBN1ZaQkRhOUxaTmpSakpEekE5?= =?utf-8?B?VHdjS0g2RHR4QnJiR3FxRHZSWURIalZ6U2FMSFI1VjZNV1pCZ2MyeW9sSFB6?= =?utf-8?B?L0MvL0JRSVhBQmpnOUZ2TjRycEp5Z0V0VkFGREwraTFWai82TGlCY3ZFQWQ3?= =?utf-8?B?VXc2Wk5QNmxWWm9rc0lYa0FlMDVraDRWSW1wZXdhWW8rMHluNTNySEFUZ2xn?= =?utf-8?B?YTZhNVU5ZjJyQzk5Tk1Td1h6QUR1T1ExN3F1U0xlZVk2am1LVGwrZlcvL0Jr?= =?utf-8?B?eTRqYWJiOFRlbE9DNnBTeUxncDhPV0hSVWJsSUIxeitQSExJS2NaQWtRZU8x?= =?utf-8?B?b0RCMlVSTWRJU24ybXlEY3FWSjJ6bVZ5WHM2VGhEVTdNb21VcjNxQlFoUlJQ?= =?utf-8?B?NlRxcTluelhvWHBBaUZMbXZyWUVzdUZpa0FPTEJwNnpMbHQzTEFpa2lKb1hF?= =?utf-8?B?NGt5NFMydXNCYzhzK3REbXlZRERHM25OV1NRci9Td25DZ2tLN3VxOWZSWmpW?= =?utf-8?B?NWdibWdKa3NRemFoSUIvd0ljSS8xaGVwZEpLTlAxbWhuUVl1MjhJbzBiQW8v?= =?utf-8?B?MXRLWUQ3Y3B5MGlPazhVcENvVmNMem1ZMkVXNC9iUUJCcXlZV2JIQnNEWU1p?= =?utf-8?B?Z3pZSWcxUStRYldpcFRQR2YyWjE5YkxSZ1AwUTdxcitTQjhndGpLd25TZVAv?= =?utf-8?B?T1kzZ3pJQmdYWkVTOEVjYUk2ckxSNng1M2JrK0xtRzB3VldEdk0zeVBWdzZi?= =?utf-8?B?Y1dIM3JsbWRCbEZnMk5HQXNrVzBnbHZKRkcvYnZkc051ek8ydjNEL1JGUzly?= =?utf-8?B?VGtWVFJ2V3FBOFovMmVoWlBISWsyUlBBdmtXOU1ZWkFOVjd3SnM3R1djNUVC?= =?utf-8?B?akZoa04rVFN2ZXdhdlY1SGxFTnl6M0ZuWUFTbzFMTkwwOWJvUGhXMDlFS3Yx?= =?utf-8?B?RGFMV20yb3lTblpJbFFPeVl4UXk2cmtrZEFFRnhrR202bWlFYXBqa0hYV3R0?= =?utf-8?B?WGZ2RDRycjR6TjJKY2h6NTNmWWZhS2c0Qnc5ZkM3dkZuaUh4Nzk2UWl1RnFj?= =?utf-8?B?VXNFcXRUU1RXb21XWXNCNXh4dnFHUHJxdjNCOXpRPT0=?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;6:no1rX3keIh4lMLs/vK7Anx3n/Ot7GMGfAyZzhqWSZ7rQIqDsxddWgWjNL5KLLXoqWoPVjqmRYjNqG8NOmXjeckBYpIQI075s3UoyXAODfxkvugUfXSrY97VHza03AX6cX8iFhyeOWg9xybcYJC+JJ/Y1iYOGWXHI7CvSEpTaI1guzzw0nuKztseGDJfcLxARXODMDji68g3hpteJ2OyECNxmvVqJF/ifiVZFGqjoYrwBRGgqxSI2rWaKLqGraPjOgJesB3Jv3CzfEpkxl5hnDajAftNiray2rVP2/TmIMgl7spn3wjDO+Dj6q9+yewY/Cu35vNJJuzGSYEzOJCXdCQ==;5:5jjskBVEtqIzynCeSA9eHoEitQJIVezTJvtBpk5Wz6t40fo+RssP0aeGBbLwYbMTq5HueI+JKba2fVF0eIJ07rosGKku5pZM5nRd6F1dyt5i0tUoVOPn/ca5+XvsPemj9lRGp9Ycp+ki1rSRki1EPw==;24:GPyvdmb642atJ8CcCdcQQ4C1o7ORs8uEPFXyayIdiyD+mCpIYUeTZIQmm7YKMtd6xNmV2rEYVwQrxjWuT1huwjy4MeA2j72ExmLkLbkdEvA=;7:tX4hQdkqzd/3ucj9a5I8UQ2FhFxhAjzsq2ww0tEnrxKF50T2Z+VcYopM9DrV7Yr1iu7djsvOCAoGJU/YMeEcJBKhJj+GO7QIjTzzYk1+1p6sPuhehR7460D/KcQvdfKRFXucJEwy2TgfdTwZRFfrmU09qDXr7xq2WjuBfOtZUr08svtUmsz3+wNgc0upVnbZ42W0HLmviOMHJ7gRSoZLB3au1uIIusoBGehAMcSPzdg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;20:7IoMIZdOyd4RCzqlrimKZwzAbh8SB5v3hSIg5MTWNfB80pPWHlGrEAoFcrxrKFTBYXNEwDv4g5gRsI+duwgQO/8msRtB+kShtH5Wr8mEkYn/w4UnKGF52Sbw666jyqJzBaTjAO2XVqvFsyvK/HoJztLEAkMDIZbmtAblMfgjJRoYJPg9yqIoG2rB/uXcW9yX81f2L4AL7/13l0iC0IyOHzyMon9yUnueRIgMkDKYBDUJkQfCaxIjkBAMQ0pUO9vP X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2017 13:17:13.5538 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0150 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On #UD, x86_emulate_instruction() fetches the data from guest memory and decodes the instruction bytes to assist further. When SEV is enabled, the instruction bytes will be encrypted using the guest-specific key and the hypervisor will no longer able to fetch the instruction bytes to assist UD handling. By not installing intercept we let the guest receive and handle #UD. 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 Reviewed-by: Borislav Petkov Signed-off-by: Brijesh Singh --- arch/x86/kvm/svm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index a47981714433..81fc20998423 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -1448,8 +1448,10 @@ static void init_vmcb(struct vcpu_svm *svm) svm->vmcb->control.int_ctl |= V_GIF_ENABLE_MASK; } - if (sev_guest(svm->vcpu.kvm)) + if (sev_guest(svm->vcpu.kvm)) { svm->vmcb->control.nested_ctl |= SVM_NESTED_CTL_SEV_ENABLE; + clr_exception_intercept(svm, UD_VECTOR); + } mark_all_dirty(svm->vmcb); -- 2.9.5