* [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4
@ 2022-04-07 8:44 Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
` (8 more replies)
0 siblings, 9 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
A few small cleanups and two patches that I forgot to upstream which
have now been rebased onto the machine.h library functions.
v2:
* Added host_is_qemu() function
* Fixed qemu checks
Janosch Frank (9):
lib: s390x: hardware: Add host_is_qemu() function
s390x: css: Skip if we're not run by qemu
s390x: diag308: Only test subcode 2 under QEMU
s390x: pfmf: Initialize pfmf_r1 union on declaration
s390x: snippets: asm: Add license and copyright headers
s390x: pv-diags: Cleanup includes
s390x: css: Cleanup includes
s390x: iep: Cleanup includes
s390x: mvpg: Cleanup includes
lib/s390x/hardware.h | 5 +++
s390x/css.c | 18 ++++++----
s390x/diag308.c | 15 ++++++++-
s390x/iep.c | 3 +-
s390x/mvpg.c | 3 --
s390x/pfmf.c | 39 +++++++++++-----------
s390x/pv-diags.c | 17 ++--------
s390x/snippets/asm/snippet-pv-diag-288.S | 9 +++++
s390x/snippets/asm/snippet-pv-diag-500.S | 9 +++++
s390x/snippets/asm/snippet-pv-diag-yield.S | 9 +++++
10 files changed, 80 insertions(+), 47 deletions(-)
--
2.32.0
^ permalink raw reply [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
@ 2022-04-07 8:44 ` Janosch Frank
2022-04-07 9:39 ` Claudio Imbrenda
2022-04-11 11:46 ` Nico Boehr
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 2/9] s390x: css: Skip if we're not run by qemu Janosch Frank
` (7 subsequent siblings)
8 siblings, 2 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
In the future we'll likely need to check if we're hosted on QEMU so
let's make this as easy as possible by providing a dedicated function.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
lib/s390x/hardware.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/lib/s390x/hardware.h b/lib/s390x/hardware.h
index 01eeb261..86fe873c 100644
--- a/lib/s390x/hardware.h
+++ b/lib/s390x/hardware.h
@@ -45,6 +45,11 @@ static inline bool host_is_lpar(void)
return detect_host() == HOST_IS_LPAR;
}
+static inline bool host_is_qemu(void)
+{
+ return host_is_tcg() || host_is_kvm();
+}
+
static inline bool machine_is_z15(void)
{
uint16_t machine = get_machine_id();
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v2 2/9] s390x: css: Skip if we're not run by qemu
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
@ 2022-04-07 8:44 ` Janosch Frank
2022-04-07 9:40 ` Claudio Imbrenda
2022-04-11 11:45 ` Nico Boehr
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 3/9] s390x: diag308: Only test subcode 2 under QEMU Janosch Frank
` (6 subsequent siblings)
8 siblings, 2 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
There's no guarantee that we even find a device at the address we're
testing for if we're not running under QEMU.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
s390x/css.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/s390x/css.c b/s390x/css.c
index a333e55a..13a1509f 100644
--- a/s390x/css.c
+++ b/s390x/css.c
@@ -15,6 +15,7 @@
#include <interrupt.h>
#include <asm/arch_def.h>
#include <alloc_page.h>
+#include <hardware.h>
#include <malloc_io.h>
#include <css.h>
@@ -642,13 +643,21 @@ int main(int argc, char *argv[])
int i;
report_prefix_push("Channel Subsystem");
+
+ /* There's no guarantee where our devices are without qemu */
+ if (!host_is_qemu()) {
+ report_skip("Not running under QEMU");
+ goto done;
+ }
+
enable_io_isc(0x80 >> IO_SCH_ISC);
for (i = 0; tests[i].name; i++) {
report_prefix_push(tests[i].name);
tests[i].func();
report_prefix_pop();
}
- report_prefix_pop();
+done:
+ report_prefix_pop();
return report_summary();
}
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v2 3/9] s390x: diag308: Only test subcode 2 under QEMU
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 2/9] s390x: css: Skip if we're not run by qemu Janosch Frank
@ 2022-04-07 8:44 ` Janosch Frank
2022-04-07 9:42 ` Claudio Imbrenda
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 4/9] s390x: pfmf: Initialize pfmf_r1 union on declaration Janosch Frank
` (5 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
Other hypervisors might implement it and therefore not send a
specification exception.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
s390x/diag308.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/s390x/diag308.c b/s390x/diag308.c
index c9d6c499..ae5f5a5f 100644
--- a/s390x/diag308.c
+++ b/s390x/diag308.c
@@ -8,6 +8,7 @@
#include <libcflat.h>
#include <asm/asm-offsets.h>
#include <asm/interrupt.h>
+#include <hardware.h>
/* The diagnose calls should be blocked in problem state */
static void test_priv(void)
@@ -75,7 +76,7 @@ static void test_subcode6(void)
/* Unsupported subcodes should generate a specification exception */
static void test_unsupported_subcode(void)
{
- int subcodes[] = { 2, 0x101, 0xffff, 0x10001, -1 };
+ int subcodes[] = { 0x101, 0xffff, 0x10001, -1 };
int idx;
for (idx = 0; idx < ARRAY_SIZE(subcodes); idx++) {
@@ -85,6 +86,18 @@ static void test_unsupported_subcode(void)
check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
report_prefix_pop();
}
+
+ /*
+ * Subcode 2 is not available under QEMU but might be on other
+ * hypervisors.
+ */
+ if (host_is_qemu()) {
+ report_prefix_pushf("0x%04x", 2);
+ expect_pgm_int();
+ asm volatile ("diag %0,%1,0x308" :: "d"(0), "d"(2));
+ check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
+ report_prefix_pop();
+ }
}
static struct {
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v2 4/9] s390x: pfmf: Initialize pfmf_r1 union on declaration
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
` (2 preceding siblings ...)
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 3/9] s390x: diag308: Only test subcode 2 under QEMU Janosch Frank
@ 2022-04-07 8:44 ` Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 5/9] s390x: snippets: asm: Add license and copyright headers Janosch Frank
` (4 subsequent siblings)
8 siblings, 0 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
Let's make this test look a bit nicer.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
s390x/pfmf.c | 39 +++++++++++++++++++--------------------
1 file changed, 19 insertions(+), 20 deletions(-)
diff --git a/s390x/pfmf.c b/s390x/pfmf.c
index aa130529..178abb5a 100644
--- a/s390x/pfmf.c
+++ b/s390x/pfmf.c
@@ -28,7 +28,11 @@ static void test_priv(void)
static void test_4k_key(void)
{
- union pfmf_r1 r1;
+ union pfmf_r1 r1 = {
+ .reg.sk = 1,
+ .reg.fsc = PFMF_FSC_4K,
+ .reg.key = 0x30,
+ };
union skey skey;
report_prefix_push("4K");
@@ -36,10 +40,6 @@ static void test_4k_key(void)
report_skip("storage key removal facility is active");
goto out;
}
- r1.val = 0;
- r1.reg.sk = 1;
- r1.reg.fsc = PFMF_FSC_4K;
- r1.reg.key = 0x30;
pfmf(r1.val, pagebuf);
skey.val = get_storage_key(pagebuf);
skey.val &= SKEY_ACC | SKEY_FP;
@@ -52,18 +52,19 @@ static void test_1m_key(void)
{
int i;
bool rp = true;
- union pfmf_r1 r1;
union skey skey;
+ union pfmf_r1 r1 = {
+ .reg.fsc = PFMF_FSC_1M,
+ .reg.key = 0x30,
+ .reg.sk = 1,
+ };
report_prefix_push("1M");
if (test_facility(169)) {
report_skip("storage key removal facility is active");
goto out;
}
- r1.val = 0;
- r1.reg.sk = 1;
- r1.reg.fsc = PFMF_FSC_1M;
- r1.reg.key = 0x30;
+
pfmf(r1.val, pagebuf);
for (i = 0; i < 256; i++) {
skey.val = get_storage_key(pagebuf + i * PAGE_SIZE);
@@ -80,11 +81,10 @@ out:
static void test_4k_clear(void)
{
- union pfmf_r1 r1;
-
- r1.val = 0;
- r1.reg.cf = 1;
- r1.reg.fsc = PFMF_FSC_4K;
+ union pfmf_r1 r1 = {
+ .reg.cf = 1,
+ .reg.fsc = PFMF_FSC_4K,
+ };
report_prefix_push("4K");
memset(pagebuf, 42, PAGE_SIZE);
@@ -97,13 +97,12 @@ static void test_4k_clear(void)
static void test_1m_clear(void)
{
int i;
- union pfmf_r1 r1;
+ union pfmf_r1 r1 = {
+ .reg.cf = 1,
+ .reg.fsc = PFMF_FSC_1M,
+ };
unsigned long sum = 0;
- r1.val = 0;
- r1.reg.cf = 1;
- r1.reg.fsc = PFMF_FSC_1M;
-
report_prefix_push("1M");
memset(pagebuf, 42, PAGE_SIZE * 256);
pfmf(r1.val, pagebuf);
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v2 5/9] s390x: snippets: asm: Add license and copyright headers
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
` (3 preceding siblings ...)
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 4/9] s390x: pfmf: Initialize pfmf_r1 union on declaration Janosch Frank
@ 2022-04-07 8:44 ` Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 6/9] s390x: pv-diags: Cleanup includes Janosch Frank
` (3 subsequent siblings)
8 siblings, 0 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
Time for some cleanup of the snippets to make them look like any other
test file.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
---
s390x/snippets/asm/snippet-pv-diag-288.S | 9 +++++++++
s390x/snippets/asm/snippet-pv-diag-500.S | 9 +++++++++
s390x/snippets/asm/snippet-pv-diag-yield.S | 9 +++++++++
3 files changed, 27 insertions(+)
diff --git a/s390x/snippets/asm/snippet-pv-diag-288.S b/s390x/snippets/asm/snippet-pv-diag-288.S
index e3e63121..aaee3cd1 100644
--- a/s390x/snippets/asm/snippet-pv-diag-288.S
+++ b/s390x/snippets/asm/snippet-pv-diag-288.S
@@ -1,3 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Diagnose 0x288 snippet used for PV interception testing.
+ *
+ * Copyright (c) 2021 IBM Corp
+ *
+ * Authors:
+ * Janosch Frank <frankja@linux.ibm.com>
+ */
#include <asm/asm-offsets.h>
.section .text
diff --git a/s390x/snippets/asm/snippet-pv-diag-500.S b/s390x/snippets/asm/snippet-pv-diag-500.S
index 50c06779..8dd66bd9 100644
--- a/s390x/snippets/asm/snippet-pv-diag-500.S
+++ b/s390x/snippets/asm/snippet-pv-diag-500.S
@@ -1,3 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Diagnose 0x500 snippet used for PV interception tests
+ *
+ * Copyright (c) 2021 IBM Corp
+ *
+ * Authors:
+ * Janosch Frank <frankja@linux.ibm.com>
+ */
#include <asm/asm-offsets.h>
.section .text
diff --git a/s390x/snippets/asm/snippet-pv-diag-yield.S b/s390x/snippets/asm/snippet-pv-diag-yield.S
index 5795cf0f..78a5b07a 100644
--- a/s390x/snippets/asm/snippet-pv-diag-yield.S
+++ b/s390x/snippets/asm/snippet-pv-diag-yield.S
@@ -1,3 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Diagnose 0x44 and 0x9c snippet used for PV interception tests
+ *
+ * Copyright (c) 2021 IBM Corp
+ *
+ * Authors:
+ * Janosch Frank <frankja@linux.ibm.com>
+ */
.section .text
xgr %r0, %r0
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v2 6/9] s390x: pv-diags: Cleanup includes
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
` (4 preceding siblings ...)
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 5/9] s390x: snippets: asm: Add license and copyright headers Janosch Frank
@ 2022-04-07 8:44 ` Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 7/9] s390x: css: " Janosch Frank
` (2 subsequent siblings)
8 siblings, 0 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
This file has way too much includes. Time to remove some.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
---
s390x/pv-diags.c | 17 ++---------------
1 file changed, 2 insertions(+), 15 deletions(-)
diff --git a/s390x/pv-diags.c b/s390x/pv-diags.c
index 6899b859..9ced68c7 100644
--- a/s390x/pv-diags.c
+++ b/s390x/pv-diags.c
@@ -8,23 +8,10 @@
* Janosch Frank <frankja@linux.ibm.com>
*/
#include <libcflat.h>
-#include <asm/asm-offsets.h>
-#include <asm-generic/barrier.h>
-#include <asm/interrupt.h>
-#include <asm/pgtable.h>
-#include <mmu.h>
-#include <asm/page.h>
-#include <asm/facility.h>
-#include <asm/mem.h>
-#include <asm/sigp.h>
-#include <smp.h>
-#include <alloc_page.h>
-#include <vmalloc.h>
-#include <sclp.h>
#include <snippet.h>
#include <sie.h>
-#include <uv.h>
-#include <asm/uv.h>
+#include <sclp.h>
+#include <asm/facility.h>
static struct vm vm;
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v2 7/9] s390x: css: Cleanup includes
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
` (5 preceding siblings ...)
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 6/9] s390x: pv-diags: Cleanup includes Janosch Frank
@ 2022-04-07 8:44 ` Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 8/9] s390x: iep: " Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 9/9] s390x: mvpg: " Janosch Frank
8 siblings, 0 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
Most includes were related to allocation but that's done in the io
allocation library so having them in the test doesn't make sense.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
---
s390x/css.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/s390x/css.c b/s390x/css.c
index 13a1509f..fabe5237 100644
--- a/s390x/css.c
+++ b/s390x/css.c
@@ -9,17 +9,14 @@
*/
#include <libcflat.h>
-#include <alloc_phys.h>
-#include <asm/page.h>
-#include <string.h>
#include <interrupt.h>
-#include <asm/arch_def.h>
-#include <alloc_page.h>
#include <hardware.h>
+#include <asm/arch_def.h>
+#include <asm/page.h>
+
#include <malloc_io.h>
#include <css.h>
-#include <asm/barrier.h>
#define DEFAULT_CU_TYPE 0x3832 /* virtio-ccw */
static unsigned long cu_type = DEFAULT_CU_TYPE;
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v2 8/9] s390x: iep: Cleanup includes
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
` (6 preceding siblings ...)
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 7/9] s390x: css: " Janosch Frank
@ 2022-04-07 8:44 ` Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 9/9] s390x: mvpg: " Janosch Frank
8 siblings, 0 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
We don't use barriers so let's remove the include.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
---
s390x/iep.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/s390x/iep.c b/s390x/iep.c
index 8d5e044b..4b3e09a7 100644
--- a/s390x/iep.c
+++ b/s390x/iep.c
@@ -9,11 +9,10 @@
*/
#include <libcflat.h>
#include <vmalloc.h>
+#include <mmu.h>
#include <asm/facility.h>
#include <asm/interrupt.h>
-#include <mmu.h>
#include <asm/pgtable.h>
-#include <asm-generic/barrier.h>
static void test_iep(void)
{
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v2 9/9] s390x: mvpg: Cleanup includes
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
` (7 preceding siblings ...)
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 8/9] s390x: iep: " Janosch Frank
@ 2022-04-07 8:44 ` Janosch Frank
8 siblings, 0 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 8:44 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, nrb, seiden
Time to remove unneeded includes.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
---
s390x/mvpg.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/s390x/mvpg.c b/s390x/mvpg.c
index 62f0fc5a..04e5218f 100644
--- a/s390x/mvpg.c
+++ b/s390x/mvpg.c
@@ -9,15 +9,12 @@
*/
#include <libcflat.h>
#include <asm/asm-offsets.h>
-#include <asm-generic/barrier.h>
#include <asm/interrupt.h>
#include <asm/pgtable.h>
#include <mmu.h>
#include <asm/page.h>
#include <asm/facility.h>
#include <asm/mem.h>
-#include <asm/sigp.h>
-#include <smp.h>
#include <alloc_page.h>
#include <bitops.h>
#include <hardware.h>
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
@ 2022-04-07 9:39 ` Claudio Imbrenda
2022-04-11 11:46 ` Nico Boehr
1 sibling, 0 replies; 19+ messages in thread
From: Claudio Imbrenda @ 2022-04-07 9:39 UTC (permalink / raw)
To: Janosch Frank; +Cc: kvm, linux-s390, david, thuth, nrb, seiden
On Thu, 7 Apr 2022 08:44:13 +0000
Janosch Frank <frankja@linux.ibm.com> wrote:
> In the future we'll likely need to check if we're hosted on QEMU so
> let's make this as easy as possible by providing a dedicated function.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
> ---
> lib/s390x/hardware.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/lib/s390x/hardware.h b/lib/s390x/hardware.h
> index 01eeb261..86fe873c 100644
> --- a/lib/s390x/hardware.h
> +++ b/lib/s390x/hardware.h
> @@ -45,6 +45,11 @@ static inline bool host_is_lpar(void)
> return detect_host() == HOST_IS_LPAR;
> }
>
> +static inline bool host_is_qemu(void)
> +{
> + return host_is_tcg() || host_is_kvm();
> +}
> +
> static inline bool machine_is_z15(void)
> {
> uint16_t machine = get_machine_id();
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [kvm-unit-tests PATCH v2 2/9] s390x: css: Skip if we're not run by qemu
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 2/9] s390x: css: Skip if we're not run by qemu Janosch Frank
@ 2022-04-07 9:40 ` Claudio Imbrenda
2022-04-11 11:45 ` Nico Boehr
1 sibling, 0 replies; 19+ messages in thread
From: Claudio Imbrenda @ 2022-04-07 9:40 UTC (permalink / raw)
To: Janosch Frank; +Cc: kvm, linux-s390, david, thuth, nrb, seiden
On Thu, 7 Apr 2022 08:44:14 +0000
Janosch Frank <frankja@linux.ibm.com> wrote:
> There's no guarantee that we even find a device at the address we're
> testing for if we're not running under QEMU.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
> ---
> s390x/css.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/s390x/css.c b/s390x/css.c
> index a333e55a..13a1509f 100644
> --- a/s390x/css.c
> +++ b/s390x/css.c
> @@ -15,6 +15,7 @@
> #include <interrupt.h>
> #include <asm/arch_def.h>
> #include <alloc_page.h>
> +#include <hardware.h>
>
> #include <malloc_io.h>
> #include <css.h>
> @@ -642,13 +643,21 @@ int main(int argc, char *argv[])
> int i;
>
> report_prefix_push("Channel Subsystem");
> +
> + /* There's no guarantee where our devices are without qemu */
> + if (!host_is_qemu()) {
> + report_skip("Not running under QEMU");
> + goto done;
> + }
> +
> enable_io_isc(0x80 >> IO_SCH_ISC);
> for (i = 0; tests[i].name; i++) {
> report_prefix_push(tests[i].name);
> tests[i].func();
> report_prefix_pop();
> }
> - report_prefix_pop();
>
> +done:
> + report_prefix_pop();
> return report_summary();
> }
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [kvm-unit-tests PATCH v2 3/9] s390x: diag308: Only test subcode 2 under QEMU
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 3/9] s390x: diag308: Only test subcode 2 under QEMU Janosch Frank
@ 2022-04-07 9:42 ` Claudio Imbrenda
2022-04-07 13:02 ` [kvm-unit-tests PATCH v3] " Janosch Frank
0 siblings, 1 reply; 19+ messages in thread
From: Claudio Imbrenda @ 2022-04-07 9:42 UTC (permalink / raw)
To: Janosch Frank; +Cc: kvm, linux-s390, david, thuth, nrb, seiden
On Thu, 7 Apr 2022 08:44:15 +0000
Janosch Frank <frankja@linux.ibm.com> wrote:
> Other hypervisors might implement it and therefore not send a
> specification exception.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
> ---
> s390x/diag308.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/s390x/diag308.c b/s390x/diag308.c
> index c9d6c499..ae5f5a5f 100644
> --- a/s390x/diag308.c
> +++ b/s390x/diag308.c
> @@ -8,6 +8,7 @@
> #include <libcflat.h>
> #include <asm/asm-offsets.h>
> #include <asm/interrupt.h>
> +#include <hardware.h>
>
> /* The diagnose calls should be blocked in problem state */
> static void test_priv(void)
> @@ -75,7 +76,7 @@ static void test_subcode6(void)
> /* Unsupported subcodes should generate a specification exception */
> static void test_unsupported_subcode(void)
> {
> - int subcodes[] = { 2, 0x101, 0xffff, 0x10001, -1 };
> + int subcodes[] = { 0x101, 0xffff, 0x10001, -1 };
> int idx;
>
> for (idx = 0; idx < ARRAY_SIZE(subcodes); idx++) {
> @@ -85,6 +86,18 @@ static void test_unsupported_subcode(void)
> check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
> report_prefix_pop();
> }
> +
> + /*
> + * Subcode 2 is not available under QEMU but might be on other
> + * hypervisors.
> + */
> + if (host_is_qemu()) {
> + report_prefix_pushf("0x%04x", 2);
> + expect_pgm_int();
> + asm volatile ("diag %0,%1,0x308" :: "d"(0), "d"(2));
> + check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
> + report_prefix_pop();
> + }
move the prefix push and pop outside of the if, then add
else {
report_skip(...);
}
> }
>
> static struct {
^ permalink raw reply [flat|nested] 19+ messages in thread
* [kvm-unit-tests PATCH v3] s390x: diag308: Only test subcode 2 under QEMU
2022-04-07 9:42 ` Claudio Imbrenda
@ 2022-04-07 13:02 ` Janosch Frank
2022-04-07 13:11 ` Claudio Imbrenda
2022-04-11 11:46 ` Nico Boehr
0 siblings, 2 replies; 19+ messages in thread
From: Janosch Frank @ 2022-04-07 13:02 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, david, thuth, nrb, seiden, imbrenda
Other hypervisors might implement it and therefore not send a
specification exception.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
s390x/diag308.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/s390x/diag308.c b/s390x/diag308.c
index c9d6c499..ea41b455 100644
--- a/s390x/diag308.c
+++ b/s390x/diag308.c
@@ -8,6 +8,7 @@
#include <libcflat.h>
#include <asm/asm-offsets.h>
#include <asm/interrupt.h>
+#include <hardware.h>
/* The diagnose calls should be blocked in problem state */
static void test_priv(void)
@@ -75,7 +76,7 @@ static void test_subcode6(void)
/* Unsupported subcodes should generate a specification exception */
static void test_unsupported_subcode(void)
{
- int subcodes[] = { 2, 0x101, 0xffff, 0x10001, -1 };
+ int subcodes[] = { 0x101, 0xffff, 0x10001, -1 };
int idx;
for (idx = 0; idx < ARRAY_SIZE(subcodes); idx++) {
@@ -85,6 +86,21 @@ static void test_unsupported_subcode(void)
check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
report_prefix_pop();
}
+
+ /*
+ * Subcode 2 is not available under QEMU but might be on other
+ * hypervisors so we only check for the specification
+ * exception on QEMU.
+ */
+ report_prefix_pushf("0x%04x", 2);
+ if (host_is_qemu()) {
+ expect_pgm_int();
+ asm volatile ("diag %0,%1,0x308" :: "d"(0), "d"(2));
+ check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
+ } else {
+ report_skip("subcode is supported");
+ }
+ report_prefix_pop();
}
static struct {
--
2.32.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [kvm-unit-tests PATCH v3] s390x: diag308: Only test subcode 2 under QEMU
2022-04-07 13:02 ` [kvm-unit-tests PATCH v3] " Janosch Frank
@ 2022-04-07 13:11 ` Claudio Imbrenda
2022-04-11 11:46 ` Nico Boehr
1 sibling, 0 replies; 19+ messages in thread
From: Claudio Imbrenda @ 2022-04-07 13:11 UTC (permalink / raw)
To: Janosch Frank; +Cc: kvm, linux-s390, david, thuth, nrb, seiden
On Thu, 7 Apr 2022 13:02:52 +0000
Janosch Frank <frankja@linux.ibm.com> wrote:
> Other hypervisors might implement it and therefore not send a
> specification exception.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
> ---
> s390x/diag308.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/s390x/diag308.c b/s390x/diag308.c
> index c9d6c499..ea41b455 100644
> --- a/s390x/diag308.c
> +++ b/s390x/diag308.c
> @@ -8,6 +8,7 @@
> #include <libcflat.h>
> #include <asm/asm-offsets.h>
> #include <asm/interrupt.h>
> +#include <hardware.h>
>
> /* The diagnose calls should be blocked in problem state */
> static void test_priv(void)
> @@ -75,7 +76,7 @@ static void test_subcode6(void)
> /* Unsupported subcodes should generate a specification exception */
> static void test_unsupported_subcode(void)
> {
> - int subcodes[] = { 2, 0x101, 0xffff, 0x10001, -1 };
> + int subcodes[] = { 0x101, 0xffff, 0x10001, -1 };
> int idx;
>
> for (idx = 0; idx < ARRAY_SIZE(subcodes); idx++) {
> @@ -85,6 +86,21 @@ static void test_unsupported_subcode(void)
> check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
> report_prefix_pop();
> }
> +
> + /*
> + * Subcode 2 is not available under QEMU but might be on other
> + * hypervisors so we only check for the specification
> + * exception on QEMU.
> + */
> + report_prefix_pushf("0x%04x", 2);
> + if (host_is_qemu()) {
> + expect_pgm_int();
> + asm volatile ("diag %0,%1,0x308" :: "d"(0), "d"(2));
> + check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
> + } else {
> + report_skip("subcode is supported");
> + }
> + report_prefix_pop();
> }
>
> static struct {
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [kvm-unit-tests PATCH v2 2/9] s390x: css: Skip if we're not run by qemu
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 2/9] s390x: css: Skip if we're not run by qemu Janosch Frank
2022-04-07 9:40 ` Claudio Imbrenda
@ 2022-04-11 11:45 ` Nico Boehr
1 sibling, 0 replies; 19+ messages in thread
From: Nico Boehr @ 2022-04-11 11:45 UTC (permalink / raw)
To: Janosch Frank, kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden
On Thu, 2022-04-07 at 08:44 +0000, Janosch Frank wrote:
> There's no guarantee that we even find a device at the address we're
> testing for if we're not running under QEMU.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
2022-04-07 9:39 ` Claudio Imbrenda
@ 2022-04-11 11:46 ` Nico Boehr
2022-04-11 13:30 ` Thomas Huth
1 sibling, 1 reply; 19+ messages in thread
From: Nico Boehr @ 2022-04-11 11:46 UTC (permalink / raw)
To: Janosch Frank, kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden
On Thu, 2022-04-07 at 08:44 +0000, Janosch Frank wrote:
> In the future we'll likely need to check if we're hosted on QEMU so
> let's make this as easy as possible by providing a dedicated
> function.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
We could also adjust the check we already have in s390x/epsw.c to use
the new function, but also fine to leave as-is.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [kvm-unit-tests PATCH v3] s390x: diag308: Only test subcode 2 under QEMU
2022-04-07 13:02 ` [kvm-unit-tests PATCH v3] " Janosch Frank
2022-04-07 13:11 ` Claudio Imbrenda
@ 2022-04-11 11:46 ` Nico Boehr
1 sibling, 0 replies; 19+ messages in thread
From: Nico Boehr @ 2022-04-11 11:46 UTC (permalink / raw)
To: Janosch Frank, kvm; +Cc: linux-s390, david, thuth, seiden, imbrenda
On Thu, 2022-04-07 at 13:02 +0000, Janosch Frank wrote:
> Other hypervisors might implement it and therefore not send a
> specification exception.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function
2022-04-11 11:46 ` Nico Boehr
@ 2022-04-11 13:30 ` Thomas Huth
0 siblings, 0 replies; 19+ messages in thread
From: Thomas Huth @ 2022-04-11 13:30 UTC (permalink / raw)
To: Nico Boehr, Janosch Frank, kvm; +Cc: linux-s390, imbrenda, david, seiden
On 11/04/2022 13.46, Nico Boehr wrote:
> On Thu, 2022-04-07 at 08:44 +0000, Janosch Frank wrote:
>> In the future we'll likely need to check if we're hosted on QEMU so
>> let's make this as easy as possible by providing a dedicated
>> function.
>>
>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>
> Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
>
> We could also adjust the check we already have in s390x/epsw.c to use
> the new function, but also fine to leave as-is.
I'd suggest to fix it: It has the same "goto done" + prefix_pop problem that
we recently saw in another patch, too.
Thomas
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2022-04-11 13:30 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-07 8:44 [kvm-unit-tests PATCH v2 0/9] s390x: Cleanup and maintenance 4 Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 1/9] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
2022-04-07 9:39 ` Claudio Imbrenda
2022-04-11 11:46 ` Nico Boehr
2022-04-11 13:30 ` Thomas Huth
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 2/9] s390x: css: Skip if we're not run by qemu Janosch Frank
2022-04-07 9:40 ` Claudio Imbrenda
2022-04-11 11:45 ` Nico Boehr
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 3/9] s390x: diag308: Only test subcode 2 under QEMU Janosch Frank
2022-04-07 9:42 ` Claudio Imbrenda
2022-04-07 13:02 ` [kvm-unit-tests PATCH v3] " Janosch Frank
2022-04-07 13:11 ` Claudio Imbrenda
2022-04-11 11:46 ` Nico Boehr
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 4/9] s390x: pfmf: Initialize pfmf_r1 union on declaration Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 5/9] s390x: snippets: asm: Add license and copyright headers Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 6/9] s390x: pv-diags: Cleanup includes Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 7/9] s390x: css: " Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 8/9] s390x: iep: " Janosch Frank
2022-04-07 8:44 ` [kvm-unit-tests PATCH v2 9/9] s390x: mvpg: " Janosch Frank
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.