From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1427748AbcBSLkV (ORCPT ); Fri, 19 Feb 2016 06:40:21 -0500 Received: from mail-bn1bon0098.outbound.protection.outlook.com ([157.56.111.98]:22756 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1425298AbcBSLkS (ORCPT ); Fri, 19 Feb 2016 06:40:18 -0500 Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=amd.com; Subject: Re: [PART1 RFC 5/9] svm: Add VMEXIT handlers for AVIC To: Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= References: <56C2C1BF.7010700@amd.com> <56C312E1.1080902@redhat.com> <20160216141330.GG10555@potion.brq.redhat.com> <56C354A5.4040807@redhat.com> <20160216180618.GA18952@potion.brq.redhat.com> <56C52B80.5050104@amd.com> <20160218141817.GA6289@potion.brq.redhat.com> <56C5DA62.8080204@redhat.com> <20160218154343.GA18904@potion.brq.redhat.com> <56C5E8E1.9060900@redhat.com> <20160218162701.GB6289@potion.brq.redhat.com> <56C5FCCF.5010802@redhat.com> CC: , , , , , , , "Wu, Feng" From: Suravee Suthikulpanit Message-ID: <56C6FF08.6050408@amd.com> Date: Fri, 19 Feb 2016 18:39:52 +0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <56C5FCCF.5010802@redhat.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [27.55.173.158] X-ClientProxiedBy: SINPR01CA0023.apcprd01.prod.exchangelabs.com (10.141.109.23) To SN1PR12MB0448.namprd12.prod.outlook.com (25.162.105.141) X-MS-Office365-Filtering-Correlation-Id: 869536bd-5583-42f5-c5a5-08d339216fa3 X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0448;2:5rdVvxB+hkeSot1momGcCjVoeFmJc+yqJaDudJdmBnGswjgUHxOr1L3qAl4JvuF/GdcEE5+g0VdMGAJEl7ATbnIqqmc+lAUHECYhfFB89Zq7vy55nTzv/Xs4RkHsIZxonocYh/Kmq/Zk9gtvEaSk2/LBPuLR/P6/81l81PUDuUS39rpwgpsxstp0wL+kf42X;3:q/YNeRqDv6Ns9XxZTTmeryCumE271Jclx9+dtMMxn/ROrz8MZno3kxn5JbAySWqOGNsDwZPGh0I493bhGpPw7tJYJ1imdY7dAMHlH7dR/iMjy9lPZ6NwmgPLrYakUXrM;25:oHlE9rAb8arZMCZxvcBBNiUGRDBDXoszql050//HNXLEpKXFlalAoUM2kPTIxEqHsYo6pw9FWVFBVVPAG3TZSlX9fAJy4KH+2b88k2JqknFNc+nzO5QehkUq1w2Qx2F4PKDI3Lm0WyB1VgVUmz5lbCCH0OIzL/Z1QLFVnrsVOc1TsWXuLp8sCK9jOt8s/mPfnuxfsoO2nesQ3XIX5Mv0PxzMdPnPBQd9lalx5dvuYoWdKy2H1t52SKeYOotOKyU8kXBDw+T4x5o3SMxj+jCtWUBMBCxYzPCiFCXHvRyxt1LBsjVgKMEgT8GzHsC5W1Xj X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0448; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0448;20:C4UtYMulLTFYQQ2CYwp/RK437K79hxbfbduFFIEEXnff1AR/rD8W8AKM2EwX9tchP1YUiJWDjXYetKE33cGQ3YhSlVcMAKfCMdDJ9KudL8KP4LK2xolsImvNWdW17rEWiGtL42W9PxPhifpKUpSCHt6sgEMN0BjgzwNMDVxyL1I28WP5fs5vQYksz3KYRVHSehOlgVsgb70wC78S3/8RJhT95spczyfxt6f+5K00Ifd5W2tlSCeGkuDRWk7o9oGlU4iuhv92kTFORkcTtBg6sMSKswD7XfJso/eeXyVUkF5Tzxh6NSm8b2MnsWWyiBXM+1BBJJ5NluMfGqNROKsjarw/AwhGOd9Mqtld702rSBjW1zhvsm7mXYLDw+klLitvBMmcO6fKOMil2/NdxIiOJVpbfCI7bJQN39eJVaJ1l3ig40O/rqRZXZ2OywZyiLEgCmMDvmdR2gN0157c5NaKql9ZVrfWn48gIzyHu4GOZ/ifHy7lvmIK4qooJLM6aVGf;4:IlWOwRwSVT3nM9+C+auN419ZAHCQaxgQ3SnZMuI35TvN0+dDCXKwU3WksLVVdCNeDZSAFyOVDNmFzrn4GGLLg9zMaoWGkD4lQeSsaZbQgbVwd+eCbbV077FkhzIDGGm8I0aG0BDAiJ8NCXgemayfP8DZo8ZqBhF2ejH0S2jM0Ml/F90yR9iyfevXDXcPmjiovkPZuUdQBbaay/klIILzHfWhWtnGh1kpVG+yNoN7e6tOXG+3iD85ynaNF4qbioRctJ1v/k4NetrqXc/4LdT4LBnwvlWvgAk66Qiw3rOMuICacN/qP8OkSmB6AP/Q9tkLq9NgasAhU5bbH0Hmotk3RPDtaWqEwyEAI11vEOceGdu92BJkzkohnrdF7WtJNg+s X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:SN1PR12MB0448;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0448; X-Forefront-PRVS: 08572BD77F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(377424004)(164054003)(24454002)(479174004)(2950100001)(77096005)(33656002)(5008740100001)(3846002)(64126003)(6116002)(23676002)(50466002)(65956001)(40100003)(1096002)(42186005)(86362001)(122386002)(66066001)(2870700001)(92566002)(50986999)(47776003)(5001770100001)(36756003)(117156001)(76176999)(87976001)(2906002)(80316001)(586003)(65816999)(93886004)(87266999)(5001960100002)(54356999)(4326007)(5004730100002)(189998001);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0448;H:[192.168.43.18];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwNDQ4OzIzOmFrUXhlamxNS1pDeWlaYjVneGs0OUNFd2xQ?= =?utf-8?B?U0FTVnJ3M0NESE5GY0VOdjNEaWdQK0JIeit4cHlLbXhQUFVoZnFqSHNGNE1X?= =?utf-8?B?ZU5RanMvK2ltYktWQWFFVGlJaEdZSFp4UnlaNTkzZ1FkMVYwRjl6Tkh1UERG?= =?utf-8?B?RHlib1Z0bUp6K1FpTFhTeGRLNVU0ejFVV1lVTlFNYmhxdi8zYnduNE8wdGRD?= =?utf-8?B?YTZYcXlCTWZzY043UEVWbGFja2NmeEVLQmpKUEJJMGJFU3ZxelRZM3VyTUw1?= =?utf-8?B?VFluSlJ0MXEwU0hUdWZON2VSdS92clA3VmM5cG1XRnAraVFZYUZudVJKU0p2?= =?utf-8?B?Mm5HVm5NRkFsYWJadDBqMXdJN3NVZEFWL1o2UmxnQ3NFRjBmdExZS2lVNldS?= =?utf-8?B?S3YxckJtajBKaHgwM0JUOGNoUERjWVBhQzQvOUZzRkRlV1U2Skw2cnljOCtr?= =?utf-8?B?TVdxeFVhWXhmRk5ZQnp3OHRVbTluTVJiQ2ZlTk1TL25XTkRodFNRZTUxYkJI?= =?utf-8?B?OERjYWxQb3ZFQkp4bUtJaVFHdkJKa1h4UlZmQ2ZRdDdjRkpva0lWdlA3UW5K?= =?utf-8?B?TEFjYjZHQzJiZGlHeEdCUmpJQUVBL1ZKNzJQNEJ1Uzk0VER2Z2NUYWRpQjZi?= =?utf-8?B?NGJIVTkzWG00aUVGSHllR3JPRnhBVnVhUGNTdElRNHVGTVRDdVFoZlBwNmZ5?= =?utf-8?B?bEM1MFFOTTNSUjBBd1Q5UFFZNHhrU1hxU3FwNmpLV2NzbWpwLzRQbWxaaVB2?= =?utf-8?B?dHVIV1dqdlBBMU1jMXpoemJTZ2MzNTZ6VmNRTEFhdDliT1hjdFNhb0NYSlB2?= =?utf-8?B?cGVvUnhXTzY4M2NMVFFNdFArVEVBYkc4VlVPeEJWdGxVc3BuakROdzBFRFVZ?= =?utf-8?B?SHJCU0IrTnNpRVJITnBwY0w0WGZZbHhVRExnM3hLQmpQZlVQSmI3ZWpVQmt5?= =?utf-8?B?NUM0WHphVHpiTXRDN3NqeDZ3OThJajNRRVdobm1FeVZDUDgzdllwdnFFRXR1?= =?utf-8?B?QzU0Z0hQL3V6T0Jtb1hkYnhIS3FFdmNxT3V2bXF6RkxtMWlEMTBRZ3BTZVR1?= =?utf-8?B?S1NiZUg4M3hBRHhBSmt0Zzk3OG5LaVIxRGIxV1BwYm0rckpFMllIeXhMQXhw?= =?utf-8?B?YUVXZFMyVDMxZVlmV281MWs0UVFqNGtwY3JLa2QrRmI2bmxBOUFjbXAxdmZs?= =?utf-8?B?cWcrYkRPQTBES3JnZ2hVQ1MxaFU2a1QxYUVEbkwzRGNuRVJJRzIrOVlJVTFO?= =?utf-8?B?bnI0ak9zRkdjMEZDbVg3dzMrRmdMSzdmUzk3RVVmRFNZbEVaclJjV1FSQ1M1?= =?utf-8?B?VlBZWlV4WFh4NWFwU3B3RFk0dzBqdjU3UGs2bHlxRWpZWFBPd21rZWp6U2hS?= =?utf-8?B?eTdLTHJhQTJPU3A4NmlOMy8yZm9Sd283ek9wUnRuakZPdTcrQVlkVTRhRmUx?= =?utf-8?B?MzVINkZncm8zRHVnRlRTbkVGZ2Npd000ZkVObDRtUlJIcjFQMmlydGhVajA1?= =?utf-8?Q?ppQPPLNYwk0xbD2DKmZzkQEcx1jAYjR1xDUr8Y0ynIIzDL?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0448;5:XPOgIdDsSbQokVzyFoZhw64230gY5qjAQocV6mGlVAvYStr65qcSOIjdfqXxPoS/mAW7u0EF/25ULGVjUqo8chkDH9xYioMXg/ImNczmvZZKQLSPeZ8F4GyGiUgs35rA5XiMebmjz9woEugr7I45sQ==;24:1RRjDn5DFNFgh57DaJ7w2bLtIfPHqEqKFByKoh1RkIpZj5tdruKkoCWBi6F2jpjL3YYp/vEyFHIoMnusJSKTRq/tCrkJ/ieC1R3YxG79BQ0=;20:BypPXbaj86pOlBerbA0dzkMxjzrXIijoNibOV4qNxBLQazlWkFvNUUKR21f1r7rzpj7RRNIsAW7niaDSyTiL5ryFyzaMzDbTaSQTK3HV25UqdAAwsVgPoCG0y2KhQ3RoQnhop7K8utZ/y+ZsVNLFCAMVMt/5yXQa6cxc26IP+0CwDdKl1VnzU91T4VdnA6Cj+YS0VWSeCEUYIzjb4pG8xN7DterwK0pT18TYEhnNunnbyCFhspW3BYyiiobpaW0n X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2016 11:40:11.7202 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0448 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 2/19/16 00:18, Paolo Bonzini wrote: > > > On 18/02/2016 17:27, Radim Krčmář wrote: >> 2016-02-18 16:53+0100, Paolo Bonzini: >>> Patch 9 is okay, but it is also necessary to clear IsRunning in >>> kvm_arch_vcpu_blocking and set it in kvm_arch_vcpu_unblocking. In >>> addition, vcpu_put/vcpu_load should not modify IsRunning between >>> kvm_arch_vcpu_blocking and kvm_arch_vcpu_unblocking. Do you agree? >> >> Yes. >> >> I think we don't need to clear IsRunning on preemption, which would >> simplify the protection. (I haven't thought much about userspace exit, >> so maybe we could skip that one as well, but we don't need to now.) >> >> The reason for that is that KVM knows that the VCPU was scheduled out, >> so it couldn't do much in the AVIC VMEXIT. >> (KVM could force scheduler to pritioritize the VCPU, but our kick >> doesn't do that now and it seems like a bad idea.) >> >> Does it seem reasonable? > > Yes, and in fact it wouldn't need to clear and set IsRunning on > vcpu_put/vcpu_load; only on vcpu_blocking/vcpu_unblocking. > > The IsRunning flag is more of a IsNotHalted flag, in the end. > > Paolo > Good point. I have made the change by introducing new function pointer, kvm_x86_ops.vcpu_blocking() and kvm_x86_ops.vcpu_unblocking(). Then provides the hook to set/unset the IsRunningBit here. Also, I no longer set the bit in the vcpu_load/vcpu_put. If this is okay. I'll send out V2 soon. Thanks, Suravee