All of lore.kernel.org
 help / color / mirror / Atom feed
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 1/4] ARM: KVM: Implement kvm_vcpu_preferred_target() function
Date: Thu, 19 Sep 2013 15:27:54 +0100	[thread overview]
Message-ID: <523B09EA.9050408@arm.com> (raw)
In-Reply-To: <1379596302-21522-2-git-send-email-anup.patel@linaro.org>

On 19/09/13 14:11, Anup Patel wrote:
> This patch implements kvm_vcpu_preferred_target() function for
> KVM ARM which will help us implement KVM_ARM_PREFERRED_TARGET ioctl
> for user space.
> 
> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> ---
>  arch/arm/kvm/guest.c              |   20 ++++++++++++++++++++
>  arch/arm64/include/asm/kvm_host.h |    1 +
>  2 files changed, 21 insertions(+)
> 
> diff --git a/arch/arm/kvm/guest.c b/arch/arm/kvm/guest.c
> index 152d036..b407e6c 100644
> --- a/arch/arm/kvm/guest.c
> +++ b/arch/arm/kvm/guest.c
> @@ -222,6 +222,26 @@ int kvm_vcpu_set_target(struct kvm_vcpu *vcpu,
>  	return kvm_reset_vcpu(vcpu);
>  }
>  
> +int kvm_vcpu_preferred_target(struct kvm_vcpu_init *init)
> +{
> +	int target = kvm_target_cpu();
> +
> +	if (target < 0)
> +		return -ENODEV;
> +
> +	memset(init, 0, sizeof(*init));
> +
> +	/* 
> +	 * For now, we return all optional features are available
> +	 * for preferred target. In future, we might have features
> +	 * available based on underlying host.
> +	 */
> +	init->target = (__u32)target;
> +	init->features[0] |= (1 << KVM_ARM_VCPU_POWER_OFF);

I'm in two minds about this feature reporting. I see they serve a
purpose, but they also duplicate capabilities, which is the standard way
to advertise what KVM can do.

It means we end up having to sync two reporting mechanism, and I feel
this is in general a bad idea.

Furthermore, KVM_ARM_VCPU_POWER_OFF is hardly a feature of the HW, but
rather a firmware emulation thing.

Peter, Christoffer: Thoughts?

	M.

> +	return 0;
> +}
> +
>  int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
>  {
>  	return -EINVAL;
> diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
> index f318c43..b609db3 100644
> --- a/arch/arm64/include/asm/kvm_host.h
> +++ b/arch/arm64/include/asm/kvm_host.h
> @@ -156,6 +156,7 @@ struct kvm_vcpu_stat {
>  struct kvm_vcpu_init;
>  int kvm_vcpu_set_target(struct kvm_vcpu *vcpu,
>  			const struct kvm_vcpu_init *init);
> +int kvm_vcpu_preferred_target(struct kvm_vcpu_init *init);
>  unsigned long kvm_arm_num_regs(struct kvm_vcpu *vcpu);
>  int kvm_arm_copy_reg_indices(struct kvm_vcpu *vcpu, u64 __user *indices);
>  struct kvm_one_reg;
> 


-- 
Jazz is not dead. It just smells funny...

  reply	other threads:[~2013-09-19 14:27 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-19 13:11 [PATCH v3 0/4] Target CPU=Host implementation for KVM ARM/ARM64 Anup Patel
2013-09-19 13:11 ` [PATCH v3 1/4] ARM: KVM: Implement kvm_vcpu_preferred_target() function Anup Patel
2013-09-19 14:27   ` Marc Zyngier [this message]
2013-09-19 19:20     ` Christoffer Dall
2013-09-23  8:05       ` Anup Patel
2013-09-23 15:31         ` Christoffer Dall
2013-09-23 15:44           ` Marc Zyngier
2013-09-23 15:54             ` Anup Patel
2013-09-23 16:16               ` Christoffer Dall
2013-09-19 13:11 ` [PATCH v3 2/4] ARM64: " Anup Patel
2013-09-19 14:15   ` Marc Zyngier
2013-09-19 15:51     ` Anup Patel
2013-09-19 13:11 ` [PATCH v3 3/4] ARM/ARM64: KVM: Implement KVM_ARM_PREFERRED_TARGET ioctl Anup Patel
2013-09-19 13:11 ` [PATCH v3 4/4] KVM: Add documentation for " Anup Patel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=523B09EA.9050408@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.