Re: [PATCH 08/11] powerpc/kvm: KVM-HV HPT resizing stub implementation

2016-12-16 Thread Thomas Huth
On 15.12.2016 06:54, David Gibson wrote:
> This patch adds a stub (always failing) implementation of the ioctl()s
> for the HPT resizing PAPR extension.
> 
> Signed-off-by: David Gibson 
> ---
>  arch/powerpc/include/asm/kvm_ppc.h  |  4 
>  arch/powerpc/kvm/book3s_64_mmu_hv.c | 16 
>  arch/powerpc/kvm/book3s_hv.c| 22 ++
>  3 files changed, 42 insertions(+)

I think I'd just squash this with the patch where you do the real
implementation.

 Thomas



Re: [PATCH 08/11] powerpc/kvm: KVM-HV HPT resizing stub implementation

2016-12-16 Thread Thomas Huth
On 15.12.2016 06:54, David Gibson wrote:
> This patch adds a stub (always failing) implementation of the ioctl()s
> for the HPT resizing PAPR extension.
> 
> Signed-off-by: David Gibson 
> ---
>  arch/powerpc/include/asm/kvm_ppc.h  |  4 
>  arch/powerpc/kvm/book3s_64_mmu_hv.c | 16 
>  arch/powerpc/kvm/book3s_hv.c| 22 ++
>  3 files changed, 42 insertions(+)

I think I'd just squash this with the patch where you do the real
implementation.

 Thomas



[PATCH 08/11] powerpc/kvm: KVM-HV HPT resizing stub implementation

2016-12-14 Thread David Gibson
This patch adds a stub (always failing) implementation of the ioctl()s
for the HPT resizing PAPR extension.

Signed-off-by: David Gibson 
---
 arch/powerpc/include/asm/kvm_ppc.h  |  4 
 arch/powerpc/kvm/book3s_64_mmu_hv.c | 16 
 arch/powerpc/kvm/book3s_hv.c| 22 ++
 3 files changed, 42 insertions(+)

diff --git a/arch/powerpc/include/asm/kvm_ppc.h 
b/arch/powerpc/include/asm/kvm_ppc.h
index 3b837bc..f8eaed0 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -215,6 +215,10 @@ extern void kvmppc_bookehv_exit(void);
 extern int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu);
 
 extern int kvm_vm_ioctl_get_htab_fd(struct kvm *kvm, struct kvm_get_htab_fd *);
+extern long kvm_vm_ioctl_resize_hpt_prepare(struct kvm *kvm,
+   struct kvm_ppc_resize_hpt *rhpt);
+extern long kvm_vm_ioctl_resize_hpt_commit(struct kvm *kvm,
+  struct kvm_ppc_resize_hpt *rhpt);
 
 int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu, struct kvm_interrupt *irq);
 
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c 
b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index cd145eb..ac0f18b 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -1160,6 +1160,22 @@ void kvmppc_unpin_guest_page(struct kvm *kvm, void *va, 
unsigned long gpa,
 }
 
 /*
+ * HPT resizing
+ */
+
+long kvm_vm_ioctl_resize_hpt_prepare(struct kvm *kvm,
+struct kvm_ppc_resize_hpt *rhpt)
+{
+   return -EIO;
+}
+
+long kvm_vm_ioctl_resize_hpt_commit(struct kvm *kvm,
+   struct kvm_ppc_resize_hpt *rhpt)
+{
+   return -EIO;
+}
+
+/*
  * Functions for reading and writing the hash table via reads and
  * writes on a file descriptor.
  *
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 957e473..d022322 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -3617,6 +3617,28 @@ static long kvm_arch_vm_ioctl_hv(struct file *filp,
break;
}
 
+   case KVM_PPC_RESIZE_HPT_PREPARE: {
+   struct kvm_ppc_resize_hpt rhpt;
+
+   r = -EFAULT;
+   if (copy_from_user(, argp, sizeof(rhpt)))
+   break;
+
+   r = kvm_vm_ioctl_resize_hpt_prepare(kvm, );
+   break;
+   }
+
+   case KVM_PPC_RESIZE_HPT_COMMIT: {
+   struct kvm_ppc_resize_hpt rhpt;
+
+   r = -EFAULT;
+   if (copy_from_user(, argp, sizeof(rhpt)))
+   break;
+
+   r = kvm_vm_ioctl_resize_hpt_commit(kvm, );
+   break;
+   }
+
default:
r = -ENOTTY;
}
-- 
2.9.3



[PATCH 08/11] powerpc/kvm: KVM-HV HPT resizing stub implementation

2016-12-14 Thread David Gibson
This patch adds a stub (always failing) implementation of the ioctl()s
for the HPT resizing PAPR extension.

Signed-off-by: David Gibson 
---
 arch/powerpc/include/asm/kvm_ppc.h  |  4 
 arch/powerpc/kvm/book3s_64_mmu_hv.c | 16 
 arch/powerpc/kvm/book3s_hv.c| 22 ++
 3 files changed, 42 insertions(+)

diff --git a/arch/powerpc/include/asm/kvm_ppc.h 
b/arch/powerpc/include/asm/kvm_ppc.h
index 3b837bc..f8eaed0 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -215,6 +215,10 @@ extern void kvmppc_bookehv_exit(void);
 extern int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu);
 
 extern int kvm_vm_ioctl_get_htab_fd(struct kvm *kvm, struct kvm_get_htab_fd *);
+extern long kvm_vm_ioctl_resize_hpt_prepare(struct kvm *kvm,
+   struct kvm_ppc_resize_hpt *rhpt);
+extern long kvm_vm_ioctl_resize_hpt_commit(struct kvm *kvm,
+  struct kvm_ppc_resize_hpt *rhpt);
 
 int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu, struct kvm_interrupt *irq);
 
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c 
b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index cd145eb..ac0f18b 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -1160,6 +1160,22 @@ void kvmppc_unpin_guest_page(struct kvm *kvm, void *va, 
unsigned long gpa,
 }
 
 /*
+ * HPT resizing
+ */
+
+long kvm_vm_ioctl_resize_hpt_prepare(struct kvm *kvm,
+struct kvm_ppc_resize_hpt *rhpt)
+{
+   return -EIO;
+}
+
+long kvm_vm_ioctl_resize_hpt_commit(struct kvm *kvm,
+   struct kvm_ppc_resize_hpt *rhpt)
+{
+   return -EIO;
+}
+
+/*
  * Functions for reading and writing the hash table via reads and
  * writes on a file descriptor.
  *
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 957e473..d022322 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -3617,6 +3617,28 @@ static long kvm_arch_vm_ioctl_hv(struct file *filp,
break;
}
 
+   case KVM_PPC_RESIZE_HPT_PREPARE: {
+   struct kvm_ppc_resize_hpt rhpt;
+
+   r = -EFAULT;
+   if (copy_from_user(, argp, sizeof(rhpt)))
+   break;
+
+   r = kvm_vm_ioctl_resize_hpt_prepare(kvm, );
+   break;
+   }
+
+   case KVM_PPC_RESIZE_HPT_COMMIT: {
+   struct kvm_ppc_resize_hpt rhpt;
+
+   r = -EFAULT;
+   if (copy_from_user(, argp, sizeof(rhpt)))
+   break;
+
+   r = kvm_vm_ioctl_resize_hpt_commit(kvm, );
+   break;
+   }
+
default:
r = -ENOTTY;
}
-- 
2.9.3