All of lore.kernel.org
 help / color / mirror / Atom feed
* [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches
@ 2020-09-01  9:18 Janosch Frank
  2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 1/3] s390x: Add custom pgm cleanup function Janosch Frank
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Janosch Frank @ 2020-09-01  9:18 UTC (permalink / raw)
  To: pbonzini; +Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

Hi Paolo,

initially I wanted to wait with this pull until I picked more patches,
but it doesn't look like that will happen soon and my vacation is
getting closer. So here we go:

The following changes since commit 1b53866b0b494277ab41c7c0cec4ee00969dd32e:

  Merge tag 's390x-2020-31-07' of https://github.com/frankjaa/kvm-unit-tests into HEAD (2020-08-09 18:06:26 +0200)

are available in the Git repository at:

  git@gitlab.com:frankja/kvm-unit-tests.git tags/s390x-2020-01-09

for you to fetch changes up to 2ea7afb64d34b5dd841334f72b99251ab56433cd:

  s390x: Ultravisor guest API test (2020-08-11 03:19:46 -0400)

----------------------------------------------------------------
* Added first Ultravisor tests
* Added SKRF key in PSW test
* Added custom program exception cleanup hook
----------------------------------------------------------------
Janosch Frank (3):
      s390x: Add custom pgm cleanup function
      s390x: skrf: Add exception new skey test and add test to unittests.cfg
      s390x: Ultravisor guest API test

 lib/s390x/asm/interrupt.h |   1 +
 lib/s390x/asm/uv.h        |  74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 lib/s390x/interrupt.c     |  12 +++++++++++-
 s390x/Makefile            |   1 +
 s390x/skrf.c              |  79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 s390x/unittests.cfg       |   7 +++++++
 s390x/uv-guest.c          | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 323 insertions(+), 1 deletion(-)
 create mode 100644 lib/s390x/asm/uv.h
 create mode 100644 s390x/uv-guest.c



Janosch Frank (3):
  s390x: Add custom pgm cleanup function
  s390x: skrf: Add exception new skey test and add test to unittests.cfg
  s390x: Ultravisor guest API test

 lib/s390x/asm/interrupt.h |   1 +
 lib/s390x/asm/uv.h        |  74 +++++++++++++++++++
 lib/s390x/interrupt.c     |  12 ++-
 s390x/Makefile            |   1 +
 s390x/skrf.c              |  79 ++++++++++++++++++++
 s390x/unittests.cfg       |   7 ++
 s390x/uv-guest.c          | 150 ++++++++++++++++++++++++++++++++++++++
 7 files changed, 323 insertions(+), 1 deletion(-)
 create mode 100644 lib/s390x/asm/uv.h
 create mode 100644 s390x/uv-guest.c

-- 
2.25.4

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

