All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Fedorov <serge.fdrv@gmail.com>
To: Peter Xu <peterx@redhat.com>, qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, drjones@redhat.com,
	mdroth@linux.vnet.ibm.com, libvir-list@redhat.com,
	armbru@redhat.com, abologna@redhat.com, qemu-arm@nongnu.org,
	eblake@redhat.com, christoffer.dall@linaro.org
Subject: Re: [Qemu-arm] [PATCH v7 2/4] arm: enhance kvm_arm_create_scratch_host_vcpu
Date: Thu, 24 Mar 2016 12:13:29 +0300	[thread overview]
Message-ID: <56F3AFB9.5040704@gmail.com> (raw)
In-Reply-To: <1458788142-17509-3-git-send-email-peterx@redhat.com>

On 24/03/16 05:55, Peter Xu wrote:
> Some more lines to make sure we allow NULL for 1st/3rd parameter.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>

Acked-by: Sergey Fedorov <serge.fdrv@gmail.com>

Kind regards,
Sergey

> ---
>  target-arm/kvm.c     | 14 +++++++++++++-
>  target-arm/kvm_arm.h |  6 ++++--
>  2 files changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/target-arm/kvm.c b/target-arm/kvm.c
> index 969ab0b..bb6935e 100644
> --- a/target-arm/kvm.c
> +++ b/target-arm/kvm.c
> @@ -62,13 +62,17 @@ bool kvm_arm_create_scratch_host_vcpu(const uint32_t *cpus_to_try,
>          goto err;
>      }
>  
> +    if (!init) {
> +        goto finish;
> +    }
> +
>      ret = ioctl(vmfd, KVM_ARM_PREFERRED_TARGET, init);
>      if (ret >= 0) {
>          ret = ioctl(cpufd, KVM_ARM_VCPU_INIT, init);
>          if (ret < 0) {
>              goto err;
>          }
> -    } else {
> +    } else if (cpus_to_try) {
>          /* Old kernel which doesn't know about the
>           * PREFERRED_TARGET ioctl: we know it will only support
>           * creating one kind of guest CPU which is its preferred
> @@ -85,8 +89,16 @@ bool kvm_arm_create_scratch_host_vcpu(const uint32_t *cpus_to_try,
>          if (ret < 0) {
>              goto err;
>          }
> +    } else {
> +        /*
> +         * Here, we got init != NULL but cpus_to_retry == NULL,
> +         * meanwhile, we failed to probe one preferred target type
> +         * (no matter what). So we fail.
> +         */
> +        goto err;
>      }
>  
> +finish:
>      fdarray[0] = kvmfd;
>      fdarray[1] = vmfd;
>      fdarray[2] = cpufd;
> diff --git a/target-arm/kvm_arm.h b/target-arm/kvm_arm.h
> index 07f0c72..4f01a99 100644
> --- a/target-arm/kvm_arm.h
> +++ b/target-arm/kvm_arm.h
> @@ -124,9 +124,11 @@ void kvm_arm_reset_vcpu(ARMCPU *cpu);
>   * kvm_arm_create_scratch_host_vcpu:
>   * @cpus_to_try: array of QEMU_KVM_ARM_TARGET_* values (terminated with
>   * QEMU_KVM_ARM_TARGET_NONE) to try as fallback if the kernel does not
> - * know the PREFERRED_TARGET ioctl
> + * know the PREFERRED_TARGET ioctl. If NULL is provided, will try
> + * to use perferred target, and fail if no preferred found.
>   * @fdarray: filled in with kvmfd, vmfd, cpufd file descriptors in that order
> - * @init: filled in with the necessary values for creating a host vcpu
> + * @init: filled in with the necessary values for creating a host
> + * vcpu. If NULL is provided, will not init the vCPU.
>   *
>   * Create a scratch vcpu in its own VM of the type preferred by the host
>   * kernel (as would be used for '-cpu host'), for purposes of probing it


WARNING: multiple messages have this Message-ID (diff)
From: Sergey Fedorov <serge.fdrv@gmail.com>
To: Peter Xu <peterx@redhat.com>, qemu-devel@nongnu.org
Cc: wei@redhat.com, peter.maydell@linaro.org, drjones@redhat.com,
	mdroth@linux.vnet.ibm.com, libvir-list@redhat.com,
	armbru@redhat.com, abologna@redhat.com, qemu-arm@nongnu.org,
	christoffer.dall@linaro.org
Subject: Re: [Qemu-devel] [PATCH v7 2/4] arm: enhance kvm_arm_create_scratch_host_vcpu
Date: Thu, 24 Mar 2016 12:13:29 +0300	[thread overview]
Message-ID: <56F3AFB9.5040704@gmail.com> (raw)
In-Reply-To: <1458788142-17509-3-git-send-email-peterx@redhat.com>

On 24/03/16 05:55, Peter Xu wrote:
> Some more lines to make sure we allow NULL for 1st/3rd parameter.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>

Acked-by: Sergey Fedorov <serge.fdrv@gmail.com>

Kind regards,
Sergey

