From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754498AbcEDTKf (ORCPT ); Wed, 4 May 2016 15:10:35 -0400 Received: from mail-by2on0094.outbound.protection.outlook.com ([207.46.100.94]:2275 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753526AbcEDTKa (ORCPT ); Wed, 4 May 2016 15:10:30 -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 03/13] KVM: x86: Introducing kvm_x86_ops VM init/destroy hooks Date: Wed, 4 May 2016 14:09:42 -0500 Message-ID: <1462388992-25242-4-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: 687687b7-5464-4dfa-9760-08d3744fc129 X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0433;2:eWLKQj5MBoJokEMPbN0HB9n1o9L5dDEHA/VYDvuikj2MwWXEetETtuzHCFJ5LM4uO+RTXXpZTwWAbZxT1IF6Uek7KzlkSXz5ZAO+8PFT1IOPc5PcXbVyswKM9fYhj7VfPKYYiRwQRmqh9aFF2h89b8KRCofkcl9yezbtgj6DqCwILWvQglmno5jEHhREfQlQ;3:1BT5FFM/usTP2UnIh8pl9BwYZ1yCVZ9BN69pbXkAN0n8DOiC8es2nPQZhwt13K8ks9rX9QfCHB2aUed151Kb98ALNKRzEpaCXFg4o4PV8aVi3TOJSEvkUKqFotm3cMXi X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0433; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0433;25:JtGr34AXwNqEpB+o4HL+RYkP5/OnXyhs+xsw7EoD8myzYBBbxZm4zhTyhDObTb2QaK+dWc0fsSC9Cg1LthfMt4eUU87b3T+FCeI+EOpKJG+hvJl6u1eF79Vt6qQHY4unVLFoMBWgwSsldIemJANeVWd7sNKAfk3Y51DYVFtLmqc8gRIRuRtFg+NEIQhY9JaRa5pEB3W87BMqPCiTVU8LFhKsp70otoO80/jJsqnJTo38j8aHkBDU6kj4cVhjlPlbKfP5FqmTJtwM5SxlD/u4iBJkmBX4vuTTOvP/G+o7UPJKrsjsLgeSLnBcvVHZGWcSmPsHDvuqWh9SLLntJzpcKUQ+bfC/l5gmXQR+baMmea4zshanprhUIJcJTNa7lN0T8mHt5KYHy/cuTlPwP0vUHrTuxV21ZUpAoDiPvj/Vft8wQh4BEZbXGtdTPh2li6WfiJxcN/SZDwSrIqx5B+TGUYxEcVvmt/LgoRLS0oq583yHQ6xBPXgVLRjPI6zWKO9wcj/PIPfvWUDEQ+aC1EMNJksazyb6twZWx8boiO4v4k/IWyjWmv781H+qcXgiUD9UPNxrV+au9ytWePAuUgdJKWtub47bQj3MQ3GDZI9KjXcD3/yd1XCR31XpPv0tL8Msg8EqCp7EQaI0hx+5cb+wLGFlZaoz50xaE/VTjggFIdA= X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0433;20:s9mEqDkOsz+Fbdp0IOHvZIkEsnPz3YC8QTasYUMqyolg+sYbNxOxLjvX/5UHFoDAkPTAuubb0Mh1r6B0X6wvkApUF847AvVmqDkqahX106YS59qoxn5M+DRA6j41BYFZpM3D/aGCBPrbJnCH17B7hPCMORO3D8ykB+CaF0XGPCKJ6Leg5gJ2+qIitH5rvJpcTI44UosSLSNXeevw8Vg6nnTvzRvsIPoSL3S/F7YOazk95nus27EsOQe6OGAXG7AwNYtqDR05/EFrcebUwWlVBoNFFE3gDsiN+2DPvZc6/WB4osv0Q6U6Sa/betJsC6utzPFbm61NgyOrvwvyAM9qUzaOWtVuRs3oz1fH4KROd2vIbMgkKi4wiQMgaLkrqtqv1QJWr78x9Vrl0XVUPzylbN7atwU777kKmQqEb5vLRBqIHDk2M7GlZJUHdYHdRbeNU8mMooPLCmmwPMzRCc8RNDv9K85cpO/GM0TQIkVE2KGCPQv9mArlmLmVDA2LYj90;4:DFZjGFP3zyHImujkLF3eguA7CqDaLO0QeASqxkwdUxuZ7PE7qlajkvA/v3HE6BlSWavg4wOJ0KQPBuv09bHGHLRje4kXBt9iqwNlqvFD45pzoRRvEgeyvYALRKuM8lKGIuShTxXG+eLQ+IC3XoxJWzZsSRQPmGYPqD1Xc264nN8bVnhD3MgB5YfFvtUNYYqkCUvSVDdD17HB3tzR6sIMBAOX4FwQHRRE4wvRb7rqCYLg/8oT6anUohInZtEPFYQMxaKw/G0SmZyP6zBgZleDYpHhQuhOxkpUoPd4iPUzy1dAciPHLs/3wPziZjyL6MYsg3zkCnxDBvDyqVlZYKYqzwtUtixADjO3GERZXCdAuOs/EHRtfWgATNiSeJzP98pieBa19BNnW4TNvwzCb2FjoJ7FVISOKCoqX+RmivqfGfhUorNEc8TYISwiN8nl5FeP 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)(5890100001)(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:o6tLE6YrfrZCd519hw1LIr11udR/SMDLqEQCNrMaoVZBvuPZQJ/ykUfH2g7HDOaaD6JFjfQo2YB0x+t4za7CTJT7ZuylCX2k6ZWyR2nGSAUYo5+BYQUJvE/dbBA/zi2rt0M8rwpx3bf01ANeogjMfbtgHb+F8JrgdhzAflvm5Umwbx7hfKIf8OW71lm/IWraO0qxDMEcbf1pSoAfpPQSn2QSGeg0EhHxkNajQVTKJosJ5U03mZbtjlwtjqbiOmN96OBgBm20lTHgo5Aeu0voX0sd8RxJSusDHWDJz2VE4HVjn59ynBcbSfcNBe+vkGEqVGJcYY7Oay/byr1SSO4idtjWiMazUJkvAJpAKkD6VvSPS345GTJ/+kdqwUqLQZlT19KQoja3kzfNLdtTwjVa4rq0AK+9S0U7oby8fEc5nOtgmHiGZuMyEdkALJXOE9uyATzV97K6TpLKrMdnXUzS0MzooXAp6DzgwVxM/ZOk3ngJoAR/ENGLqW6LoH7DNwF6Kv2BOFnN7F/d4X1vAZHQXOiwsgZbq7L3Y2tVJNnUoSPD138DDeuPqcfzvdSexNknICBp8GDPYQql/RsOcBuKhGyYfi4pPbVrzG+ODbO1zAjdGdHGeROkDpkYI0oth9l9WbX3Nphk16bfQabHM4DAp3ZGVWhaU8/3C5oI+Lq9fQcoluqx+cyuIZu7EfrfODLuDq/1I5NeAomVhL0tPyZVtAuyRMwpfTF0OdY9nnOP6Sep2yaxv3s48TfUl90Oj7GQo7j2KE/HHB74jY1WaBiP/9ZYUlIaq+fdqCNr/u4HIEKjniv2UfnrH2HdFYoLKiSLisvOOq8FbOjm9dpZt0BNvb3vhy0LhuhtqBNkQWJWQVLd4gHRv5YTpjjbbDDRTm97PL9uAOsxpXCZMkd1wDnaLg== X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0433;5:j1JLUFkHKutQr4X4kO/D0Od5kR0kAf/rl/5q2KVitSqnvr1OMggnvgTexMQ+ZcVxIc3wCNt/hDsVEMVEhJWLMhmpHcP66BtrwmRFkBu1zwUM6fjY3DH+ij1W0e8p2VLElujLY6fDze6MBdp8NBCkwg==;24:7BQS5uOxKoKXPTuvtMkwfaAdrbdjoGEZQhhes/NtpIVecrESR6HDBNFZQliHlrwliQYRrMVrs8a0yy6OnldUu6a1vA0v0C6nzZf80TOSnts=;7:cfCL4yVzuNABF6wvf5r4PwYJAyjV0UugcedKjMFl5y2KDM5iap/Hc5PWrb0c3fdVX1i/1kweNp6YJBBpIeit01OrQgRw8389aTWd/wz7y8yCZbE6U2dEXd+Up4O83VvmEFVWMPTJW039dcWufpf6y6hWhst8B42+0kD02gQJjC8=;20:Dxmyeqm2GhycubSNKgY8Pyjy2+ekq0vf/7kto9xdN7xpQwve8Iksm833pyaAVKxV2NVV2eFSbrRCOIK0NzVnnBDyauzqkPtfFdsgb7XGiXxv53NGEvgfDbt0Ool5A1uSfgJn9Ckpnex77O9qmM/7Q2m0iAbp+K257MlTsngcGdjdaTZmWLkZ1K27mn0TSAMp1DksU7VkMgl0ZyppVeeYGq37YeLLvAck24q+VYuFmOMe+tK4alD7d2Rq4ahS3KB2 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2016 19:10:21.3523 (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 function pointers in struct kvm_x86_ops for processor-specific layer to provide hooks for when KVM initialize and destroy VM. Signed-off-by: Suravee Suthikulpanit --- arch/x86/include/asm/kvm_host.h | 3 +++ arch/x86/kvm/x86.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index b7e3944..353d61b 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -848,6 +848,9 @@ struct kvm_x86_ops { bool (*cpu_has_high_real_mode_segbase)(void); void (*cpuid_update)(struct kvm_vcpu *vcpu); + int (*vm_init)(struct kvm *kvm); + void (*vm_destroy)(struct kvm *kvm); + /* Create, but do not attach this VCPU */ struct kvm_vcpu *(*vcpu_create)(struct kvm *kvm, unsigned id); void (*vcpu_free)(struct kvm_vcpu *vcpu); diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 12f33e6..bbdcaa8 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -7752,6 +7752,9 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) kvm_page_track_init(kvm); kvm_mmu_init_vm(kvm); + if (kvm_x86_ops->vm_init) + return kvm_x86_ops->vm_init(kvm); + return 0; } @@ -7873,6 +7876,8 @@ void kvm_arch_destroy_vm(struct kvm *kvm) x86_set_memory_region(kvm, IDENTITY_PAGETABLE_PRIVATE_MEMSLOT, 0, 0); x86_set_memory_region(kvm, TSS_PRIVATE_MEMSLOT, 0, 0); } + if (kvm_x86_ops->vm_destroy) + kvm_x86_ops->vm_destroy(kvm); kvm_iommu_unmap_guest(kvm); kfree(kvm->arch.vpic); kfree(kvm->arch.vioapic); -- 1.9.1