All of lore.kernel.org
 help / color / mirror / Atom feed
* [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4
@ 2022-04-21 10:11 Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 01/11] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
                   ` (11 more replies)
  0 siblings, 12 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

A few small cleanups and two patches that I forgot to upstream which
have now been rebased onto the machine.h library functions.

v3:
	* Added review tags
	* Added uv-host and diag308 fix
	* Diag308 subcode 2 patch, moved the prefix push and pop outside of the if

v2:
	* Added host_is_qemu() function
	* Fixed qemu checks

Janosch Frank (11):
  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
  s390x: uv-host: Fix pgm tests
  s390x: Restore registers in diag308_load_reset() error path

 lib/s390x/hardware.h                       |  5 +++
 s390x/cpu.S                                |  1 +
 s390x/css.c                                | 18 ++++++----
 s390x/diag308.c                            | 18 +++++++++-
 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 +++++
 s390x/uv-host.c                            |  2 +-
 12 files changed, 85 insertions(+), 48 deletions(-)

-- 
2.32.0


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

* [kvm-unit-tests PATCH v3 01/11] lib: s390x: hardware: Add host_is_qemu() function
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 02/11] s390x: css: Skip if we're not run by qemu Janosch Frank
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

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>
Reviewed-by: Nico Boehr <nrb@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] 16+ messages in thread

* [kvm-unit-tests PATCH v3 02/11] s390x: css: Skip if we're not run by qemu
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 01/11] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 03/11] s390x: diag308: Only test subcode 2 under QEMU Janosch Frank
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

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>
Reviewed-by: Nico Boehr <nrb@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] 16+ messages in thread

* [kvm-unit-tests PATCH v3 03/11] s390x: diag308: Only test subcode 2 under QEMU
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 01/11] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 02/11] s390x: css: Skip if we're not run by qemu Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 04/11] s390x: pfmf: Initialize pfmf_r1 union on declaration Janosch Frank
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

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>
Reviewed-by: Nico Boehr <nrb@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] 16+ messages in thread

* [kvm-unit-tests PATCH v3 04/11] s390x: pfmf: Initialize pfmf_r1 union on declaration
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
                   ` (2 preceding siblings ...)
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 03/11] s390x: diag308: Only test subcode 2 under QEMU Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 05/11] s390x: snippets: asm: Add license and copyright headers Janosch Frank
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

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] 16+ messages in thread

* [kvm-unit-tests PATCH v3 05/11] s390x: snippets: asm: Add license and copyright headers
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
                   ` (3 preceding siblings ...)
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 04/11] s390x: pfmf: Initialize pfmf_r1 union on declaration Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 06/11] s390x: pv-diags: Cleanup includes Janosch Frank
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

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] 16+ messages in thread

* [kvm-unit-tests PATCH v3 06/11] s390x: pv-diags: Cleanup includes
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
                   ` (4 preceding siblings ...)
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 05/11] s390x: snippets: asm: Add license and copyright headers Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 07/11] s390x: css: " Janosch Frank
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

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] 16+ messages in thread

* [kvm-unit-tests PATCH v3 07/11] s390x: css: Cleanup includes
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
                   ` (5 preceding siblings ...)
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 06/11] s390x: pv-diags: Cleanup includes Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 08/11] s390x: iep: " Janosch Frank
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

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] 16+ messages in thread

* [kvm-unit-tests PATCH v3 08/11] s390x: iep: Cleanup includes
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
                   ` (6 preceding siblings ...)
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 07/11] s390x: css: " Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 09/11] s390x: mvpg: " Janosch Frank
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

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] 16+ messages in thread