* [kvm-unit-tests GIT PULL 1/3] s390x: Add custom pgm cleanup function
  2020-09-01  9:18 [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches Janosch Frank
@ 2020-09-01  9:18 ` Janosch Frank
  2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 2/3] s390x: skrf: Add exception new skey test and add test to unittests.cfg Janosch Frank
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Janosch Frank @ 2020-09-01  9:18 UTC (permalink / raw)
  To: pbonzini; +Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

Sometimes we need to do cleanup which we don't necessarily want to add
to interrupt.c, so let's add a way to register a cleanup function.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200807111555.11169-2-frankja@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
 lib/s390x/asm/interrupt.h |  1 +
 lib/s390x/interrupt.c     | 12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/lib/s390x/asm/interrupt.h b/lib/s390x/asm/interrupt.h
index 4cfade9..2772e6b 100644
--- a/lib/s390x/asm/interrupt.h
+++ b/lib/s390x/asm/interrupt.h
@@ -15,6 +15,7 @@
 #define EXT_IRQ_EXTERNAL_CALL	0x1202
 #define EXT_IRQ_SERVICE_SIG	0x2401
 
+void register_pgm_cleanup_func(void (*f)(void));
 void handle_pgm_int(void);
 void handle_ext_int(void);
 void handle_mcck_int(void);
diff --git a/lib/s390x/interrupt.c b/lib/s390x/interrupt.c
index 243b9c2..a074505 100644
--- a/lib/s390x/interrupt.c
+++ b/lib/s390x/interrupt.c
@@ -16,6 +16,7 @@
 
 static bool pgm_int_expected;
 static bool ext_int_expected;
+static void (*pgm_cleanup_func)(void);
 static struct lowcore *lc;
 
 void expect_pgm_int(void)
@@ -51,6 +52,11 @@ void check_pgm_int_code(uint16_t code)
 	       lc->pgm_int_code);
 }
 
+void register_pgm_cleanup_func(void (*f)(void))
+{
+	pgm_cleanup_func = f;
+}
+
 static void fixup_pgm_int(void)
 {
 	switch (lc->pgm_int_code) {
@@ -115,7 +121,11 @@ void handle_pgm_int(void)
 	}
 
 	pgm_int_expected = false;
-	fixup_pgm_int();
+
+	if (pgm_cleanup_func)
+		(*pgm_cleanup_func)();
+	else
+		fixup_pgm_int();
 }
 
 void handle_ext_int(void)
-- 
2.25.4

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

* [kvm-unit-tests GIT PULL 2/3] s390x: skrf: Add exception new skey test and add test to unittests.cfg
  2020-09-01  9:18 [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches Janosch Frank
  2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 1/3] s390x: Add custom pgm cleanup function Janosch Frank
@ 2020-09-01  9:18 ` Janosch Frank
  2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 3/3] s390x: Ultravisor guest API test Janosch Frank
  2020-09-02 17:41 ` [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches Paolo Bonzini
  3 siblings, 0 replies; 7+ messages in thread
From: Janosch Frank @ 2020-09-01  9:18 UTC (permalink / raw)
  To: pbonzini; +Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

When an exception new psw with a storage key in its mask is loaded
from lowcore, a specification exception is raised. This differs from
the behavior when trying to execute skey related instructions, which
will result in special operation exceptions.

Also let's add the test to unittests.cfg so it is run more often.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200807111555.11169-3-frankja@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
 s390x/skrf.c        | 79 +++++++++++++++++++++++++++++++++++++++++++++
 s390x/unittests.cfg |  4 +++
 2 files changed, 83 insertions(+)

diff --git a/s390x/skrf.c b/s390x/skrf.c
index 9cae589..b19d0f4 100644
--- a/s390x/skrf.c
+++ b/s390x/skrf.c
@@ -11,12 +11,16 @@
  */
 #include <libcflat.h>
 #include <asm/asm-offsets.h>
+#include <asm-generic/barrier.h>
 #include <asm/interrupt.h>
 #include <asm/page.h>
 #include <asm/facility.h>
 #include <asm/mem.h>
+#include <asm/sigp.h>
+#include <smp.h>
 
 static uint8_t pagebuf[PAGE_SIZE * 2] __attribute__((aligned(PAGE_SIZE * 2)));
+static int testflag = 0;
 
 static void test_facilities(void)
 {
@@ -106,6 +110,80 @@ static void test_tprot(void)
 	report_prefix_pop();
 }
 
+static void wait_for_flag(void)
+{
+	while (!testflag)
+		mb();
+}
+
+static void set_flag(int val)
+{
+	mb();
+	testflag = val;
+	mb();
+}
+
+static void ecall_cleanup(void)
+{
+	struct lowcore *lc = (void *)0x0;
+
+	lc->ext_new_psw.mask = 0x0000000180000000UL;
+	lc->sw_int_crs[0] = 0x0000000000040000;
+
+	/*
+	 * PGM old contains the ext new PSW, we need to clean it up,
+	 * so we don't get a special operation exception on the lpswe
+	 * of pgm old.
+	 */
+	lc->pgm_old_psw.mask = 0x0000000180000000UL;
+
+	check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
+	set_flag(1);
+}
+
+/* Set a key into the external new psw mask and open external call masks */
+static void ecall_setup(void)
+{
+	struct lowcore *lc = (void *)0x0;
+	uint64_t mask;
+
+	register_pgm_cleanup_func(ecall_cleanup);
+	expect_pgm_int();
+	/* Put a skey into the ext new psw */
+	lc->ext_new_psw.mask = 0x00F0000180000000UL;
+	/* Open up ext masks */
+	ctl_set_bit(0, 13);
+	mask = extract_psw_mask();
+	mask |= PSW_MASK_EXT;
+	load_psw_mask(mask);
+	/* Tell cpu 0 that we're ready */
+	set_flag(1);
+}
+
+static void test_exception_ext_new(void)
+{
+	struct psw psw = {
+		.mask = extract_psw_mask(),
+		.addr = (unsigned long)ecall_setup
+	};
+
+	report_prefix_push("exception external new");
+	if (smp_query_num_cpus() < 2) {
+		report_skip("Need second cpu for exception external new test.");
+		report_prefix_pop();
+		return;
+	}
+
+	smp_cpu_setup(1, psw);
+	wait_for_flag();
+	set_flag(0);
+
+	sigp(1, SIGP_EXTERNAL_CALL, 0, NULL);
+	wait_for_flag();
+	smp_cpu_stop(1);
+	report_prefix_pop();
+}
+
 int main(void)
 {
 	report_prefix_push("skrf");
@@ -121,6 +199,7 @@ int main(void)
 	test_mvcos();
 	test_spka();
 	test_tprot();
+	test_exception_ext_new();
 
 done:
 	report_prefix_pop();
diff --git a/s390x/unittests.cfg b/s390x/unittests.cfg
index 0f156af..b35269b 100644
--- a/s390x/unittests.cfg
+++ b/s390x/unittests.cfg
@@ -88,3 +88,7 @@ extra_params = -m 3G
 [css]
 file = css.elf
 extra_params = -device virtio-net-ccw
+
+[skrf]
+file = skrf.elf
+smp = 2
-- 
2.25.4

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

* [kvm-unit-tests GIT PULL 3/3] s390x: Ultravisor guest API test
  2020-09-01  9:18 [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches Janosch Frank
  2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 1/3] s390x: Add custom pgm cleanup function Janosch Frank
  2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 2/3] s390x: skrf: Add exception new skey test and add test to unittests.cfg Janosch Frank
@ 2020-09-01  9:18 ` Janosch Frank
  2020-09-02 17:41 ` [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches Paolo Bonzini
  3 siblings, 0 replies; 7+ messages in thread
From: Janosch Frank @ 2020-09-01  9:18 UTC (permalink / raw)
  To: pbonzini; +Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

Test the error conditions of guest 2 Ultravisor calls, namely:
     * Query Ultravisor information
     * Set shared access
     * Remove shared access

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200810154541.32974-1-frankja@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
 lib/s390x/asm/uv.h  |  74 ++++++++++++++++++++++
 s390x/Makefile      |   1 +
 s390x/unittests.cfg |   3 +
 s390x/uv-guest.c    | 150 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 228 insertions(+)
 create mode 100644 lib/s390x/asm/uv.h
 create mode 100644 s390x/uv-guest.c

diff --git a/lib/s390x/asm/uv.h b/lib/s390x/asm/uv.h
new file mode 100644
index 0000000..4c2fc48
--- /dev/null
+++ b/lib/s390x/asm/uv.h
@@ -0,0 +1,74 @@
+/*
+ * s390x Ultravisor related definitions
+ *
+ * Copyright (c) 2020 IBM Corp
+ *
+ * Authors:
+ *  Janosch Frank <frankja@linux.ibm.com>
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2.
+ */
+#ifndef UV_H
+#define UV_H
+
+#define UVC_RC_EXECUTED		0x0001
+#define UVC_RC_INV_CMD		0x0002
+#define UVC_RC_INV_STATE	0x0003
+#define UVC_RC_INV_LEN		0x0005
+#define UVC_RC_NO_RESUME	0x0007
+
+#define UVC_CMD_QUI			0x0001
+#define UVC_CMD_SET_SHARED_ACCESS	0x1000
+#define UVC_CMD_REMOVE_SHARED_ACCESS	0x1001
+
+/* Bits in installed uv calls */
+enum uv_cmds_inst {
+	BIT_UVC_CMD_QUI = 0,
+	BIT_UVC_CMD_SET_SHARED_ACCESS = 8,
+	BIT_UVC_CMD_REMOVE_SHARED_ACCESS = 9,
+};
+
+struct uv_cb_header {
+	u16 len;
+	u16 cmd;	/* Command Code */
+	u16 rc;		/* Response Code */
+	u16 rrc;	/* Return Reason Code */
+} __attribute__((packed))  __attribute__((aligned(8)));
+
+struct uv_cb_qui {
+	struct uv_cb_header header;
+	u64 reserved08;
+	u64 inst_calls_list[4];
+	u64 reserved30[15];
+} __attribute__((packed))  __attribute__((aligned(8)));
+
+struct uv_cb_share {
+	struct uv_cb_header header;
+	u64 reserved08[3];
+	u64 paddr;
+	u64 reserved28;
+} __attribute__((packed))  __attribute__((aligned(8)));
+
+static inline int uv_call(unsigned long r1, unsigned long r2)
+{
+	int cc;
+
+	/*
+	 * The brc instruction will take care of the cc 2/3 case where
+	 * we need to continue the execution because we were
+	 * interrupted. The inline assembly will only return on
+	 * success/error i.e. cc 0/1.
+	*/
+	asm volatile(
+		"0:	.insn rrf,0xB9A40000,%[r1],%[r2],0,0\n"
+		"		brc	3,0b\n"
+		"		ipm	%[cc]\n"
+		"		srl	%[cc],28\n"
+		: [cc] "=d" (cc)
+		: [r1] "a" (r1), [r2] "a" (r2)
+		: "memory", "cc");
+	return cc;
+}
+
+#endif
diff --git a/s390x/Makefile b/s390x/Makefile
index 0f54bf4..c2213ad 100644
--- a/s390x/Makefile
+++ b/s390x/Makefile
@@ -18,6 +18,7 @@ tests += $(TEST_DIR)/skrf.elf
 tests += $(TEST_DIR)/smp.elf
 tests += $(TEST_DIR)/sclp.elf
 tests += $(TEST_DIR)/css.elf
+tests += $(TEST_DIR)/uv-guest.elf
 tests_binary = $(patsubst %.elf,%.bin,$(tests))
 
 all: directories test_cases test_cases_binary
diff --git a/s390x/unittests.cfg b/s390x/unittests.cfg
index b35269b..6d50c63 100644
--- a/s390x/unittests.cfg
+++ b/s390x/unittests.cfg
@@ -92,3 +92,6 @@ extra_params = -device virtio-net-ccw
 [skrf]
 file = skrf.elf
 smp = 2
+
+[uv-guest]
+file = uv-guest.elf
diff --git a/s390x/uv-guest.c b/s390x/uv-guest.c
new file mode 100644
index 0000000..d47333e
--- /dev/null
+++ b/s390x/uv-guest.c
@@ -0,0 +1,150 @@
+/*
+ * Guest Ultravisor Call tests
+ *
+ * Copyright (c) 2020 IBM Corp
+ *
+ * Authors:
+ *  Janosch Frank <frankja@linux.ibm.com>
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2.
+ */
+
+#include <libcflat.h>
+#include <alloc_page.h>
+#include <asm/page.h>
+#include <asm/asm-offsets.h>
+#include <asm/interrupt.h>
+#include <asm/facility.h>
+#include <asm/uv.h>
+
+static unsigned long page;
+
+static void test_priv(void)
+{
+	struct uv_cb_header uvcb = {};
+
+	report_prefix_push("privileged");
+
+	report_prefix_push("query");
+	uvcb.cmd = UVC_CMD_QUI;
+	uvcb.len = sizeof(struct uv_cb_qui);
+	expect_pgm_int();
+	enter_pstate();
+	uv_call(0, (u64)&uvcb);
+	check_pgm_int_code(PGM_INT_CODE_PRIVILEGED_OPERATION);
+	report_prefix_pop();
+
+	report_prefix_push("share");
+	uvcb.cmd = UVC_CMD_SET_SHARED_ACCESS;
+	uvcb.len = sizeof(struct uv_cb_share);
+	expect_pgm_int();
+	enter_pstate();
+	uv_call(0, (u64)&uvcb);
+	check_pgm_int_code(PGM_INT_CODE_PRIVILEGED_OPERATION);
+	report_prefix_pop();
+
+	report_prefix_push("unshare");
+	uvcb.cmd = UVC_CMD_REMOVE_SHARED_ACCESS;
+	uvcb.len = sizeof(struct uv_cb_share);
+	expect_pgm_int();
+	enter_pstate();
+	uv_call(0, (u64)&uvcb);
+	check_pgm_int_code(PGM_INT_CODE_PRIVILEGED_OPERATION);
+	report_prefix_pop();
+
+	report_prefix_pop();
+}
+
+static void test_query(void)
+{
+	struct uv_cb_qui uvcb = {
+		.header.cmd = UVC_CMD_QUI,
+		.header.len = sizeof(uvcb) - 8,
+	};
+	int cc;
+
+	report_prefix_push("query");
+	cc = uv_call(0, (u64)&uvcb);
+	report(cc == 1 && uvcb.header.rc == UVC_RC_INV_LEN, "length");
+
+	uvcb.header.len = sizeof(uvcb);
+	cc = uv_call(0, (u64)&uvcb);
+	report(cc == 0 && uvcb.header.rc == UVC_RC_EXECUTED, "successful query");
+
+	/*
+	 * These bits have been introduced with the very first
+	 * Ultravisor version and are expected to always be available
+	 * because they are basic building blocks.
+	 */
+	report(uvcb.inst_calls_list[0] & (1UL << (63 - BIT_UVC_CMD_QUI)),
+	       "query indicated");
+	report(uvcb.inst_calls_list[0] & (1UL << (63 - BIT_UVC_CMD_SET_SHARED_ACCESS)),
+	       "share indicated");
+	report(uvcb.inst_calls_list[0] & (1UL << (63 - BIT_UVC_CMD_REMOVE_SHARED_ACCESS)),
+	       "unshare indicated");
+	report_prefix_pop();
+}
+
+static void test_sharing(void)
+{
+	struct uv_cb_share uvcb = {
+		.header.cmd = UVC_CMD_SET_SHARED_ACCESS,
+		.header.len = sizeof(uvcb) - 8,
+		.paddr = page,
+	};
+	int cc;
+
+	report_prefix_push("share");
+	cc = uv_call(0, (u64)&uvcb);
+	report(cc == 1 && uvcb.header.rc == UVC_RC_INV_LEN, "length");
+	uvcb.header.len = sizeof(uvcb);
+	cc = uv_call(0, (u64)&uvcb);
+	report(cc == 0 && uvcb.header.rc == UVC_RC_EXECUTED, "share");
+	report_prefix_pop();
+
+	report_prefix_push("unshare");
+	uvcb.header.cmd = UVC_CMD_REMOVE_SHARED_ACCESS;
+	uvcb.header.len -= 8;
+	cc = uv_call(0, (u64)&uvcb);
+	report(cc == 1 && uvcb.header.rc == UVC_RC_INV_LEN, "length");
+	uvcb.header.len = sizeof(uvcb);
+	cc = uv_call(0, (u64)&uvcb);
+	report(cc == 0 && uvcb.header.rc == UVC_RC_EXECUTED, "unshare");
+	report_prefix_pop();
+
+	report_prefix_pop();
+}
+
+static void test_invalid(void)
+{
+	struct uv_cb_header uvcb = {
+		.len = 16,
+		.cmd = 0x4242,
+	};
+	int cc;
+
+	cc = uv_call(0, (u64)&uvcb);
+	report(cc == 1 && uvcb.rc == UVC_RC_INV_CMD, "invalid command");
+}
+
+int main(void)
+{
+	bool has_uvc = test_facility(158);
+
+	report_prefix_push("uvc");
+	if (!has_uvc) {
+		report_skip("Ultravisor call facility is not available");
+		goto done;
+	}
+
+	page = (unsigned long)alloc_page();
+	test_priv();
+	test_invalid();
+	test_query();
+	test_sharing();
+	free_page((void *)page);
+done:
+	report_prefix_pop();
+	return report_summary();
+}
-- 
2.25.4

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

* Re: [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches
  2020-09-01  9:18 [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches Janosch Frank
                   ` (2 preceding siblings ...)
  2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 3/3] s390x: Ultravisor guest API test Janosch Frank
