From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751968AbdISUr3 (ORCPT ); Tue, 19 Sep 2017 16:47:29 -0400 Received: from mail-by2nam01on0056.outbound.protection.outlook.com ([104.47.34.56]:55572 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751660AbdISUr0 (ORCPT ); Tue, 19 Sep 2017 16:47:26 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: linux-kernel@vger.kernel.org, kvm@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 , x86@kernel.org Subject: [Part2 PATCH v4 27/29] KVM: SVM: Do not install #UD intercept when SEV is enabled Date: Tue, 19 Sep 2017 15:46:25 -0500 Message-Id: <20170919204627.3875-28-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20170919204627.3875-1-brijesh.singh@amd.com> References: <20170919204627.3875-1-brijesh.singh@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR04CA0071.namprd04.prod.outlook.com (10.171.243.164) To SN1PR12MB0158.namprd12.prod.outlook.com (10.162.3.145) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cd801949-9062-4722-4ece-08d4ff9f9ec2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:SN1PR12MB0158; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;3:bl6XIwYPL8TbyRjo0GwD+sWg4ra+0jUoj5N8w4CNT/EZFBuelkiQWsf3aUQg70RaL38Xt8AYTuCNnPQNaGAqnHTfS5pOVjEkaOYg5jnlQvdh5t+o9m8BX/XfKQpF/gKVliAuSDx1ay/CFYLIsTxrjZlqvzLdh6+p7YqCvgm59ozVZUKBhAwXl3x7phmJD3arLEwkFCXlMfsDMxmHfsCh7PvxoXmOVOv5Nwh5pLKCoIQvPGXTZBOrJdJDyd1uJ6Ou;25:U/E5JthXV1Q3fPmipjhJ27KggtFKmtSWBV4sAwLAESBjBZ2rak5ChE+tpPd83bvjBg712/uwJ/3ESjyqI8ln7aOcFFl/8L9bxwWI90f2Y/NXI8zRgYwW+VBhpZCmpJNTVYUZ+LN4kdjDiskauVrAA9zQCuDK9IcFZ4zI68nlZfAZkEozdPD6BsPaz11co+jAYVEWR2NE7grPk3g7ElvL9l0AuUgi9ySNhM5I35CUN2YB1uznZ2vUPgy2nsEbxvhwV2NH0zJ9x4A0OFpIsT41bsvCGLDOtJ8qYxn6J5U1HaUuLvQ4jXUWhouwocbshIA1FEdQBu/9n/0SYC+2Cgtt7g==;31:NTkbUyNkHWwvq9yGmuOh+9/Eh/51eQNSyEXSNqIytqtgFfscyVHj+ny7cqdW0a5WyDmXhkbauYSW4q0sGQ9FBuCAIc5p/MYw20+toLudUc3roJuUdml3jT5QKIBVc2IW7FqTWFSGU9IEchd+PipWWRSQKtbM47AwvomODmq8UNNmJxKYv6sCxGGtbr7iFSzlXEgSHh6ARenB7+RzseU34dlHploys6FmYw6ZkxXeQ90= X-MS-TrafficTypeDiagnostic: SN1PR12MB0158: X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;20:b/LXjmbCs1sq5sdTl9W11t5xQtgdGybThJ3OvkcO2qaHHrNRMYvOHdV2BdtgkFFGp2OEla0La0XHbDQbFBI/sTqoQjVGHmLEUrxavSNRQqUaVo2HINlzxeJZKLlTHzLeDZXnt01p7U2Dvm88KENGQvI8ItW2iXAbUGToyB5q/CGsf+qKJnsRbsXGG6WQwDpcCS5+fFGQDwfyeaRBAO94ndz+6TzVz0XVASPlM5lzIv2iSFJTJv3ypnwoR5BqwuB7VXNvxRPysAb81dmXsGsq9piP8qD5fCw8174lMrxUm2xWrZhgbUIZby1yX7rTlmH8ZDt19YzqKTa3IvANTqNB4WF4q3OGDVY4kla7YVyRYbwUO2g++GFym2uBY2JhUHAYtEqNKf91tw3kJz1tso9Brp0/WNmjUrnsMAu8yKTPywHJdPqMnDCSySlRZQbnd6KQVWzPUjAO4NiWEOXL0w0CSSiE2O373T9A/l+CETTwlV4siXJ3lVej1nuLWoFAsp7Z;4:reSFjSRhioBx4TfvXB5lhl8KJ9hG2/3+v7BRKqUAS2vdav+Uy1oDvz9GXJM95t7QYPGI0Lm1unCxED/8Czr1eJ6Xj1iPrMe+s8iLMZriETQvJClGsjtAG6PR84+4Lo0OoDdgkR7qWpi8r3Z4M3K9VqN2ITebmd/eKkyJunfi+aUorPVCL3phO1XRY+X7bBYpUL370ImwLu9WTYRJ88SmWG5tx+vt0IPuKV7DSoLQTSWUxbIsIUvcKIYkPnnMqmxICEGI1VYNjTXx2mbcWV08TNdipqUc7DLZ+oJo128ex7MW8NnSE8rb1PBGqg+0MJJj 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)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN1PR12MB0158;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN1PR12MB0158; X-Forefront-PRVS: 04359FAD81 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(346002)(376002)(39860400002)(199003)(189002)(86362001)(50466002)(8936002)(97736004)(6116002)(3846002)(7416002)(81156014)(8676002)(50226002)(2950100002)(81166006)(316002)(478600001)(16526017)(6666003)(7736002)(66066001)(305945005)(47776003)(6486002)(189998001)(53416004)(25786009)(101416001)(2870700001)(50986999)(76176999)(53936002)(2906002)(68736007)(36756003)(106356001)(1076002)(4326008)(5660300001)(105586002)(33646002)(23676002)(54906003);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0158;H:ubuntu-010236106000.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTU4OzIzOlN0RTlJVFFVNC9WR1FZUzdKUnB2ODVEc1lS?= =?utf-8?B?VFRqU3Q4QzVNa2xUNjRSUEZraW1QaWtpVTh4QW02bzhiV3ZTRG9sazRTbXpk?= =?utf-8?B?SWZ1QTlLcDBzMGQwaHhSelFJTWtHSGZBWWc2RmpkdjVtaXVTQSt3dWs0OXpy?= =?utf-8?B?eE9odHZQcXc3OGk5K2ZCUERHNVk3VW1ZZERaRXc4MTN2V2tOVGF2SG83aDNH?= =?utf-8?B?S2Y5dFZac25MNWV3ZkVEelV4N3VuVHdUZ3ZVWDA4U0xJalRsSWMyMWFjbVQ5?= =?utf-8?B?SW83YnhCR2JxMi8vOXdjVjJXeDdlN0F5Kzl2UVB4S1BmVnBKb2VvNitGN0xy?= =?utf-8?B?SEdCejErbVVmb2xLSTZJMk01THdsOUZ0UlgrVnhHcEpLUE9zbEVHOXZuZCtT?= =?utf-8?B?V0c1UXEzaU8zMXVBaVdjb2xHVHJPYzd2aWdIMlB2eDRkNThzR2VtNnlhMStN?= =?utf-8?B?dFAybEpxUjFvYzdhRWE5SmtwRFd1Mng5SWg3L093Z3g1NUJOUmV5YzkwSGF5?= =?utf-8?B?cUdndmNydWNCMjNrZE1BV3g2Q0NxWmJ6L2xSMzdTU2FFeHlEOVpNN3l5WGpi?= =?utf-8?B?Ny9xY2ZtNmM0VVpiNU9CTzEwZ3ZIRXp0MTFmUlNkTmlMRElBT29QUzRSdmNR?= =?utf-8?B?aUQ0OS93Z0pGOWEyQW5rdlF6NUNaVDIwRURzVmtKclpWK2trMjk5T1NrVkhB?= =?utf-8?B?UXVia0pkcm95ZzNkRVo2QnhvR3dwVkFEL2dNSHBBazNSWmluUVowMTFPZzgx?= =?utf-8?B?Z044Ym5mYkt6SVN2bHBaQTF6ejVnYUJrcDlsSkdseWxKaGVveHZsWGs2amxZ?= =?utf-8?B?Y2Y0ZlNYTW9rR2hORkRHWFlFYy9lWVhwcFo5MnErcnJza2plVUhWK256M3Jn?= =?utf-8?B?L2h2UnV1UFpJc0FHWDVTQVVReEtENHI2R2lEY1JJZHR1Ni9XN0l1enFSanNY?= =?utf-8?B?Tk44MGdNNHBOcXYvR283cmdMb09VUERocnBmQ1hVc250OFdNZzI3VVp5SUtq?= =?utf-8?B?NDdKN0Y4dHZIL1BMeE5MMHVwMEZSSTdWMEl3VmJISFlIdDhPb3ZpRzAwbGdU?= =?utf-8?B?OWo1ckY0NDJLemVjUXorNzlqYW1YcWRmQ3lvZ0tyUVNEWWI1bWRxSDVXOS9C?= =?utf-8?B?TG9ORVpoTlQ2U3Z1WG4yUkhCTWpsZnF1bU14VWlyWVF4R0JYdkE5eW5XZG42?= =?utf-8?B?QVJEajEwZnR4R1FvWm5DazZwNVQydDF5cXhhOXFJV0dqNnBNSXF6cUczVTdv?= =?utf-8?B?RCtVamZrcVlLTVFRcGxqS0pPQ040K3hMWThJTG1jSlZSbDFrczhMQWtxdVY1?= =?utf-8?B?UmxabmU2OUtyZW9ha0ZWUUd5SWxqUFRaMnFoamlWcDBvS1NCOWNXbFVKaWZL?= =?utf-8?B?M2s1ZTA5LzY5VjRtM0N5WGpXcGVBNHNMVjZENGdDN0lMc3RiMXc5MUhwWXlk?= =?utf-8?Q?+8QoaZeMqvVHr5YFLV5VeGXtes4?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;6:AMCEQFOWr6qesRBsQpOCufCCG6F2bGzYpC+A98FSZI0RRcTRkmE+ED/I3bXcZxlry/G4ZZgkwNjllForgjKjPbvtM7LhjWG2aqc5Wg2piLL/b3tA9hsUI33YM+XL2E+MQcNLBCqcBlo4vrFEW/JS69G0R7Md8twccxKNXuZzxohpBKt0cGb0jZBPo7c+5cvoDYD5KiIL/IWtQH48VH4Xj0wgzusZiVsa0Yb7xd8pvS7bFKVK97Mgw7jElnyVyLqRb4SsYWkYMTnM0a4qM+q2mm4o+YZ0wxqGPfHrkEzwg/xh267w0BKIOptvNsFS2azggPBDXPr13PgKoi8aIR7LEw==;5:D+2qnfJZxxGff2MmAZdCIiOTk7jh8Kdz+mL2Dahkdh4lGaQz+8w+eX2M9UjX4yKWF3XkuS9onjQrnqxfBi0f2JGAVRsrkEMlvRJ2pU4Un9/Bicyevvbyx4J8qeIuE389aAnX6JkUJcPO2BEuPeX1bQ==;24:j18nkMNzTq3/yyhndw15Qny+fOwt24eoJRwV+F5L3EIuaJhofvrYYP/NjIxM/wp5rR2obVFalIulUz/F1JHekDuMyzxeXBz8YVfIU4exDCk=;7:wtucgogp7TPRVFDlECk2pHBJDZ+0Bz9hlUZbfn57I0tJUYUYncnqdJSWqzEac8edOjPxjf/YQzbLl4fxlduvHkvdgfANyh/ws9OSeVAycdWAaOz8LYQ89DNE9GwGFnvVMV8b+nDtZ5n4pC7l0fjTb7hCd/ZiCceViBTqnJ39+hZSLFKkbC+/f/XtGmrE84hfLda2Ck4m8ZF0FHQznNAO+4epcHmNUAQ9WJXopqSGev0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;20:+32nYbbmil5npmkS1ZaTmUom54wGuDucVCcETgmM1dbZ3lVLfs4V3a+GdXGyMvCftg3ObGe8vlKzaRG4pXN6zmciXzrn37+PD9DuLUSg8rGxy1XtWQ/zQzcT9Mmdi3Vo7ev6sMEjcCYqHVdkrnfbAtax5W602HRkc92s4+kHR4ICO0ALsUKbun77xfbeVnPq3qiQDDaFbcwd3cUGMChEmcXeAioc/AtD0288YCKdPg5V8lCxSJIOY9zGtq8eUbIf X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2017 20:47:18.5751 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0158 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 b9906cb59238..d997f63c765d 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -1437,8 +1437,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