From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754726AbcEDTKl (ORCPT ); Wed, 4 May 2016 15:10:41 -0400 Received: from mail-by2on0093.outbound.protection.outlook.com ([207.46.100.93]:44256 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754519AbcEDTKh (ORCPT ); Wed, 4 May 2016 15:10:37 -0400 Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=amd.com; From: Suravee Suthikulpanit To: , , , , , CC: , , , , Suravee Suthikulpanit , Suravee Suthikulpanit Subject: [PART1 V5 04/13] KVM: x86: Introducing kvm_x86_ops VCPU blocking/unblocking hooks Date: Wed, 4 May 2016 14:09:43 -0500 Message-ID: <1462388992-25242-5-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1462388992-25242-1-git-send-email-Suravee.Suthikulpanit@amd.com> References: <1462388992-25242-1-git-send-email-Suravee.Suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BY2PR21CA0014.namprd21.prod.outlook.com (10.162.74.152) To BLUPR12MB0433.namprd12.prod.outlook.com (10.162.92.139) X-MS-Office365-Filtering-Correlation-Id: 4674f97b-eadf-4ebe-21ed-08d3744fc577 X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0433;2:JkhyDm/AYHk3jn4jO+kGh/KfqTKnMbqsbcWRwARxLuvqZf5vbmd36JzZhz5ndLTFN3v59FBBfPeaHhS4xRvpPE9u5vslYSqwbhGW3FkjjsIFppBqGpWradhM2qK7T8aKmGnCmbvx5KEs7sEAhtQTDkzuxAPEa34gBbY8AHz3fKAWVQhrfPSIv+wqzXwhnnir;3:N1x5wwLD5VunL3NehMsXd0H7y8inNdsGq4z/xFygGxqgbAHm2zwf7h7ZNpatSwfOOhfDS5o5DnKmyZp1smjjPVOg8jNqMcOmOiCTAnXrn8ZH2+O9WDVR1Dyzdzkq4Xkk;25:N0Gw7/fkoAZxhHk2myOYZYzgYIXVfG3hIEmBThCkuyKsW86qvvrhlXYSoUnvoCP0QdTAqC2ovjZv8h71by2zI7jRjjBUua2woZOUqJ+i8WjvfqdWPzcmTuKbuyIiG8Dt+1h1hTT8BUvyCXVmQlrW/feJZey8rJhmuUpFl6swcYZQb5GhESmFiCAVfj5zXs5nazcXcuhD7eJ4EYwhidlLYV0Jzg1sudcpoP4XLePakbP6ALwyVpNzMA4BLYfivD6vofbC28++wQyi33qpv46tfBNPZW+4OIKHRBafaaHUhhKuQwBRBoEsMI9qIPT4xkj4jExNbbhNDCByNiOv+O37wg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0433; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0433;20:CHNo4WWnb7E4s3Oknm2+QSzHydESVhfkkVx4JHy+npaIuvCVJtwg7lWOSRLxQyzS1//VHH2uiqQg67sbsn1uIY7/EOctyJCy4A9IhZoSAWC4ZCHqf5i4l8HqNZdtqwTxoVjKWOlB9dHYHIt/KfjnCq97sg6W6d8Ig6KP1sVPDudIiogmyLv6Izyvn4ZuMDkPVb83smPoLLjzwnpNZzU1rzef3VD6suBWSg6xP8v400F+M+JtjGarQTZk9dVdsExpoF4PAKcfdQgOIvRG58W0Tt9bEiTaf/6dQS8DeYr88ft2el4cJiXyRFXStT8e61hmdYjYXKNnZiahsV6g3BY1314HqJk6NSIWzjnBFiU/ueC5J4OSVAEqzUJkj0CzgyCB95kmHMmhxUJoEod0dZNNxz14TpzptuSqmf+HzxibSba1/WR/geLzfdqDirEy4LfKfZgrc/mLYUbOdQ6MvAWM5p2ZjzetLsL6THJ8B9IAcSYHSfAIgIk348WvMdWir87U;4:mQKOGIRVTSqfrZy4f6M+9UcVJsiD911yDO4qHZBUBGBVmRV0FyhaznO8ii+bDkaLc67Yi8Pjlz5AEUHAVSkN6j2rZ0v89m6pXVW10MCTf9VKkgLsevb3UiGMietd7EW9I/eBrGK7tYcyrNl8LwBN9Smz7EJYzgaS4CVC1NCzeiOE/9c2uVC7SCKEPLgfw9xzIFN4vu/zkqMcXnbSDaVT2Q1udObYwKQEoaCDflTcTVfhdP+0nJtohxRBr/sSFSFO53a6n2ztFEYCecprpeOln9+2jtJfiQ4alqq0sWre8MPCBGvm98JkExWlLQB20SKtiCtjV16RqbiBjbF0dv8k0OoN79rwww9mpOK0m5ODQVdQT/XQi4j/mQahz/jVX4lnsk/TdIcloE+dFotiit9pEAsgh2AIRzAGwbQJ/2YqVGDaWVi5gE8utGr8d4kgSa7G X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101528026)(9101521098)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026);SRVR:BLUPR12MB0433;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0433; X-Forefront-PRVS: 093290AD39 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(50986999)(76176999)(50226002)(47776003)(66066001)(229853001)(36756003)(189998001)(19580395003)(19580405001)(2906002)(2950100001)(5003940100001)(53416004)(2201001)(5004730100002)(92566002)(4326007)(5001770100001)(77096005)(586003)(42186005)(5008740100001)(81166005)(48376002)(3846002)(6116002)(86362001)(50466002);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR12MB0433;H:ssuthiku-cz-dev.amd.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0433;23:zOI01nN1ywxMcS8rm08d2owEZ0tlZHpAuoNwfyT11BvoqpE5FBmC2Mmxv8TFyEYyh9LwOgoJEjbiVTCeRr9RjWdRL7loX4TvLbBTp5xStjS1OIOTRW5VxkDq1PQ0PVXA7zPuRnaBEf2fLlSenF6a/Zr9epXb70gzQZh9aC4DM6o2a/X96+UktL5eh/8GIEP2ObTg+ZuuKDvnjz3g4qhS2nEpNrDhJwVvqYJ0RMBbCD0nmvcX5BivCfcxkkwVNIlg+TxKQfFAcq1xPjnfTGQKGR6UWud/ztrFK+vWoRnNyjmdKTYg7GCRLxmAIKQidbCZ2I6Q7SNRPL4rRNWIJlMnbWqXZuTeH6Q2cnFY3VBKYWpvBVGXz2wtTAq8nsoBBLHjkOh0sxewDTmff/ljOLXxycv8tYSsNKi0DAdXb3eISJ9RahkLcWWYqIIEZ2p1d05Y/EocjiNGN7MLtKI2tBESJlG982AYNiwCTJTfEitP3QbL7UIaOCniIyoG8d6jZbAeEjIaLEyIM75D2EiDIOuvVuncJO18a99kjZKy9D+qeCiTqUPByIMVh7YPpkEhXdcTa0G3iwkIo5pufrnBd1NpAJgkafO1+KYsQEW3Mn2ehKtcpKMznkXeCaUEJmN3kl0tmDCIDI7730UMRZR2r26ohMsp9VPXMO+IqffacCGBjJK1Fo5ncy3UuML33WTIegtg1SiYG4tN3Cg0YDGwWnhqcZyXvvG76tvZZFhJzMJsyNbp/sAp5E5w/reZvU/MqCAujFouMG4juNsmRhTueoHmjdCqJfxFk27nnDW366GtqKy7hwltm2G1FnyEnPK4L2xPq/gtkBzfuERKTboVG2XhHgyB76AkxRj04yiEnpGzNrm9sOCbILd/IHyTrmcy0qtM X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0433;5:IneqH0k6Mc/MoXTtSYPOpvWCNxHnaydRA1AMNxPRoIIXX+Hc9BwawWF5dBRBfe67RCJYACA1NBUOwU9gRQhlY1ewMinQXptXGSAKkHsQsrhqTHatsvVTmQP6X5/DXTMWJP5NOQ2RuBbSAFsPoLaSuA==;24:VeOGs0qK+xzoKIBYiuMomCv2o1bK/8riWGbeG9sX07STQlTNJCU6WOAHrYlYhRa4bqJAYD2tEjjrrgKHXY81T09FIP8MMjwOUuiNghGVr6s=;7:m/3T1lTdjge/Gn8egqW4PemTuWSciDA63yI253ov8tXl8rGIY4lImYgMoRfQLl3BAsUKaEf6bdmyXvErytVX9ElGIHBWZszYwWnkp5018ZoZAVw+kZ1lPUVXr9hsB3qu3qzc1icYaCjbzCQOsOslKpC2o1Koo6kQrP3en8m4QhQ=;20:JdIjPTagUlxrZPoJ/leVsfbBLRL8w36lVD+ZhlWFROvJPwjwaD7g7bk52toyWAoToQACPOqh76b+g2qwYs5bGIxEdFExxpnC4Ojz+EMIOw7WyLoqzb3pbCt9CzTto9PTsYZeHcEQB4vjBSkVAbkBSc+i3EjLvSaR41xYiDZ6K9o98ltoQyNHNFFUa7VdrVGxq3ICsxZiJx1y+ymW7cHnXqSfeIaxBWNqCXdH7hcrBEJolOe3+TTWDnMemiecAzCY X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2016 19:10:28.5713 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR12MB0433 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Adding new function pointer in struct kvm_x86_ops, and calling them from the kvm_arch_vcpu[blocking/unblocking]. Signed-off-by: Suravee Suthikulpanit Reviewed-by: Paolo Bonzini --- arch/x86/include/asm/kvm_host.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 353d61b..1454859 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -993,6 +993,10 @@ struct kvm_x86_ops { */ int (*pre_block)(struct kvm_vcpu *vcpu); void (*post_block)(struct kvm_vcpu *vcpu); + + void (*vcpu_blocking)(struct kvm_vcpu *vcpu); + void (*vcpu_unblocking)(struct kvm_vcpu *vcpu); + int (*update_pi_irte)(struct kvm *kvm, unsigned int host_irq, uint32_t guest_irq, bool set); }; @@ -1344,7 +1348,16 @@ bool kvm_intr_is_single_vcpu(struct kvm *kvm, struct kvm_lapic_irq *irq, void kvm_set_msi_irq(struct kvm_kernel_irq_routing_entry *e, struct kvm_lapic_irq *irq); -static inline void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu) {} -static inline void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu) {} +static inline void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu) +{ + if (kvm_x86_ops->vcpu_blocking) + kvm_x86_ops->vcpu_blocking(vcpu); +} + +static inline void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu) +{ + if (kvm_x86_ops->vcpu_unblocking) + kvm_x86_ops->vcpu_unblocking(vcpu); +} #endif /* _ASM_X86_KVM_HOST_H */ -- 1.9.1