@ 2020-09-02 17:41 ` Paolo Bonzini
  2020-09-14 16:24   ` Thomas Huth
  3 siblings, 1 reply; 7+ messages in thread
From: Paolo Bonzini @ 2020-09-02 17:41 UTC (permalink / raw)
  To: Janosch Frank
  Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

On 01/09/20 11:18, Janosch Frank wrote:
>   git@gitlab.com:frankja/kvm-unit-tests.git tags/s390x-2020-01-09

Pulled, thanks.

(Yes, I am alive).

Paolo

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

* Re: [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches
  2020-09-02 17:41 ` [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches Paolo Bonzini
@ 2020-09-14 16:24   ` Thomas Huth
  2020-09-20 13:16     ` Paolo Bonzini
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Huth @ 2020-09-14 16:24 UTC (permalink / raw)
  To: Paolo Bonzini, Janosch Frank
  Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

On 02/09/2020 19.41, Paolo Bonzini wrote:
> On 01/09/20 11:18, Janosch Frank wrote:
>>   git@gitlab.com:frankja/kvm-unit-tests.git tags/s390x-2020-01-09
> 
> Pulled, thanks.
> 
> (Yes, I am alive).

 Hi Paolo,

I don't see the patches in the master branch - could you please push
them to the repo?

 Thanks,
  Thomas

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

* Re: [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches
  2020-09-14 16:24   ` Thomas Huth
@ 2020-09-20 13:16     ` Paolo Bonzini
  0 siblings, 0 replies; 7+ messages in thread
From: Paolo Bonzini @ 2020-09-20 13:16 UTC (permalink / raw)
  To: Thomas Huth, Janosch Frank
  Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

On 14/09/20 18:24, Thomas Huth wrote:
> On 02/09/2020 19.41, Paolo Bonzini wrote:
>> On 01/09/20 11:18, Janosch Frank wrote:
>>>   git@gitlab.com:frankja/kvm-unit-tests.git tags/s390x-2020-01-09
>>
>> Pulled, thanks.
>>
>> (Yes, I am alive).
> 
>  Hi Paolo,
> 
> I don't see the patches in the master branch - could you please push
> them to the repo?

Oops, pulling had failed because Janosch used an ssh reference to the
repo.  Fixed and pushed.

Paolo

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

end of thread, other threads:[~2020-09-20 13:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-01  9:18 [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches Janosch Frank
2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 1/3] s390x: Add custom pgm cleanup function Janosch Frank
2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 2/3] s390x: skrf: Add exception new skey test and add test to unittests.cfg Janosch Frank
2020-09-01  9:18 ` [kvm-unit-tests GIT PULL 3/3] s390x: Ultravisor guest API test Janosch Frank
2020-09-02 17:41 ` [kvm-unit-tests GIT PULL 0/3] s390x skrf and ultravisor patches Paolo Bonzini
2020-09-14 16:24   ` Thomas Huth
2020-09-20 13:16     ` Paolo Bonzini

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.