public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] s390x: intercept: fence one test when using TCG
@ 2022-07-21 10:56 Claudio Imbrenda
  2022-07-21 12:15 ` Thomas Huth
  2022-07-21 12:20 ` Janosch Frank
  0 siblings, 2 replies; 3+ messages in thread
From: Claudio Imbrenda @ 2022-07-21 10:56 UTC (permalink / raw)
  To: kvm, linux-s390, qemu-s390x; +Cc: frankja, thuth

Qemu commit f8333de2793 ("target/s390x/tcg: SPX: check validity of new prefix")
fixes a TCG bug discovered with a new testcase in the intercept test.

The gitlab pipeline for the KVM unit tests uses TCG and it will keep
failing every time as long as the pipeline uses a version of Qemu
without the aforementioned patch.

Fence the specific testcase for now. Once the pipeline is fixed, this
patch can safely be reverted.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
---
 s390x/intercept.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/s390x/intercept.c b/s390x/intercept.c
index 54bed5a4..c48818c2 100644
--- a/s390x/intercept.c
+++ b/s390x/intercept.c
@@ -14,6 +14,7 @@
 #include <asm/page.h>
 #include <asm/facility.h>
 #include <asm/time.h>
+#include <hardware.h>
 
 static uint8_t pagebuf[PAGE_SIZE * 2] __attribute__((aligned(PAGE_SIZE * 2)));
 
@@ -76,7 +77,7 @@ static void test_spx(void)
 	check_pgm_int_code(PGM_INT_CODE_ADDRESSING);
 
 	new_prefix = get_ram_size() & 0x7fffe000;
-	if (get_ram_size() - new_prefix < 2 * PAGE_SIZE) {
+	if (!host_is_tcg() && (get_ram_size() - new_prefix < 2 * PAGE_SIZE)) {
 		expect_pgm_int();
 		asm volatile("spx	%0 " : : "Q"(new_prefix));
 		check_pgm_int_code(PGM_INT_CODE_ADDRESSING);
-- 
2.36.1


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

* Re: [PATCH] s390x: intercept: fence one test when using TCG
  2022-07-21 10:56 [PATCH] s390x: intercept: fence one test when using TCG Claudio Imbrenda
@ 2022-07-21 12:15 ` Thomas Huth
  2022-07-21 12:20 ` Janosch Frank
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Huth @ 2022-07-21 12:15 UTC (permalink / raw)
  To: Claudio Imbrenda, kvm, linux-s390, qemu-s390x; +Cc: frankja

On 21/07/2022 12.56, Claudio Imbrenda wrote:
> Qemu commit f8333de2793 ("target/s390x/tcg: SPX: check validity of new prefix")
> fixes a TCG bug discovered with a new testcase in the intercept test.
> 
> The gitlab pipeline for the KVM unit tests uses TCG and it will keep
> failing every time as long as the pipeline uses a version of Qemu
> without the aforementioned patch.
> 
> Fence the specific testcase for now. Once the pipeline is fixed, this
> patch can safely be reverted.
> 
> Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
> ---
>   s390x/intercept.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/s390x/intercept.c b/s390x/intercept.c
> index 54bed5a4..c48818c2 100644
> --- a/s390x/intercept.c
> +++ b/s390x/intercept.c
> @@ -14,6 +14,7 @@
>   #include <asm/page.h>
>   #include <asm/facility.h>
>   #include <asm/time.h>
> +#include <hardware.h>
>   
>   static uint8_t pagebuf[PAGE_SIZE * 2] __attribute__((aligned(PAGE_SIZE * 2)));
>   
> @@ -76,7 +77,7 @@ static void test_spx(void)
>   	check_pgm_int_code(PGM_INT_CODE_ADDRESSING);
>   
>   	new_prefix = get_ram_size() & 0x7fffe000;
> -	if (get_ram_size() - new_prefix < 2 * PAGE_SIZE) {
> +	if (!host_is_tcg() && (get_ram_size() - new_prefix < 2 * PAGE_SIZE)) {

Could you please add a comment à la

  /* TODO: Remove host_is_tcg() once CIs are using QEMU >= 7.1 */

?

  Thomas


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

* Re: [PATCH] s390x: intercept: fence one test when using TCG
  2022-07-21 10:56 [PATCH] s390x: intercept: fence one test when using TCG Claudio Imbrenda
  2022-07-21 12:15 ` Thomas Huth
@ 2022-07-21 12:20 ` Janosch Frank
  1 sibling, 0 replies; 3+ messages in thread
From: Janosch Frank @ 2022-07-21 12:20 UTC (permalink / raw)
  To: Claudio Imbrenda, kvm, linux-s390, qemu-s390x; +Cc: thuth

On 7/21/22 12:56, Claudio Imbrenda wrote:
> Qemu commit f8333de2793 ("target/s390x/tcg: SPX: check validity of new prefix")
> fixes a TCG bug discovered with a new testcase in the intercept test.
> 
> The gitlab pipeline for the KVM unit tests uses TCG and it will keep
> failing every time as long as the pipeline uses a version of Qemu
> without the aforementioned patch.
> 
> Fence the specific testcase for now. Once the pipeline is fixed, this
> patch can safely be reverted.
> 
> Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
> ---
>   s390x/intercept.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/s390x/intercept.c b/s390x/intercept.c
> index 54bed5a4..c48818c2 100644
> --- a/s390x/intercept.c
> +++ b/s390x/intercept.c
> @@ -14,6 +14,7 @@
>   #include <asm/page.h>
>   #include <asm/facility.h>
>   #include <asm/time.h>
> +#include <hardware.h>
>   
>   static uint8_t pagebuf[PAGE_SIZE * 2] __attribute__((aligned(PAGE_SIZE * 2)));
>   
> @@ -76,7 +77,7 @@ static void test_spx(void)
>   	check_pgm_int_code(PGM_INT_CODE_ADDRESSING);
>   
>   	new_prefix = get_ram_size() & 0x7fffe000;
> -	if (get_ram_size() - new_prefix < 2 * PAGE_SIZE) {
> +	if (!host_is_tcg() && (get_ram_size() - new_prefix < 2 * PAGE_SIZE)) {

I'm ok with this if we also do a report_skip() that states that we skip 
because of a QEMU bug which will lead to a SIGABORT.

I don't see an easy way to fence this more precisely. We could pass the 
QEMU version and check it but there are also backports to consider. So 
it's not a one size fits all solution...

>   		expect_pgm_int();
>   		asm volatile("spx	%0 " : : "Q"(new_prefix));
>   		check_pgm_int_code(PGM_INT_CODE_ADDRESSING);


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

end of thread, other threads:[~2022-07-21 12:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-21 10:56 [PATCH] s390x: intercept: fence one test when using TCG Claudio Imbrenda
2022-07-21 12:15 ` Thomas Huth
2022-07-21 12:20 ` Janosch Frank

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox