* [PATCH 1/4] KVM: PPC: Pass change type down to memslot commit function
@ 2018-12-12 4:15 Paul Mackerras
2018-12-12 5:17 ` Suraj Jitindar Singh
2018-12-12 23:10 ` David Gibson
0 siblings, 2 replies; 3+ messages in thread
From: Paul Mackerras @ 2018-12-12 4:15 UTC (permalink / raw)
To: kvm-ppc
From: Bharata B Rao <bharata@linux.ibm.com>
Currently, kvm_arch_commit_memory_region() gets called with a
parameter indicating what type of change is being made to the memslot,
but it doesn't pass it down to the platform-specific memslot commit
functions. This adds the `change' parameter to the lower-level
functions so that they can use it in future.
Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
---
arch/powerpc/include/asm/kvm_ppc.h | 6 ++++--
arch/powerpc/kvm/book3s.c | 5 +++--
arch/powerpc/kvm/book3s_hv.c | 3 ++-
arch/powerpc/kvm/book3s_pr.c | 3 ++-
arch/powerpc/kvm/powerpc.c | 2 +-
5 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
index 9b89b19..04c5b84 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -224,7 +224,8 @@ extern int kvmppc_core_prepare_memory_region(struct kvm *kvm,
extern void kvmppc_core_commit_memory_region(struct kvm *kvm,
const struct kvm_userspace_memory_region *mem,
const struct kvm_memory_slot *old,
- const struct kvm_memory_slot *new);
+ const struct kvm_memory_slot *new,
+ enum kvm_mr_change change);
extern int kvm_vm_ioctl_get_smmu_info(struct kvm *kvm,
struct kvm_ppc_smmu_info *info);
extern void kvmppc_core_flush_memslot(struct kvm *kvm,
@@ -294,7 +295,8 @@ struct kvmppc_ops {
void (*commit_memory_region)(struct kvm *kvm,
const struct kvm_userspace_memory_region *mem,
const struct kvm_memory_slot *old,
- const struct kvm_memory_slot *new);
+ const struct kvm_memory_slot *new,
+ enum kvm_mr_change change);
int (*unmap_hva_range)(struct kvm *kvm, unsigned long start,
unsigned long end);
int (*age_hva)(struct kvm *kvm, unsigned long start, unsigned long end);
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index fd9893b..a35fb40 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -830,9 +830,10 @@ int kvmppc_core_prepare_memory_region(struct kvm *kvm,
void kvmppc_core_commit_memory_region(struct kvm *kvm,
const struct kvm_userspace_memory_region *mem,
const struct kvm_memory_slot *old,
- const struct kvm_memory_slot *new)
+ const struct kvm_memory_slot *new,
+ enum kvm_mr_change change)
{
- kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new);
+ kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new, change);
}
int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index ab43306..f4fbb7b5 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -4371,7 +4371,8 @@ static int kvmppc_core_prepare_memory_region_hv(struct kvm *kvm,
static void kvmppc_core_commit_memory_region_hv(struct kvm *kvm,
const struct kvm_userspace_memory_region *mem,
const struct kvm_memory_slot *old,
- const struct kvm_memory_slot *new)
+ const struct kvm_memory_slot *new,
+ enum kvm_mr_change change)
{
unsigned long npages = mem->memory_size >> PAGE_SHIFT;
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index 4efd65d..3aeb17b 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -1913,7 +1913,8 @@ static int kvmppc_core_prepare_memory_region_pr(struct kvm *kvm,
static void kvmppc_core_commit_memory_region_pr(struct kvm *kvm,
const struct kvm_userspace_memory_region *mem,
const struct kvm_memory_slot *old,
- const struct kvm_memory_slot *new)
+ const struct kvm_memory_slot *new,
+ enum kvm_mr_change change)
{
return;
}
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 2869a29..6a7a6a1 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -696,7 +696,7 @@ void kvm_arch_commit_memory_region(struct kvm *kvm,
const struct kvm_memory_slot *new,
enum kvm_mr_change change)
{
- kvmppc_core_commit_memory_region(kvm, mem, old, new);
+ kvmppc_core_commit_memory_region(kvm, mem, old, new, change);
}
void kvm_arch_flush_shadow_memslot(struct kvm *kvm,
--
2.7.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/4] KVM: PPC: Pass change type down to memslot commit function
2018-12-12 4:15 [PATCH 1/4] KVM: PPC: Pass change type down to memslot commit function Paul Mackerras
@ 2018-12-12 5:17 ` Suraj Jitindar Singh
2018-12-12 23:10 ` David Gibson
1 sibling, 0 replies; 3+ messages in thread
From: Suraj Jitindar Singh @ 2018-12-12 5:17 UTC (permalink / raw)
To: kvm-ppc
On Wed, 2018-12-12 at 15:15 +1100, Paul Mackerras wrote:
> From: Bharata B Rao <bharata@linux.ibm.com>
>
> Currently, kvm_arch_commit_memory_region() gets called with a
> parameter indicating what type of change is being made to the
> memslot,
> but it doesn't pass it down to the platform-specific memslot commit
> functions. This adds the `change' parameter to the lower-level
> functions so that they can use it in future.
Reviewed-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
>
> Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
> ---
> arch/powerpc/include/asm/kvm_ppc.h | 6 ++++--
> arch/powerpc/kvm/book3s.c | 5 +++--
> arch/powerpc/kvm/book3s_hv.c | 3 ++-
> arch/powerpc/kvm/book3s_pr.c | 3 ++-
> arch/powerpc/kvm/powerpc.c | 2 +-
> 5 files changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/kvm_ppc.h
> b/arch/powerpc/include/asm/kvm_ppc.h
> index 9b89b19..04c5b84 100644
> --- a/arch/powerpc/include/asm/kvm_ppc.h
> +++ b/arch/powerpc/include/asm/kvm_ppc.h
> @@ -224,7 +224,8 @@ extern int
> kvmppc_core_prepare_memory_region(struct kvm *kvm,
> extern void kvmppc_core_commit_memory_region(struct kvm *kvm,
> const struct
> kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot *old,
> - const struct kvm_memory_slot *new);
> + const struct kvm_memory_slot *new,
> + enum kvm_mr_change change);
> extern int kvm_vm_ioctl_get_smmu_info(struct kvm *kvm,
> struct kvm_ppc_smmu_info
> *info);
> extern void kvmppc_core_flush_memslot(struct kvm *kvm,
> @@ -294,7 +295,8 @@ struct kvmppc_ops {
> void (*commit_memory_region)(struct kvm *kvm,
> const struct
> kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot
> *old,
> - const struct kvm_memory_slot
> *new);
> + const struct kvm_memory_slot
> *new,
> + enum kvm_mr_change change);
> int (*unmap_hva_range)(struct kvm *kvm, unsigned long start,
> unsigned long end);
> int (*age_hva)(struct kvm *kvm, unsigned long start,
> unsigned long end);
> diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
> index fd9893b..a35fb40 100644
> --- a/arch/powerpc/kvm/book3s.c
> +++ b/arch/powerpc/kvm/book3s.c
> @@ -830,9 +830,10 @@ int kvmppc_core_prepare_memory_region(struct kvm
> *kvm,
> void kvmppc_core_commit_memory_region(struct kvm *kvm,
> const struct
> kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot *old,
> - const struct kvm_memory_slot *new)
> + const struct kvm_memory_slot *new,
> + enum kvm_mr_change change)
> {
> - kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new);
> + kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new,
> change);
> }
>
> int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start,
> unsigned long end)
> diff --git a/arch/powerpc/kvm/book3s_hv.c
> b/arch/powerpc/kvm/book3s_hv.c
> index ab43306..f4fbb7b5 100644
> --- a/arch/powerpc/kvm/book3s_hv.c
> +++ b/arch/powerpc/kvm/book3s_hv.c
> @@ -4371,7 +4371,8 @@ static int
> kvmppc_core_prepare_memory_region_hv(struct kvm *kvm,
> static void kvmppc_core_commit_memory_region_hv(struct kvm *kvm,
> const struct
> kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot *old,
> - const struct kvm_memory_slot *new)
> + const struct kvm_memory_slot *new,
> + enum kvm_mr_change change)
> {
> unsigned long npages = mem->memory_size >> PAGE_SHIFT;
>
> diff --git a/arch/powerpc/kvm/book3s_pr.c
> b/arch/powerpc/kvm/book3s_pr.c
> index 4efd65d..3aeb17b 100644
> --- a/arch/powerpc/kvm/book3s_pr.c
> +++ b/arch/powerpc/kvm/book3s_pr.c
> @@ -1913,7 +1913,8 @@ static int
> kvmppc_core_prepare_memory_region_pr(struct kvm *kvm,
> static void kvmppc_core_commit_memory_region_pr(struct kvm *kvm,
> const struct
> kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot *old,
> - const struct kvm_memory_slot *new)
> + const struct kvm_memory_slot *new,
> + enum kvm_mr_change change)
> {
> return;
> }
> diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
> index 2869a29..6a7a6a1 100644
> --- a/arch/powerpc/kvm/powerpc.c
> +++ b/arch/powerpc/kvm/powerpc.c
> @@ -696,7 +696,7 @@ void kvm_arch_commit_memory_region(struct kvm
> *kvm,
> const struct kvm_memory_slot
> *new,
> enum kvm_mr_change change)
> {
> - kvmppc_core_commit_memory_region(kvm, mem, old, new);
> + kvmppc_core_commit_memory_region(kvm, mem, old, new,
> change);
> }
>
> void kvm_arch_flush_shadow_memslot(struct kvm *kvm,
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 1/4] KVM: PPC: Pass change type down to memslot commit function
2018-12-12 4:15 [PATCH 1/4] KVM: PPC: Pass change type down to memslot commit function Paul Mackerras
2018-12-12 5:17 ` Suraj Jitindar Singh
@ 2018-12-12 23:10 ` David Gibson
1 sibling, 0 replies; 3+ messages in thread
From: David Gibson @ 2018-12-12 23:10 UTC (permalink / raw)
To: kvm-ppc
[-- Attachment #1: Type: text/plain, Size: 4910 bytes --]
On Wed, Dec 12, 2018 at 03:15:30PM +1100, Paul Mackerras wrote:
> From: Bharata B Rao <bharata@linux.ibm.com>
>
> Currently, kvm_arch_commit_memory_region() gets called with a
> parameter indicating what type of change is being made to the memslot,
> but it doesn't pass it down to the platform-specific memslot commit
> functions. This adds the `change' parameter to the lower-level
> functions so that they can use it in future.
>
> Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> arch/powerpc/include/asm/kvm_ppc.h | 6 ++++--
> arch/powerpc/kvm/book3s.c | 5 +++--
> arch/powerpc/kvm/book3s_hv.c | 3 ++-
> arch/powerpc/kvm/book3s_pr.c | 3 ++-
> arch/powerpc/kvm/powerpc.c | 2 +-
> 5 files changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
> index 9b89b19..04c5b84 100644
> --- a/arch/powerpc/include/asm/kvm_ppc.h
> +++ b/arch/powerpc/include/asm/kvm_ppc.h
> @@ -224,7 +224,8 @@ extern int kvmppc_core_prepare_memory_region(struct kvm *kvm,
> extern void kvmppc_core_commit_memory_region(struct kvm *kvm,
> const struct kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot *old,
> - const struct kvm_memory_slot *new);
> + const struct kvm_memory_slot *new,
> + enum kvm_mr_change change);
> extern int kvm_vm_ioctl_get_smmu_info(struct kvm *kvm,
> struct kvm_ppc_smmu_info *info);
> extern void kvmppc_core_flush_memslot(struct kvm *kvm,
> @@ -294,7 +295,8 @@ struct kvmppc_ops {
> void (*commit_memory_region)(struct kvm *kvm,
> const struct kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot *old,
> - const struct kvm_memory_slot *new);
> + const struct kvm_memory_slot *new,
> + enum kvm_mr_change change);
> int (*unmap_hva_range)(struct kvm *kvm, unsigned long start,
> unsigned long end);
> int (*age_hva)(struct kvm *kvm, unsigned long start, unsigned long end);
> diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
> index fd9893b..a35fb40 100644
> --- a/arch/powerpc/kvm/book3s.c
> +++ b/arch/powerpc/kvm/book3s.c
> @@ -830,9 +830,10 @@ int kvmppc_core_prepare_memory_region(struct kvm *kvm,
> void kvmppc_core_commit_memory_region(struct kvm *kvm,
> const struct kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot *old,
> - const struct kvm_memory_slot *new)
> + const struct kvm_memory_slot *new,
> + enum kvm_mr_change change)
> {
> - kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new);
> + kvm->arch.kvm_ops->commit_memory_region(kvm, mem, old, new, change);
> }
>
> int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end)
> diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
> index ab43306..f4fbb7b5 100644
> --- a/arch/powerpc/kvm/book3s_hv.c
> +++ b/arch/powerpc/kvm/book3s_hv.c
> @@ -4371,7 +4371,8 @@ static int kvmppc_core_prepare_memory_region_hv(struct kvm *kvm,
> static void kvmppc_core_commit_memory_region_hv(struct kvm *kvm,
> const struct kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot *old,
> - const struct kvm_memory_slot *new)
> + const struct kvm_memory_slot *new,
> + enum kvm_mr_change change)
> {
> unsigned long npages = mem->memory_size >> PAGE_SHIFT;
>
> diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
> index 4efd65d..3aeb17b 100644
> --- a/arch/powerpc/kvm/book3s_pr.c
> +++ b/arch/powerpc/kvm/book3s_pr.c
> @@ -1913,7 +1913,8 @@ static int kvmppc_core_prepare_memory_region_pr(struct kvm *kvm,
> static void kvmppc_core_commit_memory_region_pr(struct kvm *kvm,
> const struct kvm_userspace_memory_region *mem,
> const struct kvm_memory_slot *old,
> - const struct kvm_memory_slot *new)
> + const struct kvm_memory_slot *new,
> + enum kvm_mr_change change)
> {
> return;
> }
> diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
> index 2869a29..6a7a6a1 100644
> --- a/arch/powerpc/kvm/powerpc.c
> +++ b/arch/powerpc/kvm/powerpc.c
> @@ -696,7 +696,7 @@ void kvm_arch_commit_memory_region(struct kvm *kvm,
> const struct kvm_memory_slot *new,
> enum kvm_mr_change change)
> {
> - kvmppc_core_commit_memory_region(kvm, mem, old, new);
> + kvmppc_core_commit_memory_region(kvm, mem, old, new, change);
> }
>
> void kvm_arch_flush_shadow_memslot(struct kvm *kvm,
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-12-12 23:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-12 4:15 [PATCH 1/4] KVM: PPC: Pass change type down to memslot commit function Paul Mackerras
2018-12-12 5:17 ` Suraj Jitindar Singh
2018-12-12 23:10 ` David Gibson
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.