qemu-s390x
[Top][All Lists]
Advanced

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

Re: [PATCH] s390x: intercept: fence one test when using TCG


From: Janosch Frank
Subject: Re: [PATCH] s390x: intercept: fence one test when using TCG
Date: Thu, 21 Jul 2022 14:20:16 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0

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);




reply via email to

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