> ---
>  target-arm/kvm.c     | 14 +++++++++++++-
>  target-arm/kvm_arm.h |  6 ++++--
>  2 files changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/target-arm/kvm.c b/target-arm/kvm.c
> index 969ab0b..bb6935e 100644
> --- a/target-arm/kvm.c
> +++ b/target-arm/kvm.c
> @@ -62,13 +62,17 @@ bool kvm_arm_create_scratch_host_vcpu(const uint32_t *cpus_to_try,
>          goto err;
>      }
>  
> +    if (!init) {
> +        goto finish;
> +    }
> +
>      ret = ioctl(vmfd, KVM_ARM_PREFERRED_TARGET, init);
>      if (ret >= 0) {
>          ret = ioctl(cpufd, KVM_ARM_VCPU_INIT, init);
>          if (ret < 0) {
>              goto err;
>          }
> -    } else {
> +    } else if (cpus_to_try) {
>          /* Old kernel which doesn't know about the
>           * PREFERRED_TARGET ioctl: we know it will only support
>           * creating one kind of guest CPU which is its preferred
> @@ -85,8 +89,16 @@ bool kvm_arm_create_scratch_host_vcpu(const uint32_t *cpus_to_try,
>          if (ret < 0) {
>              goto err;
>          }
> +    } else {
> +        /*
> +         * Here, we got init != NULL but cpus_to_retry == NULL,
> +         * meanwhile, we failed to probe one preferred target type
> +         * (no matter what). So we fail.
> +         */
> +        goto err;
>      }
>  
> +finish:
>      fdarray[0] = kvmfd;
>      fdarray[1] = vmfd;
>      fdarray[2] = cpufd;
> diff --git a/target-arm/kvm_arm.h b/target-arm/kvm_arm.h
> index 07f0c72..4f01a99 100644
> --- a/target-arm/kvm_arm.h
> +++ b/target-arm/kvm_arm.h
> @@ -124,9 +124,11 @@ void kvm_arm_reset_vcpu(ARMCPU *cpu);
>   * kvm_arm_create_scratch_host_vcpu:
>   * @cpus_to_try: array of QEMU_KVM_ARM_TARGET_* values (terminated with
>   * QEMU_KVM_ARM_TARGET_NONE) to try as fallback if the kernel does not
> - * know the PREFERRED_TARGET ioctl
> + * know the PREFERRED_TARGET ioctl. If NULL is provided, will try
> + * to use perferred target, and fail if no preferred found.
>   * @fdarray: filled in with kvmfd, vmfd, cpufd file descriptors in that order
> - * @init: filled in with the necessary values for creating a host vcpu
> + * @init: filled in with the necessary values for creating a host
> + * vcpu. If NULL is provided, will not init the vCPU.
>   *
>   * Create a scratch vcpu in its own VM of the type preferred by the host
>   * kernel (as would be used for '-cpu host'), for purposes of probing it

  reply	other threads:[~2016-03-24  9:13 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-24  2:55 [Qemu-arm] [PATCH v7 0/4] ARM: add query-gic-capabilities QMP command Peter Xu
2016-03-24  2:55 ` [Qemu-devel] " Peter Xu
2016-03-24  2:55 ` [Qemu-arm] [PATCH v7 1/4] arm: qmp: add query-gic-capabilities interface Peter Xu
2016-03-24  2:55   ` [Qemu-devel] " Peter Xu
2016-03-30  1:50   ` [Qemu-arm] " Eric Blake
2016-03-30  1:50     ` [Qemu-devel] " Eric Blake
2016-03-24  2:55 ` [Qemu-devel] [PATCH v7 2/4] arm: enhance kvm_arm_create_scratch_host_vcpu Peter Xu
2016-03-24  9:13   ` Sergey Fedorov [this message]
2016-03-24  9:13     ` Sergey Fedorov
2016-03-29 20:04   ` [Qemu-arm] " Peter Maydell
2016-03-29 20:04     ` [Qemu-devel] " Peter Maydell
2016-03-24  2:55 ` [Qemu-arm] [PATCH v7 3/4] kvm: add kvm_device_supported() helper function Peter Xu
2016-03-24  2:55   ` [Qemu-devel] " Peter Xu
2016-03-24  9:14   ` [Qemu-arm] " Sergey Fedorov
2016-03-24  9:14     ` [Qemu-devel] " Sergey Fedorov
2016-03-24  2:55 ` [Qemu-arm] [PATCH v7 4/4] arm: implement query-gic-capabilities Peter Xu
2016-03-24  2:55   ` [Qemu-devel] " Peter Xu
2016-03-24  9:16   ` [Qemu-arm] " Sergey Fedorov
2016-03-24  9:16     ` [Qemu-devel] " Sergey Fedorov
2016-03-29 20:10 ` [Qemu-arm] [PATCH v7 0/4] ARM: add query-gic-capabilities QMP command Peter Maydell
2016-03-29 20:10   ` [Qemu-devel] " Peter Maydell
2016-03-30 11:20   ` [Qemu-arm] " Andrea Bolognani
2016-03-30 11:20     ` Andrea Bolognani
2016-03-30 14:53 ` [Qemu-arm] " Peter Maydell
2016-03-30 14:53   ` [Qemu-devel] " Peter Maydell

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=56F3AFB9.5040704@gmail.com \
    --to=serge.fdrv@gmail.com \
    --cc=abologna@redhat.com \
    --cc=armbru@redhat.com \
    --cc=christoffer.dall@linaro.org \
    --cc=drjones@redhat.com \
    --cc=eblake@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.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.