Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753261AbcCRGOi (ORCPT ); Fri, 18 Mar 2016 02:14:38 -0400 Received: from mail-bn1on0058.outbound.protection.outlook.com ([157.56.110.58]:33350 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756851AbcCRGKy (ORCPT ); Fri, 18 Mar 2016 02:10:54 -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 RFC v3 03/12] KVM: x86: Introducing kvm_x86_ops VCPU blocking/unblocking hooks Date: Fri, 18 Mar 2016 01:09:39 -0500 Message-ID: <1458281388-14452-4-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1458281388-14452-1-git-send-email-Suravee.Suthikulpanit@amd.com> References: <1458281388-14452-1-git-send-email-Suravee.Suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [124.121.8.20] X-ClientProxiedBy: SG2PR04CA0047.apcprd04.prod.outlook.com (25.169.49.143) To BY1PR12MB0437.namprd12.prod.outlook.com (25.162.147.139) X-MS-Office365-Filtering-Correlation-Id: 85bd600e-fff7-43d1-ad04-08d34ef40e3b X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0437;2:MokR91p3wEeDZhMJQBph7pS57sNbqHjF8oauplxkyd3MJAQmG5ajj05lsCY9ug10YYKTSzW9YZqVD0wAmq8CSAHD3IX8RmWa2XL2b57QrvVhJUyU2JGB9Kcuu2i012oJun1VCC5WwCWa+K8bw4ykHfBTo1WPq05bLnjYfAPOFafh/xrmFioQHOSm64yvyAwj;3:cc/nJqGn494CkCOPVq3KWmXfHCEyNP2puieHWfj8fStXv7lQTb/dQ0tYbzpbzph2PoIVw5LBCOBjrTSphRzXgYlOddu7dJ9WMcZdRx5tv/oYEW3sIth9apEi9DO03w0v;25:3VDheXAt77WyW3bpIeYiZBNOXWMvpnWBWRBcjrbfdOyKkJpZTnARf3OBVy5wF0VAuGfTYbsNeWOyFxe7IrKlH99S1Kz/XeTqYab6wb+YVX8g/mP/Tbq082hPhGSf6qgaqF4QosyjuhKG6Zdpj8CPkCJH1OSvf4QOI8jnA+/x5YE+S4I6FXuxlpBm89Kec9g/iceabvCLHKgktqpUIBO5A80swI7Cl9vW8VrgSuaKrFMol9EHST9795otiWIlwoqmia3nhtdOPK/0hrNdM9LdnVBI+05boFavgz02l7DLPlEoeGulxNFGCOumdJ4bVNLR409otXQ8GTXACaDoFQ2UXY7d/JEn2WulhvZR6530U7wiOlUQh4qJh4D+Pd/sWm+ZBpNKOuqKfW5ZPHGc1458KBY4c0OHZAK9tcLiLqwL4q7bVeWB9lJ79hm9ES++AUQL3GQJABXZZeyVQozY6KyNhEFxTv+sXiYWkgwRiuo4xesKq9w+1cO0TU+jhlGdIjRmEotUI0fcskgN778wnjCaIQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR12MB0437; X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0437;20:BmOpogIqrSwS3SM+2NtiMHEDqFKBK2WAGnaT6a4INIdWaQa/nYnjanR2NMHt/xFX2DeFtbrYJ0OOJ1VLykCJ3OK91b9+L4nf1v/1OIYqPapbg0uEU7l2wpItCyEM+rQU5+DiSI1qKRiWp/Q1CLqCN0FtEqcXYEOzay5/GURZT5mApo4bw+DeYl9zxw9ZqCbJP2o+87y/7T4BggmIdEKc9JWQU1Pa4vM5X8J3ord+33ZSZMezbmoRjMuMgZ/emmHUBd0srN8d1Qy72ChOqwz+yxlgvsMG4OsFrPHAZp4BN3VDr0kohGNOja1SyjdaN01+8XX8TE3ywQ5I2YTDCDPoRPwEICXF8/6EcXT/OSdaRxazhFlbg9FW47BKdPspuz65cgvrbRiZ2PD59DiPFtF+sB8+Aatme3W9HgoHwLkiEhRzC6KcC/CHZkB+tciY7QnBGi8YMHLyGgVLqMsU9/Rr6btazYaypE+3ir/wFWKoNICLvfOutuHE1q3qCidM5FRq;4:Q7BAgvL+fviJqx03xs7OhjdEehRFQXnTloeaWswaSkVWZYRo+8HPqAbY54g74kuhImvBl4/IEFwgTbLNhly/TGt46tBaY6z7S6rwJfEx+ULuTB7DihcoXgbHXrxX7xb+7P6WReT+POpltNpXAIImmW687/lLM+5qXFRsnaFp4EmkbNLxoTQgeENI56Rrd1yLf8bQFdzXb884/ZC+7W7OtUnzMRL3R7qHhJBAjudxTn3HNat0LIttujBQjbVfOqqqaYhIBD+NK6oiDjLE79cWvSBBwcGWPFXUv9zlUtjC7xHBzGcS9dbPDIST5rYp5NGrTG0p8udW+Nnbt3wmYZcRik7V59ox8qNV8jk1MjKWyzawNLbkgRpQmXb/diZYffB1 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: 088552DE73 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6069001)(189998001)(66066001)(19580395003)(19580405001)(47776003)(42186005)(3846002)(5001770100001)(50226001)(6116002)(2201001)(86362001)(575784001)(586003)(229853001)(2950100001)(36756003)(5004730100002)(77096005)(81166005)(5003940100001)(4326007)(50466002)(92566002)(48376002)(5008740100001)(76176999)(50986999);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR12MB0437;H:localhost.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0437;23:NceaDJkJ6fp/oMLIyQ7+XBZuzit0Dc3H7GbXwUdT8BWtVOY4Lxp4kl+RPTA+FHNhn6YsUOxLomuyBzRJk2WgxVWtgpmfVWqGSwLre3JStb4YQEWUjq6bJ7LL+qFlEHMbx5++B4TxINcEyJA/LZ2Rtq6yKGAwxEWz7XlVa6MIAYG2ee8jReYhcg9jkqU/XKhGdsTyZsi/uu/XJPPC0efBFhC9buWAtYPZE5ywEt/xtABGCeCzfz6oCwov7UsSyxg+jHnZCGpFjJLoH1pQv3zR6gcWK/jV4QyyR0ktYXeSdZDg1IqxBQIMpEqNhJK4tpilg8caLL6spZLQTajr/jzqoRw7kouF2nQIFcSZUmHI/7uaOjB1AcooC5oRmIHfWnMAaqukJQuq9hN8GlpdJPV40ji2OZ6TU0qxqI5QyCzIy/1C+vNZpjZtfD4hnrSwVKW4ht8ZmERrvSXeGa1Yz7oPuMXDfimPRh1+TZLcVMw5M+vz5ql5Ot+Y3psH2qij8hpZy+MS1h8uLaq/ZK+ShmjPTEqx9YBvQnQDRgmbmNIsIAACjm/UV9NueTnPbspNdviGD+u4bUlidZWrrQEe5bT29f2BW6Rf1cUDQ50kA9oALFL095DmkM4E7frIrL1xd1hzm0/GJW4VkH6IUla0yl182RTjL4DrMpKqbg4f85juXfLyOUcLOM+ECXNRSssdGF5KNFOZE/fwKeW2PCo0I+3/AMpdKni9i6Ep5AokJGx6TuqaXUehbnPX/aWvCSFJyEkq4iUqModAZJ24jlMU6nC3gfRVr01tlrYPqtrublS+52JDRvXuldLe3C+31CA2kVEwJn0C5N5Pwc+U2piSH8UXkvL2AQduQHP/ccOtmLHgVjHrS0hpn2jSvagSkVYzadQ8 X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0437;5:bglSODbLYyPoAWzF5GKwIlFPkvMuGZEaETqtgGbYOn0l8xYtSU7JyGFPA4oauHeMo1bcWXHXtysQOQjKFbQjNW0LrzrReFJ+FKLQgNIYcFeGkuzK2xcb//X9aRVxLZkm5MisQtciNF6VD3+UE+4QLg==;24:oSwWtpEpdFn8ukJKgWZxST3Decb/OYkZcHTQturEwxSzJZS3jW01eIAWvLBDJwvvj1CFqSQBM0xUw/3+7ELs2YXk0SbiBqAn232WJtR+eN8=;20:wUScXc0APVpbyUKvYadop61l9zDbqKf02yEzHu4hMZGxuft2Xd/i29WexrYHp0rSex+1y9xVS+A5CwNWYQ5fkIb4iXL8AdcRKdVt7H0Mo71o5Mt1zWQ6LcszntAbFcUEqPYEDA66cP5FvIagetIGViC1DfdSzZ7XO8PQ5T82ihvjoLeL+9bhBhsfknMQ9VL2sgBxt9RWy1UdyamKLe3LeOurNqyEIBoEZ6kobd2uzeTz2Uiy0ThWamtjxtiwT5K6 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2016 06:10:42.5429 (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 Content-Length: 1502 Lines: 44 Adding new function pointer in struct kvm_x86_ops, and calling them from the kvm_arch_vcpu[blocking/unblocking]. Signed-off-by: Suravee Suthikulpanit --- 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 4b0dd0f..87eac2a 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -972,6 +972,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); }; @@ -1323,7 +1327,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