From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935516AbdJRMUI (ORCPT ); Wed, 18 Oct 2017 08:20:08 -0400 Received: from mail-dm3nam03on0079.outbound.protection.outlook.com ([104.47.41.79]:39376 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S934220AbdJRMUG (ORCPT ); Wed, 18 Oct 2017 08:20:06 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Cc: brijesh.singh@amd.com, Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Joerg Roedel , Borislav Petkov , Tom Lendacky Subject: Re: [Part2 PATCH v5 31/31] KVM: X86: Restart the guest when insn_len is zero and SEV is enabled To: Paolo Bonzini , x86@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org References: <20171004131704.13266-1-brijesh.singh@amd.com> <20171004131704.13266-2-brijesh.singh@amd.com> From: Brijesh Singh Message-ID: <639d43f6-c403-4fff-7152-9814d9c5b9e6@amd.com> Date: Wed, 18 Oct 2017 07:19:59 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US X-Originating-IP: [107.1.192.66] X-ClientProxiedBy: CY4PR19CA0033.namprd19.prod.outlook.com (10.172.173.147) To CY1PR12MB0150.namprd12.prod.outlook.com (10.161.173.20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3f3fcb61-9366-4909-306f-08d516229001 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:qChTDwUeOgoyMSilddmvQAW/CYllq7j6ZfMvgFDTNAG2ctx3e4+FtTLIIeaEoiZ4Q6b2VmZ+1HAiwULrjQQR0gyRyKA04tJV8Bn0Ne6wbrKXH4K4FjS+C6N90LtYfpBpI8cuSUVAA0kFF62SfUCTs/nIX3aOMJBGfLWiYOxRl7YP9kmRNhq1LqWToCZU+kjTuavHJ+/tHpQHas13Ss+7/ALmIn/J50uNmhh6IZm9XodiFCmzgmFBpyAPwmFFncgV;25:l8M6viOKcmAf3AxmLX7dhfYfGCMv09xKDvAeWQqJEoT/+FgXE/H0ttBRWPhlCALoaSTj1wI+JM1SGcyLfaWNgPeYIm1udGDKaKASXBtOk9pd41xRRnbWindz04zGQh1BcVxun1xIpgOSd2VQehJkExrfHCuFva3nLe6m5G7cS8q7q9Vn0Pvk4XKhat5NbKUqcvGbPHFiCmWCiAm4yeAVSYB3qExsyduv3xeBpX1HSC3jraeVJnCt6xGsQ/IsgzaAvI4FOcULCYgiWC5UCoMCX5Bhu74d0RuPoAz+uR4jwQMuKzgmgXcrsidnwpkLuAWvnCtFOOy6KtY/H8jp1zYZ6YCTKDrdV2SgPl0Kq/B3VeA=;31:eWVKxspVK1jnTeVYZKEVcLlgIn9mC/IrY0204Z4HGrNB6Gt3NyXmnKJSCVu+1JJmU7rMgotq1UmRXr+RtbBbiulkRvMi7nHmM9skc9xediOpIOLcLrmpO0Xn/JGAWSEvrePaKkQbob5V05THIrzuxbe53NMQH7NxpPDTFuaGWqF9S0DRMDqlWZaXPMJBtYlXOcqFMFa0RnZAsnQJBjg+y1UHJ+AIjRFBstLpnjTnSlw= X-MS-TrafficTypeDiagnostic: CY1PR12MB0150: X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;20:DuIDDG3QqfGqn9YmqCvW040gAJj7HSYLEHN34sk6v6h2tHVuN1gZjjz1aR6polSzR4GKqnQoz90wQ77IJomJRZUskbY2hDSF9/0anJZX7HPWs5IXPgWOQLCYfOsEPZDfrjbb9nAlt2ebl4xSsiRqeYz/JSoKX/wGtDsLqvNhN4JIKYJSXnuaeO7foQBdrDKiCQeqXEvgO1JRDre7jnofWziWagXK/KiuTHYkIFgwYYL4M21AiDo0+IpjoNDycE2PlfGClJ48a32XpO2YVSFZ8sECw78uirXQuTDsJy166EsfXUwXf1LBxtriD8ro9iHsXINHbfHpd2OrKFDYviuf69zzc7yl2w1SVmmZHBJ3S8jptiXhBRfjig093RCrR7XfEBZS6ActZJbgbnIBXvg716Rp1fUnoh0tJS1emgYr13P0TYjVUkNrSTy9LOdpc2RlCG5/U7DxcaU+bN9BdGe5O0QFgkGUL5KiePgbGEnuqGPa+rp/cbFsw4tqyBb8kNTv;4:u3nZx7boMUDL5rjNnUaLAzFgk989pFUUHSeXd2FTagjRwdLc4K62h/SyKmdaIHulob2AqzPN1rMmH76aZCXgqZ2/RHrcWWwpqjsCT7HiuxeluUL8XTgAM2DeanXo1mMLwYk/0VH8hAJucTrOtjVmwPXDKEn5Db+gZ7iBMft1KnkNzejpleeLdzt1YmPDHAv9GfALumsrRDc7er+BLvoh+hZuYPJHJTFADdt/+mIbj1LYdZO4+galkFJuD4z5rvLk X-Exchange-Antispam-Report-Test: UriScan:; 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)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123560025)(20161123562025)(20161123564025)(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: 0464DBBBC4 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(39860400002)(376002)(346002)(24454002)(199003)(189002)(377454003)(86362001)(305945005)(105586002)(106356001)(2906002)(229853002)(50986999)(54356999)(36756003)(2870700001)(5660300001)(81156014)(54906003)(76176999)(16526018)(81166006)(33646002)(2950100002)(7736002)(83506001)(7416002)(65826007)(316002)(58126008)(6506006)(8936002)(101416001)(6486002)(6666003)(64126003)(6512007)(6116002)(53936002)(3846002)(65956001)(65806001)(50466002)(189998001)(66066001)(25786009)(47776003)(4326008)(31686004)(6246003)(68736007)(97736004)(31696002)(478600001)(53546010)(8676002)(23676002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0150;H:Brijeshs-MacBook-Pro.local;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjEyTUIwMTUwOzIzOkU4TTZPemd4aENxUUltbkxtNjBwZmJicG5x?= =?utf-8?B?UWZySmR4SzdrVTFWdVlXRXVQb3MraTdyUjFJODdJdWZkTXpZR0QrUDlmdFdO?= =?utf-8?B?eXZlTkEyTHpueElrYzN5Rmd3UmdQa3VSK3RTVVAzK3RNOFk5TzJKWU81cFU2?= =?utf-8?B?bG5jMW9YUWhQelgzSmkrNFVVa1NzcGw2azA3bG1QVVdzek5mZmgvaWUwWS9N?= =?utf-8?B?dVJaZUNUVVdSQVgyWjNOalJKSGdVL1RENTU4VDNFK0NCQVBBNUZuNittNzhV?= =?utf-8?B?WFpXeUpJdjRWTktQUkZ6dG9uaUFRQmhNS0YrY0VmSnVsTzdwZVgyQk4vL29Z?= =?utf-8?B?b2lWbWFtcVBVTnVlektPdlc3TnRUMFZKdFJsRDVJY1YyaW05WklrRzBQY0or?= =?utf-8?B?bDBUS0ZaK29TOEJkT3BoL216My9YazBZZ1o1Q3hYYnIzNEhTaUVtNU5FZHVh?= =?utf-8?B?b3FvUVpCeXhCZDNBaDhMcENTRWhOSGdSdGt6b0M3WjRJaEZYMFVZUldYSm8z?= =?utf-8?B?YXpRS0NRV3ZIdDQzUzlwVm82R1J4MWJtTmxNMTVvaGltN0hIZUlCa05XVmR4?= =?utf-8?B?bTgwNmRoU05ubEJGMlN6bS82N2RhSmZHa1VrRlgrd2UvdWN2QlhNc3FlVGFI?= =?utf-8?B?aHRBUUdBZXQ2U0ZpZXY5UmtsTDZwbElCc2czRkFiNlZWRXIvYi85OVYxUUFl?= =?utf-8?B?cWFUc3poS2VSeWpidVl5TFhPdXhPM2tOSlROYkE0cVYrYnlOeUR5ajgyYWUx?= =?utf-8?B?WW90M1NZVzFKRUVSbFZGSk15cmRhTVZsditKb0FXdnhPNGJQeXpXSlVhYzBT?= =?utf-8?B?T1N4MzdDMlhyMERWcW1RbEp1bUZSN281UFlaWTNxeEVpZnRZNTFiMXZlalZr?= =?utf-8?B?YVYzTmQvc1dQcU5RTmtXZys3djhnaWYzUER0VFd1d2tyV3pXVWRkY2N5TTJn?= =?utf-8?B?NHQ3SWJNVmRVeTE3akxTd2x0ZkdGKy9oc2YxRmhJQXN6REVEUE5VdVNDWFpo?= =?utf-8?B?NlZ4ckR6S0JaaW0rQXRwMUhXZXFlU3pVZlRleFFNdVRDMEF0QUhoVkZZS21T?= =?utf-8?B?RmQ2dGNVeTJwK0J1RnRMamRRZW0vN2RrbmZsV3paRk5FaUVkQUEybXFRSUZX?= =?utf-8?B?L1NvRmk3YVI5SjZSWnpwbFhsWnd2TmZRbTV6MU1HV08rekYyMTJybU56Wk9F?= =?utf-8?B?NktTMzYvQUlMbk5ZWkFHMXB0RHdtVVR2aEhHUUxXdzl6YW0yaEFiMDFoU2hp?= =?utf-8?B?MmcyY2pWRHh4QmVEd00wVVpDUWNWWEg1TTdXNkxodDNRYWtuTWpZUUVoc0lv?= =?utf-8?B?YnNwYUI3bzVlSTlHWGhCRUp5bnpNTjFUV1dJeHJiTjc5UUdCTTA3NTNqOGlh?= =?utf-8?B?eXVFQTRMc2psekdRL3dtdmNTWEtSdGVrN3AzL3RyM3V5ZUhXM3VFK1lGYklt?= =?utf-8?B?dDFBSWRObjVMQ3UvNys4K0xBUlFGRUxsSWtUNzUxMFAvR1ZGRUZPQmp4ODRY?= =?utf-8?B?SVJaT1ZhSXFZRkkyVDR1aC83RGNXWkxBdndxeHJnaXBtRllHaFNNdFRRcU9v?= =?utf-8?B?UDVxcEM1Slh1d2hqWUVFbzhDRFJsMC9ERFczWXNvekZ5bml3cHJOTWpnY3Rp?= =?utf-8?B?NTBtNnB2aFNhZU8xYW5HYW5MeE0zZ21zandZUUwrdlBpVlV4aHhMcVhCdXpM?= =?utf-8?B?YVZ4YnpueUlRdi9nZ1JFd3ZESURXV0J3NnBZelpuMVFiZHg5RTZ2VCsxcmtW?= =?utf-8?B?cktBaWIzY1hXVVNMYUduNk95TnVYK0tCa0hlVGkxNzFPblhIcEJqbGNtZXpV?= =?utf-8?B?Wm5Icm5tSkdhYmhjM2VTV3htQ0pXV21URzIxd214U3pBeGc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;6:calOcZi58U68YOipKDWb4WxDgj/wqHiWsP2vc+sLUBXUDvROSXaZEwHf/voFv5npBGidLldAnRjDSpVJjHnBcKyM7Hq27yJgBy2nEJgccEColFP3fawgWP5jtLkgItFmh6svh4zZ2+5h1uXdq12dodsdcH4e7Q82+QiL5i9Essok4C5qVtjmdFfC4l+nWN+uzmWLF8O57Zhzy6xeREhtGOh2uSSf0KQSE4QCmjcHwu0P/8s0rVIC8+0PVGsjnsLXKpfalZ2zeO4qt1vYIvvuOyvn04B6xdMHZXiU3nBWZ+xjF9dQtc0vJsyfzNs8QLOmIKXwYjLatm5w+xCDD2RQng==;5:8lpOsWZrPtcz56T7D6D3RbFz1gIqd62Z2Lr6AeiE3PfFeOK2HCicsiGD2W6YbknvROSlPh0zlJh3KFPvvVlP4oDOogrCKnJKIwTgXqNLAVYVZ1qVlaklYn+swAhGkWKdQGg48pvHXpQNbKJszOfTXg==;24:yuG/gHxCtyvbjEp49fre73bluJ5V0rFjTrk8OJ7u6zw0WP18zcYXFvT4qpq6JKL5sF7/nIWoiyLVjOQWkc+V2JbKQpl9KTXjWneZ1bjiL30=;7:naigP1CfH4b8B9JSLXh7E9oYHPRdYBkC0U+Lt9x2/NxX5WTCyuOq10QoolVZh3tK3BRCYMXf/xy1ZxvbSsCnM+7D2wuBQeqakVMaKBDctaKSbJtfUTvTQ13i3Ad5kGyT0BElmfN++MoI1BmrxPjOA6Z4t9Wz1weuA9BjWFywypzPr8yedcjuhdVSwRzv/dHuInECXH3XiRLdmHGDrl8rdSuOPT9t7XU1TK6OhNB8sAs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0150;20:RBy58BzCU1wAicCVTwAvHtYgWFB3hLxnrC0iPbQ8wmOHAroA7NlgoyHYwbkHAImzT5TOGvOIPxka+VZIG84a6J+qbU4UF2/C8LlzXLo4iA20hIcVUfj9q63EIrfrzCqpg6xM0qFQ0dTc7GgYI+z2YiWGsksyS9WDTf2nhKtoWv3eMnZJ4I+4/b78AKQD1aPicy69MwSe/lhMrEkuVEBk9Kyv7vmFjNwsqpDeTcfWR2Gg2UYaqySRkJtOORW+/Gcy X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2017 12:20:03.4270 (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 Hi Paolo, On 10/18/17 4:26 AM, Paolo Bonzini wrote: > On 04/10/2017 15:17, Brijesh Singh wrote: >> + /* >> + * On AMD platforms, under certain conditions insn_len may be zero on #NPF. >> + * This can happen if a guest gets a page-fault on data access but the HW >> + * table walker is not able to read the instruction page (e.g instruction >> + * page is not present in memory). >> + * >> + * Typically, when insn_len is zero, x86_emulate_instruction() walks the >> + * guest page table and fetches the instruction bytes from guest memory. >> + * When SEV is enabled, the guest memory is encrypted with guest-specific >> + * key hence hypervisor will not able to fetch the instruction bytes. >> + * In those cases we simply restart the guest. >> + */ >> + if (unlikely(!insn_len) && >> + kvm_x86_ops->mem_enc_enabled && >> + kvm_x86_ops->mem_enc_enabled(vcpu)) >> + return 1; >> + > Is it needed to test mem_enc_enabled? Could it instead test for the > availability of decode assists? We can use X86_FEATURE_DECODEASSIST but since mmu.c is common file hence I was not sure if its safe for the VMX.  Is it okay to use decode assist feature bit in mm.c ? > > Thanks, > > Paolo