[RFC v0 PATCH] kvm: powerpc: Allow reuse of vCPU object
Bharata B Rao
bharata.rao at gmail.com
Mon Mar 16 14:25:17 AEDT 2015
Any feedback on the below patch ?
On Mon, Mar 9, 2015 at 11:00 AM, <bharata.rao at gmail.com> wrote:
> From: Bharata B Rao <bharata at linux.vnet.ibm.com>
>
> Since KVM isn't equipped to handle closure of vcpu fd from userspace(QEMU)
> correctly, certain work arounds have to be employed to allow reuse of
> vcpu array slot in KVM during cpu hot plug/unplug from guest. One such
> proposed workaround is to park the vcpu fd in userspace during cpu unplug
> and reuse it later during next hotplug.
>
> More details can be found here:
> KVM: https://www.mail-archive.com/kvm@vger.kernel.org/msg102839.html
> QEMU: http://lists.gnu.org/archive/html/qemu-devel/2014-12/msg00859.html
>
> In order to support this workaround with PowerPC KVM, don't create or
> initialize ICP if the vCPU is found to be already associated with an ICP.
>
> Signed-off-by: Bharata B Rao <bharata at linux.vnet.ibm.com>
> ---
> Note: It is not sure at the moment if "park vcpu and reuse" approach will
> be acceptable to KVM/QEMU community, but nevertheless I wanted to check
> if this little patch is harmful or not.
>
> arch/powerpc/kvm/book3s_xics.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/kvm/book3s_xics.c b/arch/powerpc/kvm/book3s_xics.c
> index a4a8d9f..ead3a35 100644
> --- a/arch/powerpc/kvm/book3s_xics.c
> +++ b/arch/powerpc/kvm/book3s_xics.c
> @@ -1313,8 +1313,13 @@ int kvmppc_xics_connect_vcpu(struct kvm_device *dev, struct kvm_vcpu *vcpu,
> return -EPERM;
> if (xics->kvm != vcpu->kvm)
> return -EPERM;
> - if (vcpu->arch.irq_type)
> - return -EBUSY;
> +
> + /*
> + * If irq_type is already set, don't reinialize but
> + * return success allowing this vcpu to be reused.
> + */
> + if (vcpu->arch.irq_type != KVMPPC_IRQ_DEFAULT)
> + return 0;
>
> r = kvmppc_xics_create_icp(vcpu, xcpu);
> if (!r)
> --
> 2.1.0
>
--
http://raobharata.wordpress.com/
More information about the Linuxppc-dev
mailing list