kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] KVM: selftests: s390x: Provide additional num-guest-pages adjustment
@ 2020-03-12 10:40 Andrew Jones
  2020-03-12 10:48 ` Christian Borntraeger
  2020-03-14 10:58 ` Paolo Bonzini
  0 siblings, 2 replies; 3+ messages in thread
From: Andrew Jones @ 2020-03-12 10:40 UTC (permalink / raw)
  To: kvm; +Cc: pbonzini, borntraeger, frankja, david, cohuck, thuth

s390 requires 1M aligned guest sizes. Embedding the rounding in
vm_adjust_num_guest_pages() allows us to remove it from a few
other places.

Signed-off-by: Andrew Jones <drjones@redhat.com>
---
 tools/testing/selftests/kvm/demand_paging_test.c | 4 ----
 tools/testing/selftests/kvm/dirty_log_test.c     | 5 +----
 tools/testing/selftests/kvm/include/kvm_util.h   | 8 +++++++-
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c
index c1e326d3ed7f..ae086c5dc118 100644
--- a/tools/testing/selftests/kvm/demand_paging_test.c
+++ b/tools/testing/selftests/kvm/demand_paging_test.c
@@ -378,10 +378,6 @@ static void run_test(enum vm_guest_mode mode, bool use_uffd,
 	guest_num_pages = (vcpus * vcpu_memory_bytes) / guest_page_size;
 	guest_num_pages = vm_adjust_num_guest_pages(mode, guest_num_pages);
 
-#ifdef __s390x__
-	/* Round up to multiple of 1M (segment size) */
-	guest_num_pages = (guest_num_pages + 0xff) & ~0xffUL;
-#endif
 	/*
 	 * If there should be more memory in the guest test region than there
 	 * can be pages in the guest, it will definitely cause problems.
diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c
index 518a94a7a8b5..8a79f5d6b979 100644
--- a/tools/testing/selftests/kvm/dirty_log_test.c
+++ b/tools/testing/selftests/kvm/dirty_log_test.c
@@ -296,10 +296,7 @@ static void run_test(enum vm_guest_mode mode, unsigned long iterations,
 	guest_num_pages = (1ul << (DIRTY_MEM_BITS -
 				   vm_get_page_shift(vm))) + 3;
 	guest_num_pages = vm_adjust_num_guest_pages(mode, guest_num_pages);
-#ifdef __s390x__
-	/* Round up to multiple of 1M (segment size) */
-	guest_num_pages = (guest_num_pages + 0xff) & ~0xffUL;
-#endif
+
 	host_page_size = getpagesize();
 	host_num_pages = vm_num_host_pages(mode, guest_num_pages);
 
diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h
index 707b44805149..ade5a40afbee 100644
--- a/tools/testing/selftests/kvm/include/kvm_util.h
+++ b/tools/testing/selftests/kvm/include/kvm_util.h
@@ -164,7 +164,13 @@ unsigned int vm_num_guest_pages(enum vm_guest_mode mode, unsigned int num_host_p
 static inline unsigned int
 vm_adjust_num_guest_pages(enum vm_guest_mode mode, unsigned int num_guest_pages)
 {
-	return vm_num_guest_pages(mode, vm_num_host_pages(mode, num_guest_pages));
+	unsigned int n;
+	n = vm_num_guest_pages(mode, vm_num_host_pages(mode, num_guest_pages));
+#ifdef __s390x__
+	/* s390 requires 1M aligned guest sizes */
+	n = (n + 255) & ~255;
+#endif
+	return n;
 }
 
 struct kvm_userspace_memory_region *
-- 
2.21.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] KVM: selftests: s390x: Provide additional num-guest-pages adjustment
  2020-03-12 10:40 [PATCH] KVM: selftests: s390x: Provide additional num-guest-pages adjustment Andrew Jones
@ 2020-03-12 10:48 ` Christian Borntraeger
  2020-03-14 10:58 ` Paolo Bonzini
  1 sibling, 0 replies; 3+ messages in thread
From: Christian Borntraeger @ 2020-03-12 10:48 UTC (permalink / raw)
  To: Andrew Jones, kvm; +Cc: pbonzini, frankja, david, cohuck, thuth


On 12.03.20 11:40, Andrew Jones wrote:
> s390 requires 1M aligned guest sizes. Embedding the rounding in
> vm_adjust_num_guest_pages() allows us to remove it from a few
> other places.
> 
> Signed-off-by: Andrew Jones <drjones@redhat.com>

Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>

> ---
>  tools/testing/selftests/kvm/demand_paging_test.c | 4 ----
>  tools/testing/selftests/kvm/dirty_log_test.c     | 5 +----
>  tools/testing/selftests/kvm/include/kvm_util.h   | 8 +++++++-
>  3 files changed, 8 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c
> index c1e326d3ed7f..ae086c5dc118 100644
> --- a/tools/testing/selftests/kvm/demand_paging_test.c
> +++ b/tools/testing/selftests/kvm/demand_paging_test.c
> @@ -378,10 +378,6 @@ static void run_test(enum vm_guest_mode mode, bool use_uffd,
>  	guest_num_pages = (vcpus * vcpu_memory_bytes) / guest_page_size;
>  	guest_num_pages = vm_adjust_num_guest_pages(mode, guest_num_pages);
>  
> -#ifdef __s390x__
> -	/* Round up to multiple of 1M (segment size) */
> -	guest_num_pages = (guest_num_pages + 0xff) & ~0xffUL;
> -#endif
>  	/*
>  	 * If there should be more memory in the guest test region than there
>  	 * can be pages in the guest, it will definitely cause problems.
> diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c
> index 518a94a7a8b5..8a79f5d6b979 100644
> --- a/tools/testing/selftests/kvm/dirty_log_test.c
> +++ b/tools/testing/selftests/kvm/dirty_log_test.c
> @@ -296,10 +296,7 @@ static void run_test(enum vm_guest_mode mode, unsigned long iterations,
>  	guest_num_pages = (1ul << (DIRTY_MEM_BITS -
>  				   vm_get_page_shift(vm))) + 3;
>  	guest_num_pages = vm_adjust_num_guest_pages(mode, guest_num_pages);
> -#ifdef __s390x__
> -	/* Round up to multiple of 1M (segment size) */
> -	guest_num_pages = (guest_num_pages + 0xff) & ~0xffUL;
> -#endif
> +
>  	host_page_size = getpagesize();
>  	host_num_pages = vm_num_host_pages(mode, guest_num_pages);
>  
> diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h
> index 707b44805149..ade5a40afbee 100644
> --- a/tools/testing/selftests/kvm/include/kvm_util.h
> +++ b/tools/testing/selftests/kvm/include/kvm_util.h
> @@ -164,7 +164,13 @@ unsigned int vm_num_guest_pages(enum vm_guest_mode mode, unsigned int num_host_p
>  static inline unsigned int
>  vm_adjust_num_guest_pages(enum vm_guest_mode mode, unsigned int num_guest_pages)
>  {
> -	return vm_num_guest_pages(mode, vm_num_host_pages(mode, num_guest_pages));
> +	unsigned int n;
> +	n = vm_num_guest_pages(mode, vm_num_host_pages(mode, num_guest_pages));
> +#ifdef __s390x__
> +	/* s390 requires 1M aligned guest sizes */
> +	n = (n + 255) & ~255;

255 vs. 0xff probably does not matter.


> +#endif
> +	return n;
>  }
>  
>  struct kvm_userspace_memory_region *
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] KVM: selftests: s390x: Provide additional num-guest-pages adjustment
  2020-03-12 10:40 [PATCH] KVM: selftests: s390x: Provide additional num-guest-pages adjustment Andrew Jones
  2020-03-12 10:48 ` Christian Borntraeger
@ 2020-03-14 10:58 ` Paolo Bonzini
  1 sibling, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2020-03-14 10:58 UTC (permalink / raw)
  To: Andrew Jones, kvm; +Cc: borntraeger, frankja, david, cohuck, thuth

On 12/03/20 11:40, Andrew Jones wrote:
> s390 requires 1M aligned guest sizes. Embedding the rounding in
> vm_adjust_num_guest_pages() allows us to remove it from a few
> other places.
> 
> Signed-off-by: Andrew Jones <drjones@redhat.com>
> ---
>  tools/testing/selftests/kvm/demand_paging_test.c | 4 ----
>  tools/testing/selftests/kvm/dirty_log_test.c     | 5 +----
>  tools/testing/selftests/kvm/include/kvm_util.h   | 8 +++++++-
>  3 files changed, 8 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c
> index c1e326d3ed7f..ae086c5dc118 100644
> --- a/tools/testing/selftests/kvm/demand_paging_test.c
> +++ b/tools/testing/selftests/kvm/demand_paging_test.c
> @@ -378,10 +378,6 @@ static void run_test(enum vm_guest_mode mode, bool use_uffd,
>  	guest_num_pages = (vcpus * vcpu_memory_bytes) / guest_page_size;
>  	guest_num_pages = vm_adjust_num_guest_pages(mode, guest_num_pages);
>  
> -#ifdef __s390x__
> -	/* Round up to multiple of 1M (segment size) */
> -	guest_num_pages = (guest_num_pages + 0xff) & ~0xffUL;
> -#endif
>  	/*
>  	 * If there should be more memory in the guest test region than there
>  	 * can be pages in the guest, it will definitely cause problems.
> diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c
> index 518a94a7a8b5..8a79f5d6b979 100644
> --- a/tools/testing/selftests/kvm/dirty_log_test.c
> +++ b/tools/testing/selftests/kvm/dirty_log_test.c
> @@ -296,10 +296,7 @@ static void run_test(enum vm_guest_mode mode, unsigned long iterations,
>  	guest_num_pages = (1ul << (DIRTY_MEM_BITS -
>  				   vm_get_page_shift(vm))) + 3;
>  	guest_num_pages = vm_adjust_num_guest_pages(mode, guest_num_pages);
> -#ifdef __s390x__
> -	/* Round up to multiple of 1M (segment size) */
> -	guest_num_pages = (guest_num_pages + 0xff) & ~0xffUL;
> -#endif
> +
>  	host_page_size = getpagesize();
>  	host_num_pages = vm_num_host_pages(mode, guest_num_pages);
>  
> diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h
> index 707b44805149..ade5a40afbee 100644
> --- a/tools/testing/selftests/kvm/include/kvm_util.h
> +++ b/tools/testing/selftests/kvm/include/kvm_util.h
> @@ -164,7 +164,13 @@ unsigned int vm_num_guest_pages(enum vm_guest_mode mode, unsigned int num_host_p
>  static inline unsigned int
>  vm_adjust_num_guest_pages(enum vm_guest_mode mode, unsigned int num_guest_pages)
>  {
> -	return vm_num_guest_pages(mode, vm_num_host_pages(mode, num_guest_pages));
> +	unsigned int n;
> +	n = vm_num_guest_pages(mode, vm_num_host_pages(mode, num_guest_pages));
> +#ifdef __s390x__
> +	/* s390 requires 1M aligned guest sizes */
> +	n = (n + 255) & ~255;
> +#endif
> +	return n;
>  }
>  
>  struct kvm_userspace_memory_region *
> 

Queued, thanks.

Paolo


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-03-15  3:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-12 10:40 [PATCH] KVM: selftests: s390x: Provide additional num-guest-pages adjustment Andrew Jones
2020-03-12 10:48 ` Christian Borntraeger
2020-03-14 10:58 ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).