qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 1/2] s390x: intercept: fence one test when using TCG


From: Claudio Imbrenda
Subject: [PATCH v2 1/2] s390x: intercept: fence one test when using TCG
Date: Thu, 21 Jul 2022 15:30:01 +0200

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.

This patch is meant to go on top this already queued patch from Janis:
"s390x/intercept: Test invalid prefix argument to SET PREFIX"
https://lore.kernel.org/all/20220627152412.2243255-1-scgl@linux.ibm.com/

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

diff --git a/s390x/intercept.c b/s390x/intercept.c
index 54bed5a4..656b8adb 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,8 @@ 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) {
+       /* TODO: Remove host_is_tcg() checks once CIs are using QEMU >= 7.1 */
+       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);
@@ -88,7 +90,10 @@ static void test_spx(void)
                 * the address to 8k we have a completely accessible area.
                 */
        } else {
-               report_skip("inaccessible prefix area");
+               if (host_is_tcg())
+                       report_skip("inaccessible prefix area (workaround for 
TCG bug)");
+               else
+                       report_skip("inaccessible prefix area");
        }
 }
 
-- 
2.36.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]