From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934275AbcCQTot (ORCPT ); Thu, 17 Mar 2016 15:44:49 -0400 Received: from mail-bl2on0093.outbound.protection.outlook.com ([65.55.169.93]:42614 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752721AbcCQToq (ORCPT ); Thu, 17 Mar 2016 15:44:46 -0400 Authentication-Results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; Subject: Re: [PART1 RFC v2 07/10] svm: Add VMEXIT handlers for AVIC To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= References: <1457124368-2025-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1457124368-2025-8-git-send-email-Suravee.Suthikulpanit@amd.com> <20160309205512.GD19459@potion.brq.redhat.com> CC: , , , , , , , , From: Suravee Suthikulpanit Message-ID: <56EB0918.80709@amd.com> Date: Fri, 18 Mar 2016 02:44:24 +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: <20160309205512.GD19459@potion.brq.redhat.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [58.10.104.205] X-ClientProxiedBy: SINPR01CA0044.apcprd01.prod.exchangelabs.com (10.141.109.44) To BY1PR12MB0437.namprd12.prod.outlook.com (25.162.147.139) X-MS-Office365-Filtering-Correlation-Id: 4b319dee-234d-4ba3-2b13-08d34e9c961c X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0437;2:AqAvZ+5jkWib8fng0PM+jZ7wqQH9H7pMPNd0rNu3ytnk4ON2xGGd5kxFhDxpAmNKUnINVOTRcBhF12hbrEZ+PxrMEzpd7TbrnQOnEcFxvU1gk+I66zcXbY+ypzNKqRexKEhqL/QV5L59Gg6680MFZsJXc3E1I0cbri6ANRh7ldQGsEAub2uD6t5SbYtRUW2i;3:QZplBJ5/M9xrBirxNd9VHkoSFlSC9GqDowBe0PXMbKcoLzFEDIOyEiwi1bveirpCdcpRJ7tuHIqUOsycXXAnIEEZbm4IDEsNe3pgYtcCxQ5UZegwDxXpZTVnRvNJHUxN;25:789qHMVi9KYTwjXldj77PCukCpD4Kc8za9kmqRDJ43FSUzdSH/cQNLSQbHuAaNn1xQDmGFGuySi6q8aO9lKjIyLAvsms1MDSA0ZIuzkrUFhNwS1ssPsSdj4le7PHVUit7XiAEIbLwv6Te2aGF8ro9nTCnfoV6wp2bMkpnKyVyPjk3C670b3L7toRgO9Ja6uDKS3BIK91bDOkZh+qAK2iw4p4PDnIRYFMfXfatfgCHyFJHw4wU2CQmFvEx0PyilNqQUj9ZHO3eN3yFcw/GqGD0m9FDBgc65jFHss/DLNWqhMWUbY7X6tVMnoOkK8xieJX X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR12MB0437; X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0437;20:7HNZM6/mthsrLG84CvpzRnQ/GzmhX9kOnuWSMZyoFtw6jwY3U1LKH3wCjtYjtZ7Gu7MqevpHC2Gvf+OiUXEMgqf9ATTW1FtkndkrIT60Ie3PnrtdKAx2qWhsUZP37HuwalzFAoqizfLRouys8XfS6qia42wi3jwHapZQiQfKr1PuuPi26SILtzIjZCpP/l27H2Hqe1LhthYbfokYszrJlAgyrB6Mj9xKWac5NiHYktrBVMPNbC67RdNx5t39UQu4WbOJ2iskW+TZkjX/DElPCSYR5MeJnmzywtYDF4x3vokwLXscu+qEyHHe/aZDJQvgE329hHa6JR5HzSU/iExIauArcKJmD6cC0OXjRpDvY4z18p/LTs5xlovIj8rOme02FwZUHpL0nnaTuuW7bpg523053xcXDqUzJbbakGXudZsGeSEZ9mZbSNH8R4Fr+B5Aku16v1m6S6Rw2nscOTSEi+Envu+QAuL5QlIZf9GQESL+miMPj1E6ORpQc7HNPQDk;4:l7m91D4ZURBpIDY1D6es1D0dpaqoW4IcixwZti8RMVqHS9sL+8TazrqgEuN+mQUUf+3v2bHz5GnuXl/ZY1gn4yYG7cpnHm0KNd126/rrRqtSlZYL5zfV1eAu5VHfpc7a81mgKXZarzyumXeOdZpcRkW1/OV3OxlfGCK7tG4coYyo7goCYiAzU1LvX4a+uDHAudJJtsFf54hB6CnXaj3hTzR+qUk/+mQsfWl0fsg9xRdl0bOOiGwhxRKJ/K61Iept4mrgegBLdYQhCv7jxyIt6NNTvNXGXbdf6eokrh4JredFph0eRpK2OVLaFUuu6Q82CagyCyJYrfKVBkBtnHD9MmHF4XR9ITt8o5KI7QnU+0blKW0dfMKxT16MehEVL6XC X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:BY1PR12MB0437;BCL:0;PCL:0;RULEID:;SRVR:BY1PR12MB0437; X-Forefront-PRVS: 0884AAA693 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(164054003)(24454002)(377424004)(479174004)(36756003)(5008740100001)(189998001)(2870700001)(42186005)(77096005)(4326007)(65956001)(2906002)(66066001)(47776003)(2950100001)(83506001)(92566002)(19580405001)(5004730100002)(110136002)(64126003)(1096002)(23676002)(76176999)(54356999)(65816999)(81166005)(50986999)(19580395003)(3846002)(6116002)(50466002)(4001350100001)(86362001)(586003)(33656002);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR12MB0437;H:Suravees-MacBook-Pro.local;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTFQUjEyTUIwNDM3OzIzOkI1dkVQSkFFcEVPaldZdEtXRjFZN2ZDcVRC?= =?utf-8?B?N3YwVmJtaDJ3dVI5S0g1V0dwZ1ZmeDdrM0prTTIxVHhpQU1TVGlFdTd1ZVFl?= =?utf-8?B?aFltNC9xamJ5VHhwNjIzbFcvemkyNG9qNEJWaFVZYW40dW1Lamg1cEx4dWE4?= =?utf-8?B?Ym1aVERXSjR6U0lYZm9tejZxeW1KcUN2Yjc1VGI1OFRaSDBuZ2NjSlVWRzN0?= =?utf-8?B?WHRCZTNIaGJGUTNMNFZPdTdUeTdYNEFCRmVNbUc2dnpqL3BYUU1LbldZakQ2?= =?utf-8?B?WFA1a0NPREdRdlBkNUR3TmtBUk1VaG0yeTg0SWZqM0FwSEJYOWpZRWpBV3My?= =?utf-8?B?bXpzYTI1TktnUUczYVFZNi9qc2U3WDdoUnkyQjVxK2RESEtzOVB4ZitSWTJL?= =?utf-8?B?VEg5VjJaVkYzZGNWK3RSYXprMFRlRTNybVJOSWRVWVhyZVZJaktYK212YTQ0?= =?utf-8?B?Z05HNnVOVlhPZWFld2pHSXppMnlKbE5mWTFvaTQrVmFBYno2dGlEYTZVTWox?= =?utf-8?B?QmVpT21RdHhPK2c4aUkrYWVwcktReUY2eW41N1JleExWS0l3N3FwaFJxcHo0?= =?utf-8?B?Z2JXajd0ZmJ4dWxybE9ETnN0N1BWUUc2NDloSXRQa0hkVUVHcld1Q3JVNVE3?= =?utf-8?B?d0htSTN6TVdzNjcrWlJJOEZoZ1ZxWm9pUEdYNXdJbXhCT1AvU1Z6SjBpWDNy?= =?utf-8?B?VkxVeFZiOHhibDZsejVmY25aWEFPNHp0QXVrVmJ6SVJWQjQ0eWF0R1dGaThG?= =?utf-8?B?cFN3TUdlVzlrMmJpbWU0TTUxcHprOVgyWHM2THVvNDJaUWkwYXlWdU5IbDNP?= =?utf-8?B?WG1Qek1ZQnlRcWY1VHNwWmtBNVRRSmozMEF1SnRPS1hWRkw0TjhvdEQ0ZmR6?= =?utf-8?B?aDAvMHMwOVJMSkNSbFNMV0xkUE5KUVpCeTRMeG1BUnJnZG5DT0NrYU1Zc0Q1?= =?utf-8?B?c3ptUVJTNjJFQWFKZVlTL016Rmtadk9VaWgvUkZsUEJRTXFjeEZ4eitCNWEy?= =?utf-8?B?YjBRc3doUzRkVXVOMFcwc2hScGxkUHVRL3JBWGR2L09CWWFWOVgrZUNncUZ2?= =?utf-8?B?TkNZTDJxQUU4QXE3MTF6RFZLVHd4L0d0alQ1MDg3MkU4ejg1aWJGaVdldFFI?= =?utf-8?B?WHhSaW9JSStxb09ZRGJtaVMwOTA1bXlTUjF0dHFmSzg4U0VRZ3poWHZPdElC?= =?utf-8?B?Z1NOZ25SZjJwc2ZlQ1pjUWxXcGtqVXdNbG80L3FNenp5YXZWckZYZEltQklr?= =?utf-8?B?aTQxejhPTFdEMUFDRkM5Z1gzODM4ZUpNcUdwZGtybXBQSlJQT09qN21nSVRT?= =?utf-8?B?RHl5dklFek1kNlpNNXczQzRCYjdwNVFwTTk4OEpmemdDcDdpZ1JtL0ZVaEIy?= =?utf-8?B?RWZ2SXBWQjQ2MUU4d2dlS0RXQ21vdXVxVjIxMGdPVGxvYjRKcXovbXM0ZDRY?= =?utf-8?Q?PLSRG8=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0437;5:yrdvOwadk1eVmCXT15ZOHz/D3GBcEu9FrgjmIdTh/iQQEbsnuZIioSqKGQ85GKT4o1i6nZI4RC32x3nIloZZO6xi5ODt8+utWcOji14iGVCOAsqRJ6lNpqqvhRDCJ2+HzmIWHyDcOUNzlF+R+A4cAA==;24:ep3SrE998Vlv/kLgHfLPgi34B3S19P2ZGe5JTzKN/BUxWhjMDwXc0yIs23zS0wLc+45s13wGf4ezPMNrfxgkf/ueOwDKiogl+zXvW0habIc=;20:NJr6Ag5lcKpKQ3PZG1Uo6huYZyypwi4r1nt9crW7L6+5TjE19a3lb+n1M9MoDm9RvmHIQ3PX8Z45LKhYgkGlLJne3RTuFLs0gvUIi8PXbliBrsKGSORuS1pAhDZcK5wDfurIivZCSAmMWt3BPJSIcbiJi5MgRV5GLwFe0ehukSm3Q/Wc2s9I8wNwTKDp4tFW1B4WDLrZISnL0oGBq9bfHlxrL5TDmQGV9mUGhyIkSg+ihdJyJoOFXG58YWHADwS/ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2016 19:44:40.3883 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR12MB0437 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 3/10/16 03:55, Radim Krčmář wrote: > 2016-03-04 14:46-0600, Suravee Suthikulpanit: >> >From: Suravee Suthikulpanit >> > >> >Introduce VMEXIT handlers, avic_incp_ipi_interception() and >> >avic_noaccel_interception(). >> > >> >Signed-off-by: Suravee Suthikulpanit >> >--- >> >diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c >> >@@ -3690,6 +3690,264 @@ static int mwait_interception(struct vcpu_svm *svm) >> >+ case AVIC_INCMP_IPI_ERR_TARGET_NOT_RUN: { >> >+ kvm_for_each_vcpu(i, vcpu, kvm) { >> >+ if (!kvm_apic_match_dest(vcpu, apic, >> >+ icrl & APIC_SHORT_MASK, >> >+ GET_APIC_DEST_FIELD(icrh), >> >+ icrl & APIC_DEST_MASK)) >> >+ continue; >> >+ >> >+ kvm_vcpu_kick(vcpu); > KVM shouldn't kick VCPUs that are running. (Imagine a broadcast when > most VCPUs are in guest mode.) So, besides checking if the vcpu match the destination, I will add the check to see if the is_running bit is set before calling kvm_vcpu_kick() > I think a new helper might be useful here: we only want to wake up from > wait queue, but never force VCPU out of guest mode ... kvm_vcpu_kick() > does both. If I only kick non-running vcpu, do I still need this new helper function? Thanks, Suravee