From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753471AbdGXUIJ (ORCPT ); Mon, 24 Jul 2017 16:08:09 -0400 Received: from mail-dm3nam03on0066.outbound.protection.outlook.com ([104.47.41.66]:3232 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753431AbdGXUFp (ORCPT ); Mon, 24 Jul 2017 16:05:45 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: linux-kernel@vger.kernel.org, x86@kernel.org, kvm@vger.kernel.org Cc: Thomas Gleixner , Borislav Petkov , Joerg Roedel , "Michael S . Tsirkin" , Paolo Bonzini , =?UTF-8?q?=5C=22Radim=20Kr=C4=8Dm=C3=A1=C5=99=5C=22?= , Tom Lendacky , Brijesh Singh Subject: [RFC Part2 PATCH v3 14/26] KVM: SVM: VMRUN should use assosiated ASID when SEV is enabled Date: Mon, 24 Jul 2017 15:02:51 -0500 Message-Id: <20170724200303.12197-15-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170724200303.12197-1-brijesh.singh@amd.com> References: <20170724200303.12197-1-brijesh.singh@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM3PR12CA0049.namprd12.prod.outlook.com (10.161.151.17) To BY2PR12MB0145.namprd12.prod.outlook.com (10.162.82.18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 94596c61-9d3f-436d-c933-08d4d2cf1340 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:BY2PR12MB0145; X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;3:mZXRrtmIghtq2OYJdetNnjnkthULCKhr5mFtn+QAtt4xXS/lnnpZiUL9Nt30JY7PgHh2/ivM0dWXtkP7b6CW7n6EUpgRqpZBQyF3Ag45piZkmwal1NCu4f58dLsdpcDhiyUeyVxRYNClTDcr2XXR7HMbo6+pXwg4nKY2VavgPMr81cvkgVxxfBECfgZcTSza9lFAukXI3OHFIScNAsBT3XnpPzwNsr/+yd0xXSetmk3gAWVG4tuc2JfxYNyGUIGWeV+JkgwGFcZu9zyLcbQ2p8GAL5KDoJqrIhHgkYS5Ny4qsCgJ2hSnuwKopCK2X+V8ShtLdxYDl9nqaxR6WBUPaWlK9G9WtPpCt+oXaXxdwZWRHXg6nL93JAC5g9wdQBzS0EOfh+Y1/NsqraZ4XRZomLm8wwb90rBL3BMSd/wPh87PSQloyXdmOKuS4oMr3qXXDSIfkLVIT4nTk5qbtWv1qiJ6y6UUBYwu1xyvlxaKgE9+uVjJJqEQoPlbGVnXcSCrDktzmC0mnHgvA//10tf2AXcLSSqxLKenCzsGUje4tY3i9OXpS5d34vsd4muFlX2573DtUW+xahkLP/5A8gxA7j2pwDeRoKAx9eYQr94HuNF46TaJ7Y8GHXlRxmuS/5QnSML80Z2SxTJ28//KoycRNxP3Ymf19NZIC7KefGW49MVOnr71wEmYHuGs+tNR5/ghz4ySRZK0ED4ADEYQygtDLKF78hvsgWBD8q/Jy4yhyHV26/pxD8HuIw3plrFmQSuNYzeZGY3p/DyREHYOJkhmNg== X-MS-TrafficTypeDiagnostic: BY2PR12MB0145: X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;25:rDhj1jZCKmi0Qq7DEzp7hZlMEtogpasvT+/vRtkwSNkqA7Av3f7g+8qsNRbjNKUFKxAXP4CQpVbIZ8MtQTp1l6CgBkGQJJfjlrOqaqM9+2Ej+mBDh+N7w0ISGV2FRaAHd6cCLzl7a7LclMiUFSopsvBt5yzDr6IgaLZSYWZkDoKi1txRwgaKXKc58loAfsMDFdOt5te/pemKl5NQITfW8w1B5cIYf9Bnb3n61w0RA7P0uEVCIK3sDiOBNKRkTixpM70wsji4k14Bvj/Q/tHMTkID6iYsZAVuJkt7zqhi8VOR+gHrcjVXOI4//v0tdDoqIr3QC+Ssn/SRDMpTN/j6c+KSlyRmJyl15zrag8s2EbDIttjEUkcbzV1i3TFUy0Ng+z2vPdFrPfmmx6CKeWYtyigc4HaASSOAtr0WZ3ldcNU1YxHWju4vlCSvtliqMIHb0fta4lbPYFSMwqfb4MsHezQ2zt4uFMl/yJh2JobCSKjY7S9aKk6F+JX162E4PgKceGAO2dr8RBctt/YF1tIe0hPfWzftjdRnhHeINP0LxJLyjutvpF3Bd1PhqSzAjgQcGo5ikH7Ni5XKpIBBMRaflwM4Gc4j+pJCK6O3rqDubL8EE1RmWar7BIw7KQDYtPRoRiPgO6xFplQBp+D5/2MlRZw2y9DZFY4v0pCA5B2pX6kCtd4RS8V1m4sJCAr/VweQ7QHxUh6CtCVdO6GMEq6+UeE+t14qcsD9HGNqx1La1flacup37IcoJoxpyOtPD7NpQLpRUPFet360Ae21zq2pM8TvvXDfwV65VA3nM4YVlykk6ShuNW35PZGMnK7cMyEFumIKzx2BksD1RlGm7gKHKyTCUOze9IcFy+INrboBR581iqNk3plzePq1zL/CgUL2J4qBi5/KcFJ1UG3l6yRzj1cwKLgDqldJBCbEz3CuJso= X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;31:ImaRBSx1ZQxpi3amSjVvsv2lNM4DGPV0e9d5dltvHTI4d6PlFvZFoYnLfwfvELUYbIpe3eCBGaiVQ/vsdgVyw9xXXgQ/Awi41C/8tnIXHfROaUcVxW1n0Bg5+Qjuudr+Qj+4tSwschEQ4uNH3M8l4pCUCNAWRj+1/r6KLq6BI61FQK4Rtxrsn85YsgS1jvFeXIm8RxImFSR+GAKmJnQFXOUGuZyZ7RbB7XSM2Anz8FAkFnAFG/iDUS+oFylIsUlezxIRjw7WfSrYGxAUylw0P87lIJL/tQ6y2JTkB44a5bZ/zaSzpliOiiixyYB7ra9V5+u5q6u0p6YlevvSVYO37jGhv8eSG25JoNBA5LvYaBlMre/ndIf6/Mxcs6zhGM5XD3A62FdqkOReiZzOxvCksK24qu0CmW+4R1nLoyMdiUit1ngPUAJ2WecGj83vu9d2m1qNAXH6VRQRd6B9HzMcfvIKxRSVXtzwQSSwyx6fPn24eDC/TCu0VRrtcd9PPPwUID5vKQ0pajG3oNPt+gZWm4OAit4Gc9RV4+6cKvaobYbnDGgLNNj9aj0i4Wg/FdsG4RMozR3UnSc9HAfTOcGz4rBU4KtOdjPMBoFLCNHAHQR+ry3OZNsd00oTPWlzkYt+A4Obg8EWvWW8ZU5AgfvYKvBOe21OT23nPt2PRyeuGLM= X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;20:t/hd8jt8PbyBowoBPtMGz3z+vtaQwk1rh8vXz5k7b5pgH4UPLAAZa0bR3idtvy7F4P5fFQGnxGExFqUoE4V+rcSeM/SB0M1DZOBVjWQn7LLBxZqTR6HaFCsLEfjUTw3dgTZSmjr/zO1MZj7jaW4iVd5z6RUEndMcPrZn8dicXydhY73g5dukruBXhYBJJL8pRt2ZrzfOLZzVC5skVyu8rMOiDkitkLuNHu4tg3AJfKBEvK0x32pvZMlqKk3vVPzZsIH+PkdKSRONwkPHzENsuj+At+s/Jcs4W7TsUxj8r7QGZEuokQ8ZPUN1W4TwcFl6s2/vJkCz2/iKC7QFd2r7+0tLS7zt4soX4/GaEKwxIBb4mmGeEWw4hjCucjY/3vhEvsxw6+WZu9Ixz3JOEcJZz6mXMb+WBeQ4OXY/27bF4QUkFpgxksf0sjD8K/I7gU0D+QASqlRTuZZwqd9V07MNmzO89YC6S9zwg/HzWVxWxpL6JrUbge4iTvDdsotcqVvV X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BY2PR12MB0145;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BY2PR12MB0145; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR12MB0145;4:0JGdyjga2U6A7cLGaox/D0oB2mK3ZqRTMLibaqtB4j?= =?us-ascii?Q?kwykvHCwqBPWMboQ5drQcBrn8tBS/OG7+d4NuCDoXNGIkaULttHp5s/6xicF?= =?us-ascii?Q?BhhtJsowmcdl+42MzA8ZpskoapOFdI2D9EAouhocaNoVe0K1IqDhyDFgocjY?= =?us-ascii?Q?GcpBAddSGD6Jy+ExRjObcO5TirOzQe4o1H3FIyDbtXoPmMzkUWwxra5rGEmH?= =?us-ascii?Q?pMuEQzROvXFEdD7pITFKmhy4QN/EMHTu3x7bXNCttbxgJmJ3fypP1zrdcr9k?= =?us-ascii?Q?XqGELtxH0VrB4RPegU7udJLJK4ebD1tJS1c5jzEhAdlwPwyhNIAGej8xjdDt?= =?us-ascii?Q?XkUvu5BzNYdfZf2RwJ4Jcss/G/lzqDU2IsHKS2G5y6qkpKTLsrm39zgof66K?= =?us-ascii?Q?ooTCA4sikkIUHeGQaDJ4I2zP95T6LbAlSlccICrBrWR1WNvUXSvE0EIyWOxz?= =?us-ascii?Q?nUQF0XqdWuyQYnfpA1CFIPVth1JMMFB94taH0lNhX0rzruJPKQk2gdM3y/XF?= =?us-ascii?Q?qBh8rnKcJ7kj6BfRpFPwPjovAyMKlgogNSZDw/bwj8bM3IxDWCgppCc8oba5?= =?us-ascii?Q?3gQu20zVwNWV10ZanbITW3H6+bAATrmZdyZCt4ThWVBDY3BW0NiLPEcASAw+?= =?us-ascii?Q?eQkaVSasxJETfKSmIULkGdnMdfHb4VQUCsCrJftLGl3HGQFR0UybkwBqZIh7?= =?us-ascii?Q?t0w4Q8ea4kkAoDnbsuWPW9mgUEfOCzl0kNBSTbb4tkEq+GCqY6L6nFCg+qx0?= =?us-ascii?Q?SQ9U3tu8koZHGLOLJU44sMb0co2EyifHUzAkQ4LdPdVBPR9sJn85OlBv2YLd?= =?us-ascii?Q?ZB85soUecgQbkIPXFQrlSU4AcIsjIXibuuGwPshRTcEud9x3xCF3xQmutySm?= =?us-ascii?Q?feLYk4oeUbf538oYkLoCeHINKlUkOI0gLMFOFU7YJreNf0KQSnGPHu3Agmy/?= =?us-ascii?Q?XdHYaon3P29KmpTMmkqXeOVTbw38yBnZVVi10rG0EasmX7OglhPLgiqrYYd4?= =?us-ascii?Q?9MVaGgLLhIA8HBje0qFH+AR8GC3D5RYpnXa8XuJXNYHshWube0Y6KNRjYfO9?= =?us-ascii?Q?ozc4LtLu43EiM6P//sP9h7TjZZ68i62Zv5bIEc2fwJSWNN/Uj0kqod48juyL?= =?us-ascii?Q?jRol3+Q4FSsOMCngbbMuyGbEpPyYQ1Oi/zyUe2ke2trCMuIFt1JtnIKtb2iS?= =?us-ascii?Q?LN0mchZ14Ci/jh74pIwTtyE697c5RNMKkI?= X-Forefront-PRVS: 0378F1E47A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(7370300001)(6009001)(39450400003)(39410400002)(39400400002)(39850400002)(39860400002)(39840400002)(189002)(199003)(7350300001)(68736007)(53416004)(105586002)(54906002)(97736004)(50466002)(6486002)(48376002)(2906002)(106356001)(33646002)(6116002)(1076002)(53936002)(3846002)(189998001)(101416001)(6666003)(2950100002)(478600001)(50986999)(76176999)(81156014)(50226002)(38730400002)(47776003)(5003940100001)(86362001)(25786009)(4326008)(36756003)(42186005)(8676002)(81166006)(110136004)(5660300001)(66066001)(7736002)(305945005);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR12MB0145;H:ubuntu-010236106000.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR12MB0145;23:26XRBJZhCOKw9b6Y4Htyzpxt7zpXVqnLOthbdLNKn?= =?us-ascii?Q?w807YoGLOJ2KtQ/YH7LKuUjhVtM0IRQZWdvJs/O/sK4bnj95oQnBhoKDvFU7?= =?us-ascii?Q?WE3Q7VxoZzkhqd9zfjGvAVpbgiCHro5z1OPbiyG4P/Xr41MLiHMh8vtGTCyE?= =?us-ascii?Q?1rCBrglTrZAHbE7GuYOvSKOIQBQriI/PDp6mMCusA9a3ocCIRvP+wGHacext?= =?us-ascii?Q?HL0shIk0EQ5BrqZMJbZTdBHKydSX8yK8cBPsP0rB3kDPBOGymbWfgx3YwTRJ?= =?us-ascii?Q?SKvoJSud3kXLpXdPHyOozwcVQLYykWaOskrYAgoT04QI7sloZ33JRv/jflG7?= =?us-ascii?Q?MJNwqjrYHMJ6mQ5UUCm/f+B1E9s6U89RtHOPocGabYQ84XRTaGMP2pl9G2Pq?= =?us-ascii?Q?0BMStcXJ2AR4GoUJxxOtFkAxUMFJbMxvAo1QxryP88GcSWyZgxGEfqRs5kJO?= =?us-ascii?Q?LTR0R9YKOy3soUJZp1q70CXdbvZPSNPT5xT5ZKJXvz93CyF78eVbZd4tYM/E?= =?us-ascii?Q?0bIc4IPkyLf7dD06v+iQ38ADxTSTEoVLKPU1JHOoDiQG4m4skdyaBh2VI9ag?= =?us-ascii?Q?U6cSpL/vp85mbSRCQ/w2SiodpXm5EAvnEC/QJUxa8OI9uZ8VkYHkd6J4kNTN?= =?us-ascii?Q?UiHY1QYsh6Va8DVFfli1aCJMXv9RqGsgsOeO8G+PLgyV3aQk0P3+gthSGAG1?= =?us-ascii?Q?4VNoY0vkDoYH5KPZpcWoowNdGyUYKXoIYEJInB5iwQdZjZRyNSZWZVwDzRGa?= =?us-ascii?Q?nVu+Uu7MVYGxfLvnIFmZiE3l39v8S55x802fPlXxO4qOKEMIb4sOIhIy+gPq?= =?us-ascii?Q?vgugnGaxqgnM9x/NTv10yfHcKcaeY1p+7R5uiq75Md56uem7xkxJn7Dyeclm?= =?us-ascii?Q?6PqcDHla3tO53yoHvEV+TDAnLleR8mLtYmv+2N3u40R//1IeNmDmqNzI5hVl?= =?us-ascii?Q?Ki7eXyd/rHZwRwN73cYVv/L9WSw4TIEmTGIP2QDCn8dn8yHeMOfroTHQxZjE?= =?us-ascii?Q?XEl6jXn4nN3/K03jTJ/XVd9zGKVNFCsYEq5uJc2xiNlv/CpOtAg17ba97kkx?= =?us-ascii?Q?3mcoi7a0Y4QiSMeMqbsw/53rk4WJkuqpd3Mt6Oqs0ybchRwQxm+fHvzlvfch?= =?us-ascii?Q?axOUv58QjTflXUKaGosZfvrW/n1vckBY3f4MEcnG1zFsdHDwxE8kzpyjcSny?= =?us-ascii?Q?hHAmyUbZa96p70xuVGjSZcZ5ozKrVzMvXjJlEfvZbzsqRoOO7aICfWquxLzd?= =?us-ascii?Q?6FJ/fcfW02rca7VdYR6sIPi1pqaJY2K1FLKkuZL?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR12MB0145;6:W6XL2dQdtfLCWDoYwTdpdNhXkpQk6Kn8JyOT/m6Ewk?= =?us-ascii?Q?qvaeET8qkQXJ/c3YtUSCBx+jhqgdQ6r6mrJWmcK44/nDXEybPzwbgA/xZJQW?= =?us-ascii?Q?VbTLfteZCbImtr7uQLISlQIi+LEFZwSPt+8ff/Wn/nwKl/2ujF7qP3dR+GPR?= =?us-ascii?Q?4i00wWlkc9lX23iWkJl/bIBPidtHmlAgyLb0ZYValpT1tJCmPjJcfOfg48H3?= =?us-ascii?Q?oI2M0sYUseFsNI3AQznlDGIhIUyZmwwHun/t3HXP0++CFj3dXJQNOptpCJUn?= =?us-ascii?Q?cbg7qhnYbvMbcUagBYNNkOuqbIRveFvUblASoO6bMfobkhUqJas/eTmrMeJz?= =?us-ascii?Q?LmjL1nRbK14jw/CpD/uNjBnvE1HIcvwxxX/ZctGvj8FJSM7yc7pHIWqerT8+?= =?us-ascii?Q?pIE813g6Jg7CbwAT6Cwyjx254S8jybycKpquaIT9dYHHaRKHEBlO+L3Cztsj?= =?us-ascii?Q?F7DdwQ1YMAAr+ONDVKXqmO8gUr7htBGPGKoMlljVafdmWgyf/yZXcdh9Zx47?= =?us-ascii?Q?skoqFE6E05MzsLprpxksUMBhVcTnC45FZPYVCcuWt05l/MupZvW8rtjpptT6?= =?us-ascii?Q?R3R0kdRoGUBkYr4MGBfXs99CtQ0Lg1u+7D6DbB/aJGHPrmH36mRZ3avc6GSn?= =?us-ascii?Q?QHH8WKdvKp7d946jTYqh+4gJS6AUcWPj6IJ19dJEGMGHnSumECobhwjQ3FLw?= =?us-ascii?Q?LFn1/E9uKLD3C7EKycfpTOvJpWqrLzi0gF6iAN3pAt9HhWnNlIT8OewMNeYV?= =?us-ascii?Q?f70KcXrA1S5Y6YmLmSaxGPM8ENJSvPbKVMHkSl/ydYuA6KrUe5jhkeZOPU/y?= =?us-ascii?Q?InZYMBS/U0qM8VomtPYoEIpmCYrI+iJEXARcZXGOvZg60A3Jg7uWcPEhhNs7?= =?us-ascii?Q?B8O1b2IhBRnSkwpepwDdiEV1WlyUZRaVXPvD4F9OpGrxSTEW8CFREKrl4An4?= =?us-ascii?Q?uJ19/HjOj8wfefyBi9BiVJazUzSP5ZWuxcn3u2fW4D8VeGited+O2r3PK5h0?= =?us-ascii?Q?YzE9pMvFYNdHLx+Cw07LHK?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;5:QUMxvkAD0eyu3yrKLQ+I/0PPQdgswCRhCy2ZzYKXFJSC7ZYpywf+q72wnzETJe/3XMtAY9uqQeY1WYo3bAY/q45a/XlwH2TFLTNn2WZSOBSzqdA0GkZBF4P2xVpM0+QdCo8ZOX6KCFzzZOdZCNev9+IoWPEGrmKRalwNgOPAjXR8NWB1yVZ08AVN6xUHE8QlCiWM/7NJU2LmVvaq7NOTfNGG2NU4ECwhSiZ163vOPaGQgs6PLDbyXce9CL+o7EB/0v3YVMV8VV6UC4e6DDaqX6vdQbjm11wAc5RNoaSObhTVz0M9nCVwr/UdUL4Rxn3yWg1cQb1PZ86mzjQt9Wlu9lctwstr+dQyGigBFdYy7A02RDoLluMvdHf5foCR5j3rZjrdkKxXfIe9jqhwSDKGHrbLP1V6u4nKCb1Lp2nZkWjWckGgRB+5YvPUJaLga8hczIWD9OC0/WvnaeeUPB3WXkas8TyeDosFO/sMTvCudQ5DWBBwocelkaWl4b9G0NEw;24:AephdbozV/dl4PppaN9fh9YCPBrs2UAH0ZyD0Qd6vSbjQdEFJ6jjvfiT+IqZ+GYNkgP+iomkZZbJ0CHshuuEUSH9Sk3T7RMP1OK69lmpkAg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;7:pxUkAtjdxun8sVxgcwvgQpJ00P9+sgJIz+SqeIwzGjWwW+/Qe9zgwdSkle/cC3WJ6ZkHrSFgoDlSjriMeXICRrDExICk8qXkV8TDdPg9518EbqlAwFjQ+gBG74b5YYgNpCjLi2AOog3rSAYDyTayobmroeFL8krV6aRNaSZJmP5NFIDHjWddKizIienS+aGYUx6/IqY2GiIKXFUaQ33gVBiTkIrc41FHWNJ1kwH1tqh31dKQz8IxcvEZanunYs071iH2NTaUmeOURy5YmrEj+duB7zjBBwYJcHkQTztIRMGlWPliTOLToyRlVsRUNfYvuSAnC6UsrfqOifUu1c3522KSBVp+o3heN8+29i/4BAqmGQtPf3Fp2F8M1p8o+Sr5NZSSs+ilYuEN9c+5xAnfWnpmFc2siXJkly5/5lBOwaxxeMqGIPaCnUBd2l04xqLiosAqDp0ShvNCK1lgfOf6z2NlV/kCDhPI1gOTSzvmVOh2+E62rPbDNj+ll6bgpWk2abYRN0Lxsc3um9rHHAeaDYZ3q9Lh3zgwfA177+u3EqFHJqDetuEGf1Ce3KcHsOkTYbLTXMaWgs6krQeTx/qPi+AEXF4qLvY/kfv54CMN/p/mgwt+LfKP/ie5AeEHLuF4/J2rmrmbtj4oboOMO+oI1X6QVAFiLraditHZOVz047je4U1/Z1eV6gF5UTc3WqW4ldXrG1x9K0msS59uVe7zUzrpLwyIQkgsKSQgoWj9dLqAfkpCP9KE2wq+PVXpRq78wVPbJblLlxQrC2qZr85sj2b1q8FT46CXh/5xZNxbHls= X-Microsoft-Exchange-Diagnostics: 1;BY2PR12MB0145;20:PynpSI339DN7vPNv8zsMkNesNRMoQa/0qpeLichqM1Sv5I9EDnKbEubS/i0UXGMv8/14Ce07iWi7+X0ggRch8WQ5I38jVkV1IUMhw3xSvdLdLesLM0IqFHnNX1+GhmkTKaWLfi91nbPezs08uOE/wc7arntKgJX58tWNpE9Hs9VdWBJ3+i9jbkihZOnqtHs6JA8hq6GBaLhppeZM8xeh4LAH2oZ5w48Hmw23SuQeALhK2GbYBYAnnr6lnfVXTVUc X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2017 20:03:37.8846 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0145 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SEV hardware uses ASIDs to associate memory encryption key with the guest VMs. During the guest creation time, we use SEV_CMD_ACTIVATE command to bind a particular ASID to the guest. Lets make sure that VMCB is programmed with the binded ASID before a VMRUN. Signed-off-by: Brijesh Singh --- arch/x86/kvm/svm.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index e99a572..72f7c27 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -213,6 +213,9 @@ struct vcpu_svm { */ struct list_head ir_list; spinlock_t ir_list_lock; + + /* which host cpu was used for running this vcpu */ + unsigned int last_cpuid; }; /* @@ -573,6 +576,8 @@ struct svm_cpu_data { struct kvm_ldttss_desc *tss_desc; struct page *save_area; + + struct vmcb **sev_vmcbs; /* index = sev_asid, value = vmcb pointer */ }; static DEFINE_PER_CPU(struct svm_cpu_data *, svm_data); @@ -886,6 +891,7 @@ static void svm_cpu_uninit(int cpu) return; per_cpu(svm_data, raw_smp_processor_id()) = NULL; + kfree(sd->sev_vmcbs); __free_page(sd->save_area); kfree(sd); } @@ -904,6 +910,14 @@ static int svm_cpu_init(int cpu) if (!sd->save_area) goto err_1; + if (svm_sev_enabled()) { + sd->sev_vmcbs = kmalloc((max_sev_asid + 1) * sizeof(void *), + GFP_KERNEL); + r = -ENOMEM; + if (!sd->sev_vmcbs) + goto err_1; + } + per_cpu(svm_data, cpu) = sd; return 0; @@ -4442,12 +4456,40 @@ static void reload_tss(struct kvm_vcpu *vcpu) load_TR_desc(); } +static void pre_sev_run(struct vcpu_svm *svm) +{ + int cpu = raw_smp_processor_id(); + int asid = sev_get_asid(svm->vcpu.kvm); + struct svm_cpu_data *sd = per_cpu(svm_data, cpu); + + /* Assign the asid allocated with this SEV guest */ + svm->vmcb->control.asid = asid; + + /* + * Flush guest TLB: + * + * 1) when different VMCB for the same ASID is to be run on the same host CPU. + * 2) or this VMCB was executed on different host cpu in previous VMRUNs. + */ + if (sd->sev_vmcbs[asid] == svm->vmcb && + svm->last_cpuid == cpu) + return; + + svm->last_cpuid = cpu; + sd->sev_vmcbs[asid] = svm->vmcb; + svm->vmcb->control.tlb_ctl = TLB_CONTROL_FLUSH_ASID; + mark_dirty(svm->vmcb, VMCB_ASID); +} + static void pre_svm_run(struct vcpu_svm *svm) { int cpu = raw_smp_processor_id(); struct svm_cpu_data *sd = per_cpu(svm_data, cpu); + if (sev_guest(svm->vcpu.kvm)) + return pre_sev_run(svm); + /* FIXME: handle wraparound of asid_generation */ if (svm->asid_generation != sd->asid_generation) new_asid(svm, sd); @@ -5523,10 +5565,16 @@ static int sev_asid_new(void) static void sev_asid_free(int asid) { - int pos; + struct svm_cpu_data *sd; + int pos, cpu; pos = asid - 1; clear_bit(pos, sev_asid_bitmap); + + for_each_possible_cpu(cpu) { + sd = per_cpu(svm_data, cpu); + sd->sev_vmcbs[pos] = NULL; + } } static int sev_firmware_init(int *error) -- 2.9.4