[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DE
From: |
Alexander Graf |
Subject: |
Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN |
Date: |
Mon, 26 Aug 2013 15:11:03 +0200 |
On 19.08.2013, at 07:55, Alexey Kardashevskiy wrote:
> From: David Gibson <address@hidden>
>
> Recent PowerKVM allows the kernel to intercept some RTAS calls from the
> guest directly. This is used to implement the more efficient in-kernel
> XICS for example. qemu is still responsible for assigning the RTAS token
> numbers however, and needs to tell the kernel which RTAS function name is
> assigned to a given token value. This patch adds a convenience wrapper for
> the KVM_PPC_RTAS_DEFINE_TOKEN ioctl() which is used for this purpose.
>
> Signed-off-by: David Gibson <address@hidden>
> Signed-off-by: Alexey Kardashevskiy <address@hidden>
> ---
> target-ppc/kvm.c | 14 ++++++++++++++
> target-ppc/kvm_ppc.h | 7 +++++++
> 2 files changed, 21 insertions(+)
>
> diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
> index eea8c09..ab46aaa 100644
> --- a/target-ppc/kvm.c
> +++ b/target-ppc/kvm.c
> @@ -1792,6 +1792,20 @@ static int kvm_ppc_register_host_cpu_type(void)
> return 0;
> }
>
> +int kvmppc_define_rtas_token(uint32_t token, const char *function)
The naming here is slightly confusing. What the ioctl does is define an rtas
token that gets handled in-kernel. The name of the function should reflect
this. How about something like kvmppc_define_rtas_in_kernel()?
Alex
> +{
> + struct kvm_rtas_token_args args = {
> + .token = token,
> + };
> +
> + if (!kvm_check_extension(kvm_state, KVM_CAP_PPC_RTAS)) {
> + return -ENOENT;
> + }
> +
> + strncpy(args.name, function, sizeof(args.name));
> +
> + return kvm_vm_ioctl(kvm_state, KVM_PPC_RTAS_DEFINE_TOKEN, &args);
> +}
>
> int kvmppc_get_htab_fd(bool write)
> {
> diff --git a/target-ppc/kvm_ppc.h b/target-ppc/kvm_ppc.h
> index 4ae7bf2..12564ef 100644
> --- a/target-ppc/kvm_ppc.h
> +++ b/target-ppc/kvm_ppc.h
> @@ -38,6 +38,7 @@ uint64_t kvmppc_rma_size(uint64_t current_size, unsigned
> int hash_shift);
> #endif /* !CONFIG_USER_ONLY */
> int kvmppc_fixup_cpu(PowerPCCPU *cpu);
> bool kvmppc_has_cap_epr(void);
> +int kvmppc_define_rtas_token(uint32_t token, const char *function);
> int kvmppc_get_htab_fd(bool write);
> int kvmppc_save_htab(QEMUFile *f, int fd, size_t bufsize, int64_t max_ns);
> int kvmppc_load_htab_chunk(QEMUFile *f, int fd, uint32_t index,
> @@ -164,6 +165,12 @@ static inline bool kvmppc_has_cap_epr(void)
> return false;
> }
>
> +static inline int kvmppc_define_rtas_token(uint32_t token,
> + const char *function)
> +{
> + return -1;
> +}
> +
> static inline int kvmppc_get_htab_fd(bool write)
> {
> return -1;
> --
> 1.8.3.2
>
- [Qemu-ppc] [PATCH v3 0/8] xics: reworks and in-kernel support, Alexey Kardashevskiy, 2013/08/19
- [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Alexey Kardashevskiy, 2013/08/19
- Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN,
Alexander Graf <=
- Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Benjamin Herrenschmidt, 2013/08/26
- Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Andreas Färber, 2013/08/26
- Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Benjamin Herrenschmidt, 2013/08/27
- Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Alexander Graf, 2013/08/27
- Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Alexey Kardashevskiy, 2013/08/29
- Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Alexander Graf, 2013/08/30
- Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Benjamin Herrenschmidt, 2013/08/30
- Re: [Qemu-ppc] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Alexander Graf, 2013/08/30
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 1/8] target-ppc: Add helper for KVM_PPC_RTAS_DEFINE_TOKEN, Laszlo Ersek, 2013/08/30
[Qemu-ppc] [PATCH v3 2/8] xics: add pre_save/post_load/cpu_setup dispatchers, Alexey Kardashevskiy, 2013/08/19