From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757272AbcCCKmv (ORCPT ); Thu, 3 Mar 2016 05:42:51 -0500 Received: from mail-bn1on0089.outbound.protection.outlook.com ([157.56.110.89]:6928 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751658AbcCCKms (ORCPT ); Thu, 3 Mar 2016 05:42:48 -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: <56D8150E.1070408@amd.com> Date: Thu, 3 Mar 2016 17:42:22 +0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 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: [124.121.8.20] X-ClientProxiedBy: HKNPR06CA0051.apcprd06.prod.outlook.com (10.141.16.41) To CY1PR12MB0444.namprd12.prod.outlook.com (25.163.91.22) X-MS-Office365-Filtering-Correlation-Id: 8a783753-89ac-42c5-0f88-08d343508e24 X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0444;2:FwVMHHbxaaO4Gwly/H5atrBM5X9+obAX4SrmHHFVlHhVVUOmiy0+m+VJOqukPM9+ckB3IBlmYKVeiYCq2yKDkZYl9uwwY82+hhTas5L2fmCLKsGVQahhc9JKIqUUwsHz/FP5UVFQvch+Jhx3zzHFevGqbrWKDyYidUhkz8eGuCfGsG0+1QNRQnvcOfbfvcIa;3:NIGMuBfEIgyFruYvfZeS7YrrSr8rKW57DrjdqxdRuMT8NSX6jU8+Q1kOmhgTDyU6b5n/SY/rosmKdqOn4/sZqwRWZt4noHNKakRqRoYkwJb5OeSoQVn69zxFPA5EdBSA;25:1aZM5LFDn3k5aAneAwY9srLvdVYb94AM14CCSC6qV/LdXTSymoObOl5UpShhVgqGNXJqWnMSqs5ZceP1w+G59JFAP2OMU6QVpH1Fxn9iSJxvOEDyJnOoWSrcNEsclmDZZrOHSgHZS69T2N6p2r0diJs3HEV/uT0UU+zllPQdU2/I+/t6O1Q76vSvlBQD38kLD/igCnrhb0j3JKLPx7p/gH2rWj0kWL2cUpFktc9+r+5U0zW+4XeFgnSQggtFvAJ+/v+CeNLITQJCXj9pJLKVp3bVwrL1LuLlDxQ3CA2nigyZwKgf6xh5hrhXn523o67C+fYDZ2GyCDP7qdyNgOOcxA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0444; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0444;20:3bLp4h6bwa188MFPbYPsTyA4j82z6Pmt1lE1UWewZwhDYqb1iJjdykaMpetI7cVJFVTOJqBaK7qmByu1KHDVW1fEgm+T9YlKD8VzS8J7+0ON1eB+J2jbrdQGa+G41v0MD3c9Dw+2WJ/D3QoL+iHb75JLW4P+oFrJXhkSxHFy+Nw0a76r4WkIiaF3OtsdM/JZGOKljiM9iJRsWQ6j0qNrC2W/Gp2QjtgPhAt6Oy9/WnFqx9oUHlSroE2ZWz74Vos/OoI0Uv33+hFc8z+xB+mzU5vlj7XNjUb9kXDQA6AzlP2XW2lgkPz4+XDesFeSratBowecNac1CZ6svIAk2VED7LGDcVSRt5OkfTleq8kUrGIO+jOXVp0iOZAOihZrm1w+GFc9wNJK4Ash4ySG2anr13c3QTPW7U3FyiIA/okuk9gg86QDA3W9MAGS53pT5UglbfLMcgdUkShIWjBow65RWyR1TOg5tHXEUDmNsoB8Tj0qewwttue5PIrJxCUkgnvC;4:Eq4eyfhXwJSSFdGHQ3sLcTOKqlTp2wtA6jZ5yn5uBkMIgsdo7slM+YpvlszCZ0Pk4BFnzYq6+LUZfKx/s6k4Lp9esCzFatDSUOxWc6Is/UtJObf92PwZ7WcJx7I8qW+rQh8i9ykGDjI+7gJbRj2lJjTEeUZwHiNovJDiW4uBbWCxhlvaXU71KsPRKlAMu3VW5aswRQES7ACSerTPwcDgCbIy6aAnYJO9kndF5nZlwVa3BC2YY0G47uH8DFIvUGJ8U3kHGSEeKL1VKC/+dNPHBbC9I3NPV0jZQVdAkeJj9ESwUncMXQX1BQJOiFpraMOHGDIVVWzPGk3sVNFqLL1nwkbojnn2v9V/glZjN0np80mPID8e54TPc/Nm5S8jw+uZ 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)(3002001)(10201501046);SRVR:CY1PR12MB0444;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0444; X-Forefront-PRVS: 0870212862 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(24454002)(76104003)(377454003)(377424004)(479174004)(36756003)(5004730100002)(59896002)(76176999)(47776003)(50986999)(42186005)(23676002)(5001960100004)(54356999)(4001350100001)(33656002)(92566002)(189998001)(65816999)(5001770100001)(65806001)(117156001)(3846002)(6116002)(4326007)(586003)(77096005)(86362001)(2870700001)(1096002)(50466002)(2906002)(80316001)(87976001)(2950100001)(64126003)(93886004)(65956001)(66066001)(122386002)(5008740100001)(40100003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0444;H:[192.168.0.19];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjEyTUIwNDQ0OzIzOkcrM3dpRlBOQU5SOGZyeHpIV3pnY3VBOWhJ?= =?utf-8?B?NmRSQ2ZDQjFDdHRqYXMxU3lPTVdMUXFSOVd2NktJSkVjQ0ZYcE5YdkQ2dG5B?= =?utf-8?B?VUNSaktwUXVQK1lacU5HVU5tRWgrRWVHbDJVdXNGdVZTNjFSV055WWRCMXJk?= =?utf-8?B?dllMOUw1cXBHeW5NYjczZ0RvZXByOGJWWGNNNjdmWUI1Sk1VWTJKWW5peDJP?= =?utf-8?B?MThKdDlFVVIrbXZyS3NDUnlJUzcyc2psR1F6MHFaMU1MbURCOHFLODE0QzdJ?= =?utf-8?B?bUQ3ZVAxL2xONXlEYWFwMnJKS0J0a3hHbTBTcEdDY2l6MkNadW1XRlk5RGl0?= =?utf-8?B?NFFaM1FxUXRVWlhpQU4rZDR2bnppWDMwMDVhVm1zWWljRVF1RjV2djBDUnJO?= =?utf-8?B?bGdjWk9CWUJNMFFqODFtLzlRamUzTXc1Q1BmT2Zscktmd3A4WCthRUdnbDNX?= =?utf-8?B?V3BSM203UHQzMjBOV1hUOTZXakx4a2R4T01LT3cyUDhGeldsQ0dXUVprM2xk?= =?utf-8?B?WGtHMS9ZeGRaVGlqNmV4cmg5Tk1FYXFNQmZIYlU4UUJJRG82cXNOU3dNY1Bu?= =?utf-8?B?S3VGM2doUVhJZll6N081Q0phR2V5T2F6UTNTdE1rai9hVG9NRGVwNmEwamwv?= =?utf-8?B?cFZBVWlKN0UvUmhUY2JJSFNRYVhWd1VESXJpUUk1SXoreVRpUjRYU0wybFZV?= =?utf-8?B?TmptQ0VqMW5DaW5ndW93bnVrNEhUbER1M2t4Ry9kVXFSUGRBTk9BMkdqSUdw?= =?utf-8?B?RHQ4eGR6UVVFODVLUXR1eWNvaTBXZFN5YUFXaFJNRDg1YUlaSFZnZGNUSWxn?= =?utf-8?B?ZUFnQmdUTjVPaDJDUDZvdHR6cCsrMnVqcW1PZlR5N3c4WExLNDYxNjc1bFUw?= =?utf-8?B?NVFITDFEUE1oWnZkYlNNSjU2ZnJEQzg0aDNwRWZQRTdIK2p6MFVNQzREcUly?= =?utf-8?B?bDc5Sk9oM3VjYnJZcmdCZ2VJeDJzbWc5Y09tNmJ0b2JqRVJ4Rnl2dUZIZG14?= =?utf-8?B?UzhlejZtdTI1bi9SR3pHdjlWaHRmdk9ocFM4Y2lwSm9maEVndVZiV2hoVkZz?= =?utf-8?B?T2F6dXFMcnJ4UEpocGhNSUxYWWgyYVVsbGpJdzlwb0J5V2NrK05sVlR4Lytk?= =?utf-8?B?a1E3Tzhvek9ya1hEODdFd0tacGVYVFFyeitNY3ZBYmtCM2U5dVcydmFCTUNy?= =?utf-8?B?bW5jWlN0S2NyYmFJQWJOaWlpNnZ3THdobVVOZm1mSk52VkFGL0NldXJqSnM0?= =?utf-8?B?U3lVdmdqQTRPeDBreUZoUXNBY2RmbjhJWW9pREdsT0piMnl0eGZGclB3VmVt?= =?utf-8?B?SnNiQWpuWnFlVWVoYUoxVmtnejZhamdEcVA2MXhOdGg4R2tKWkVoRzlGbWRX?= =?utf-8?B?ZXlWN3g0dWV2dXRMUzc4N3NDTUdXZVFzRXJubWx4QXdmMUVGd05HK3laMlZt?= =?utf-8?B?UEU1UHcybVU0Y2NWSEFGS0RyQi9Da0EwMnoxeGdWaW9WRTdUY2hza25LMFAz?= =?utf-8?B?dUdiSEkvdnM3TG41WkRyMDkxWkhVYkdjazBYaDdoQjZSMG9xTWR2TXM2N0ww?= =?utf-8?B?ZnpmQytrbzR0SjVqZkU3U3hDdk9rRFkyZ2E1TDNEa1FlOUNRdlg1RGJVQXd5?= =?utf-8?Q?eakkz8tiSdawczfi3UyJ?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0444;5:pzaVJr7/1SC0bAmcmXINUz7tILlVbcEpci/CAHRU32Lb3l3n4ebaOxe7oehg/MXB9VsR9gTfeszDlB+vdULrqyyvPUUnYpBuTLCv7mmT7VEL5hHDW2pNIOUe+Bk2XPAa/1QpKD9QsG68hvvmGqKpIg==;24:uvf/ovj1k1AIMJjFSum2OcsrjtuT93X1xuzXYv0Obj4CfFnwL/yoNHgjscf0BMZAEWAokaoFpv66ZZ83TB3COqWG1mQXcTSC3XlI8iEzkVc=;20:VDHQQLSpNSfWFCqs1w0joObJxLxx/0oqAFKTnlIYklEa7DAwCVSrkqPFgmb2TohS/c2h9G7xQQjWbwkDkOcEiVquU0zYvwneZh02aawXKatwrvyaP9H251PwHeNq8gNHGxsY9nRkvN8xDJ+G3O/oivnDATTLrJpLKGLFS3p/7I2dV4TDk3caxAxlUHIbAaOFMfL8I/BVrDdzZUM2ES3+INhJPu2HJWE52MxlimeAiyFaL2rQLHALYjLDC2pCH91a X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2016 10:42:42.0699 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0444 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi On 02/19/2016 12:18 AM, 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 > In facts, instead of setting up the vAPIC backing page address when calling kvm_arch_vcpu_load(), we should be able to do it when calling kvm_arch_vcpu_sched_in(). This seems more appropriate since the kvm_arch_vcpu_load() is also called in many unnecessary occasions via vcpu_load() (in the arch/x86/kvm/x86.c). The same goes for the kvm_arch_vcpu_put(). However, there is no kvm_arch_vcpu_sched_out(). But that can be added easily. What do you think? Suravee