All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.