* [kvm-unit-tests PATCH v3 09/11] s390x: mvpg: Cleanup includes
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
                   ` (7 preceding siblings ...)
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 08/11] s390x: iep: " Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 10/11] s390x: uv-host: Fix pgm tests Janosch Frank
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

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] 16+ messages in thread

* [kvm-unit-tests PATCH v3 10/11] s390x: uv-host: Fix pgm tests
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
                   ` (8 preceding siblings ...)
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 09/11] s390x: mvpg: " Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 11:13   ` Nico Boehr
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 11/11] s390x: Restore registers in diag308_load_reset() error path Janosch Frank
  2022-04-21 11:59 ` [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Claudio Imbrenda
  11 siblings, 1 reply; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

We don't want to re-enter the UV call on a cc > 1 for this test.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
 s390x/uv-host.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/s390x/uv-host.c b/s390x/uv-host.c
index d3018e3c..5ac8a32c 100644
--- a/s390x/uv-host.c
+++ b/s390x/uv-host.c
@@ -76,7 +76,7 @@ static void test_priv(void)
 		uvcb.cmd = cmds[i].cmd;
 		uvcb.len = cmds[i].len;
 		enter_pstate();
-		uv_call(0, (uint64_t)&uvcb);
+		uv_call_once(0, (uint64_t)&uvcb);
 		pgm = clear_pgm_int();
 		report(pgm == PGM_INT_CODE_PRIVILEGED_OPERATION, "%s", cmds[i].name);
 	}
-- 
2.32.0


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

* [kvm-unit-tests PATCH v3 11/11] s390x: Restore registers in diag308_load_reset() error path
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
                   ` (9 preceding siblings ...)
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 10/11] s390x: uv-host: Fix pgm tests Janosch Frank
@ 2022-04-21 10:11 ` Janosch Frank
  2022-04-21 11:59   ` Claudio Imbrenda
  2022-04-21 11:59 ` [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Claudio Imbrenda
  11 siblings, 1 reply; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 10:11 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden, nrb

In case of an error we'll currently return with the wrong values in
gr0 and gr1. Let's fix that by restoring the registers before setting
the return value and branching to the return address.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
 s390x/cpu.S | 1 +
 1 file changed, 1 insertion(+)

diff --git a/s390x/cpu.S b/s390x/cpu.S
index 82b5e25d..0bd8c0e3 100644
--- a/s390x/cpu.S
+++ b/s390x/cpu.S
@@ -34,6 +34,7 @@ diag308_load_reset:
 	stg     %r15, GEN_LC_SW_INT_GRS + 15 * 8
 	/* Do the reset */
 	diag    %r0,%r2,0x308
+	RESTORE_REGS_STACK
 	/* Failure path */
 	xgr	%r2, %r2
 	br	%r14
-- 
2.32.0


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

* Re: [kvm-unit-tests PATCH v3 10/11] s390x: uv-host: Fix pgm tests
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 10/11] s390x: uv-host: Fix pgm tests Janosch Frank
@ 2022-04-21 11:13   ` Nico Boehr
  0 siblings, 0 replies; 16+ messages in thread
From: Nico Boehr @ 2022-04-21 11:13 UTC (permalink / raw)
  To: Janosch Frank, kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden

On Thu, 2022-04-21 at 10:11 +0000, Janosch Frank wrote:
> We don't want to re-enter the UV call on a cc > 1 for this test.
> 
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>

Reviewed-by: Nico Boehr <nrb@linux.ibm.com>

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

* Re: [kvm-unit-tests PATCH v3 11/11] s390x: Restore registers in diag308_load_reset() error path
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 11/11] s390x: Restore registers in diag308_load_reset() error path Janosch Frank
@ 2022-04-21 11:59   ` Claudio Imbrenda
  0 siblings, 0 replies; 16+ messages in thread
From: Claudio Imbrenda @ 2022-04-21 11:59 UTC (permalink / raw)
  To: Janosch Frank; +Cc: kvm, linux-s390, david, thuth, seiden, nrb

On Thu, 21 Apr 2022 10:11:30 +0000
Janosch Frank <frankja@linux.ibm.com> wrote:

> In case of an error we'll currently return with the wrong values in
> gr0 and gr1. Let's fix that by restoring the registers before setting
> the return value and branching to the return address.
> 
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>

Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>

> ---
>  s390x/cpu.S | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/s390x/cpu.S b/s390x/cpu.S
> index 82b5e25d..0bd8c0e3 100644
> --- a/s390x/cpu.S
> +++ b/s390x/cpu.S
> @@ -34,6 +34,7 @@ diag308_load_reset:
>  	stg     %r15, GEN_LC_SW_INT_GRS + 15 * 8
>  	/* Do the reset */
>  	diag    %r0,%r2,0x308
> +	RESTORE_REGS_STACK
>  	/* Failure path */
>  	xgr	%r2, %r2
>  	br	%r14


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

* Re: [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4
  2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
                   ` (10 preceding siblings ...)
  2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 11/11] s390x: Restore registers in diag308_load_reset() error path Janosch Frank
@ 2022-04-21 11:59 ` Claudio Imbrenda
  2022-04-21 12:39   ` Janosch Frank
  11 siblings, 1 reply; 16+ messages in thread
From: Claudio Imbrenda @ 2022-04-21 11:59 UTC (permalink / raw)
  To: Janosch Frank; +Cc: kvm, linux-s390, david, thuth, seiden, nrb

On Thu, 21 Apr 2022 10:11:19 +0000
Janosch Frank <frankja@linux.ibm.com> wrote:

> A few small cleanups and two patches that I forgot to upstream which
> have now been rebased onto the machine.h library functions.

thanks, queued

> 
> v3:
> 	* Added review tags
> 	* Added uv-host and diag308 fix
> 	* Diag308 subcode 2 patch, moved the prefix push and pop outside of the if
> 
> v2:
> 	* Added host_is_qemu() function
> 	* Fixed qemu checks
> 
> Janosch Frank (11):
>   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
>   s390x: uv-host: Fix pgm tests
>   s390x: Restore registers in diag308_load_reset() error path
> 
>  lib/s390x/hardware.h                       |  5 +++
>  s390x/cpu.S                                |  1 +
>  s390x/css.c                                | 18 ++++++----
>  s390x/diag308.c                            | 18 +++++++++-
>  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 +++++
>  s390x/uv-host.c                            |  2 +-
>  12 files changed, 85 insertions(+), 48 deletions(-)
> 


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

* Re: [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4
  2022-04-21 11:59 ` [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Claudio Imbrenda
@ 2022-04-21 12:39   ` Janosch Frank
  0 siblings, 0 replies; 16+ messages in thread
From: Janosch Frank @ 2022-04-21 12:39 UTC (permalink / raw)
  To: Claudio Imbrenda; +Cc: kvm, linux-s390, david, thuth, seiden, nrb

On 4/21/22 13:59, Claudio Imbrenda wrote:
> On Thu, 21 Apr 2022 10:11:19 +0000
> Janosch Frank <frankja@linux.ibm.com> wrote:
> 
>> A few small cleanups and two patches that I forgot to upstream which
>> have now been rebased onto the machine.h library functions.
> 
> thanks, queued
> 

Please drop the register restore patch #11 from your queue.

Nico rightly complained that r0/r1 are volatile and I shouldn't have to 
restore them. It's been too long for me to fully remember why I had to 
fix that. It might have been a diag308 wrongfully resetting all 
registers but not loading the reset PSW. Whatever issue I had, the 
commit message is wrong anyway. If I'm able to remember the issue I'll 
fix and post the patch again.

>>
>> v3:
>> 	* Added review tags
>> 	* Added uv-host and diag308 fix
>> 	* Diag308 subcode 2 patch, moved the prefix push and pop outside of the if
>>
>> v2:
>> 	* Added host_is_qemu() function
>> 	* Fixed qemu checks
>>
>> Janosch Frank (11):
>>    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
>>    s390x: uv-host: Fix pgm tests
>>    s390x: Restore registers in diag308_load_reset() error path
>>
>>   lib/s390x/hardware.h                       |  5 +++
>>   s390x/cpu.S                                |  1 +
>>   s390x/css.c                                | 18 ++++++----
>>   s390x/diag308.c                            | 18 +++++++++-
>>   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 +++++
>>   s390x/uv-host.c                            |  2 +-
>>   12 files changed, 85 insertions(+), 48 deletions(-)
>>
> 


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

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

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-21 10:11 [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 01/11] lib: s390x: hardware: Add host_is_qemu() function Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 02/11] s390x: css: Skip if we're not run by qemu Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 03/11] s390x: diag308: Only test subcode 2 under QEMU Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 04/11] s390x: pfmf: Initialize pfmf_r1 union on declaration Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 05/11] s390x: snippets: asm: Add license and copyright headers Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 06/11] s390x: pv-diags: Cleanup includes Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 07/11] s390x: css: " Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 08/11] s390x: iep: " Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 09/11] s390x: mvpg: " Janosch Frank
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 10/11] s390x: uv-host: Fix pgm tests Janosch Frank
2022-04-21 11:13   ` Nico Boehr
2022-04-21 10:11 ` [kvm-unit-tests PATCH v3 11/11] s390x: Restore registers in diag308_load_reset() error path Janosch Frank
2022-04-21 11:59   ` Claudio Imbrenda
2022-04-21 11:59 ` [kvm-unit-tests PATCH v3 00/11] s390x: Cleanup and maintenance 4 Claudio Imbrenda
2022-04-21 12:39   ` 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.