* [kvm-unit-tests PATCH v2 0/3] s390x: Cleanup and maintenance 3
@ 2021-10-14 12:51 Janosch Frank
2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 1/3] lib: s390x: Fix PSW constant Janosch Frank
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Janosch Frank @ 2021-10-14 12:51 UTC (permalink / raw)
To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden
Three small cleanup patches mostly improving snippet usage and small
fixes.
v2:
* Simplified the snippet patch by always using 0x4000 as the start address
* Removed a few commas in weird places with new patch
Janosch Frank (3):
lib: s390x: Fix PSW constant
lib: s390x: snippet.h: Add a few constants that will make our life
easier
lib: s390x: Fix copyright message
lib/s390x/asm/arch_def.h | 2 +-
lib/s390x/css.h | 2 +-
lib/s390x/sclp.h | 2 +-
lib/s390x/snippet.h | 34 ++++++++++++++++++++++++++++++++++
s390x/mvpg-sie.c | 13 ++++++-------
5 files changed, 43 insertions(+), 10 deletions(-)
create mode 100644 lib/s390x/snippet.h
--
2.30.2
^ permalink raw reply [flat|nested] 7+ messages in thread* [kvm-unit-tests PATCH v2 1/3] lib: s390x: Fix PSW constant 2021-10-14 12:51 [kvm-unit-tests PATCH v2 0/3] s390x: Cleanup and maintenance 3 Janosch Frank @ 2021-10-14 12:51 ` Janosch Frank 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 2/3] lib: s390x: snippet.h: Add a few constants that will make our life easier Janosch Frank 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 3/3] lib: s390x: Fix copyright message Janosch Frank 2 siblings, 0 replies; 7+ messages in thread From: Janosch Frank @ 2021-10-14 12:51 UTC (permalink / raw) To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden Somehow the ";" got into that patch and now complicates compilation. Let's remove it and put the constant in braces. Signed-off-by: Janosch Frank <frankja@linux.ibm.com> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> --- lib/s390x/asm/arch_def.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/s390x/asm/arch_def.h b/lib/s390x/asm/arch_def.h index b34aa792..40626d72 100644 --- a/lib/s390x/asm/arch_def.h +++ b/lib/s390x/asm/arch_def.h @@ -53,7 +53,7 @@ struct psw { #define PSW_MASK_PSTATE 0x0001000000000000UL #define PSW_MASK_EA 0x0000000100000000UL #define PSW_MASK_BA 0x0000000080000000UL -#define PSW_MASK_64 PSW_MASK_BA | PSW_MASK_EA; +#define PSW_MASK_64 (PSW_MASK_BA | PSW_MASK_EA) #define CTL0_LOW_ADDR_PROT (63 - 35) #define CTL0_EDAT (63 - 40) -- 2.30.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [kvm-unit-tests PATCH v2 2/3] lib: s390x: snippet.h: Add a few constants that will make our life easier 2021-10-14 12:51 [kvm-unit-tests PATCH v2 0/3] s390x: Cleanup and maintenance 3 Janosch Frank 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 1/3] lib: s390x: Fix PSW constant Janosch Frank @ 2021-10-14 12:51 ` Janosch Frank 2021-10-14 13:09 ` Claudio Imbrenda 2021-10-14 13:32 ` Thomas Huth 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 3/3] lib: s390x: Fix copyright message Janosch Frank 2 siblings, 2 replies; 7+ messages in thread From: Janosch Frank @ 2021-10-14 12:51 UTC (permalink / raw) To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden The variable names for the snippet objects are of gigantic length so let's define a few macros to make them easier to read. Also add a standard PSW which should be used to start the snippet. Signed-off-by: Janosch Frank <frankja@linux.ibm.com> --- lib/s390x/snippet.h | 34 ++++++++++++++++++++++++++++++++++ s390x/mvpg-sie.c | 13 ++++++------- 2 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 lib/s390x/snippet.h diff --git a/lib/s390x/snippet.h b/lib/s390x/snippet.h new file mode 100644 index 00000000..8e4765f8 --- /dev/null +++ b/lib/s390x/snippet.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Snippet definitions + * + * Copyright IBM Corp. 2021 + * Author: Janosch Frank <frankja@linux.ibm.com> + */ + +#ifndef _S390X_SNIPPET_H_ +#define _S390X_SNIPPET_H_ + +/* This macro cuts down the length of the pointers to snippets */ +#define SNIPPET_NAME_START(type, file) \ + _binary_s390x_snippets_##type##_##file##_gbin_start +#define SNIPPET_NAME_END(type, file) \ + _binary_s390x_snippets_##type##_##file##_gbin_end + +/* Returns the length of the snippet */ +#define SNIPPET_LEN(type, file) \ + ((uintptr_t)SNIPPET_NAME_END(type, file) - (uintptr_t)SNIPPET_NAME_START(type, file)) + +/* + * C snippet instructions start at 0x4000 due to the prefix and the + * stack being before that. ASM snippets don't strictly need a stack + * but keeping the starting address the same means less code. + */ +#define SNIPPET_ENTRY_ADDR 0x4000 + +/* Standard entry PSWs for snippets which can simply be copied into the guest PSW */ +static const struct psw snippet_psw = { + .mask = PSW_MASK_64, + .addr = SNIPPET_ENTRY_ADDR, +}; +#endif diff --git a/s390x/mvpg-sie.c b/s390x/mvpg-sie.c index 5adcec1e..d526069d 100644 --- a/s390x/mvpg-sie.c +++ b/s390x/mvpg-sie.c @@ -19,6 +19,7 @@ #include <vm.h> #include <sclp.h> #include <sie.h> +#include <snippet.h> static u8 *guest; static struct vm vm; @@ -27,8 +28,8 @@ static uint8_t *src; static uint8_t *dst; static uint8_t *cmp; -extern const char _binary_s390x_snippets_c_mvpg_snippet_gbin_start[]; -extern const char _binary_s390x_snippets_c_mvpg_snippet_gbin_end[]; +extern const char SNIPPET_NAME_START(c, mvpg_snippet)[]; +extern const char SNIPPET_NAME_END(c, mvpg_snippet)[]; int binary_size; static void test_mvpg_pei(void) @@ -77,10 +78,9 @@ static void test_mvpg_pei(void) static void test_mvpg(void) { - int binary_size = ((uintptr_t)_binary_s390x_snippets_c_mvpg_snippet_gbin_end - - (uintptr_t)_binary_s390x_snippets_c_mvpg_snippet_gbin_start); + int binary_size = SNIPPET_LEN(c, mvpg_snippet); - memcpy(guest, _binary_s390x_snippets_c_mvpg_snippet_gbin_start, binary_size); + memcpy(guest, SNIPPET_NAME_START(c, mvpg_snippet), binary_size); memset(src, 0x42, PAGE_SIZE); memset(dst, 0x43, PAGE_SIZE); sie(&vm); @@ -96,8 +96,7 @@ static void setup_guest(void) sie_guest_create(&vm, (uint64_t)guest, HPAGE_SIZE); - vm.sblk->gpsw.addr = PAGE_SIZE * 4; - vm.sblk->gpsw.mask = PSW_MASK_64; + vm.sblk->gpsw = snippet_psw; vm.sblk->ictl = ICTL_OPEREXC | ICTL_PINT; /* Enable MVPG interpretation as we want to test KVM and not ourselves */ vm.sblk->eca = ECA_MVPGI; -- 2.30.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [kvm-unit-tests PATCH v2 2/3] lib: s390x: snippet.h: Add a few constants that will make our life easier 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 2/3] lib: s390x: snippet.h: Add a few constants that will make our life easier Janosch Frank @ 2021-10-14 13:09 ` Claudio Imbrenda 2021-10-14 13:32 ` Thomas Huth 1 sibling, 0 replies; 7+ messages in thread From: Claudio Imbrenda @ 2021-10-14 13:09 UTC (permalink / raw) To: Janosch Frank; +Cc: kvm, linux-s390, david, thuth, seiden On Thu, 14 Oct 2021 12:51:06 +0000 Janosch Frank <frankja@linux.ibm.com> wrote: > The variable names for the snippet objects are of gigantic length so > let's define a few macros to make them easier to read. > > Also add a standard PSW which should be used to start the snippet. > > Signed-off-by: Janosch Frank <frankja@linux.ibm.com> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> > --- > lib/s390x/snippet.h | 34 ++++++++++++++++++++++++++++++++++ > s390x/mvpg-sie.c | 13 ++++++------- > 2 files changed, 40 insertions(+), 7 deletions(-) > create mode 100644 lib/s390x/snippet.h > > diff --git a/lib/s390x/snippet.h b/lib/s390x/snippet.h > new file mode 100644 > index 00000000..8e4765f8 > --- /dev/null > +++ b/lib/s390x/snippet.h > @@ -0,0 +1,34 @@ > +/* SPDX-License-Identifier: GPL-2.0-only */ > +/* > + * Snippet definitions > + * > + * Copyright IBM Corp. 2021 > + * Author: Janosch Frank <frankja@linux.ibm.com> > + */ > + > +#ifndef _S390X_SNIPPET_H_ > +#define _S390X_SNIPPET_H_ > + > +/* This macro cuts down the length of the pointers to snippets */ > +#define SNIPPET_NAME_START(type, file) \ > + _binary_s390x_snippets_##type##_##file##_gbin_start > +#define SNIPPET_NAME_END(type, file) \ > + _binary_s390x_snippets_##type##_##file##_gbin_end > + > +/* Returns the length of the snippet */ > +#define SNIPPET_LEN(type, file) \ > + ((uintptr_t)SNIPPET_NAME_END(type, file) - (uintptr_t)SNIPPET_NAME_START(type, file)) > + > +/* > + * C snippet instructions start at 0x4000 due to the prefix and the > + * stack being before that. ASM snippets don't strictly need a stack > + * but keeping the starting address the same means less code. > + */ > +#define SNIPPET_ENTRY_ADDR 0x4000 > + > +/* Standard entry PSWs for snippets which can simply be copied into the guest PSW */ > +static const struct psw snippet_psw = { > + .mask = PSW_MASK_64, > + .addr = SNIPPET_ENTRY_ADDR, > +}; > +#endif > diff --git a/s390x/mvpg-sie.c b/s390x/mvpg-sie.c > index 5adcec1e..d526069d 100644 > --- a/s390x/mvpg-sie.c > +++ b/s390x/mvpg-sie.c > @@ -19,6 +19,7 @@ > #include <vm.h> > #include <sclp.h> > #include <sie.h> > +#include <snippet.h> > > static u8 *guest; > static struct vm vm; > @@ -27,8 +28,8 @@ static uint8_t *src; > static uint8_t *dst; > static uint8_t *cmp; > > -extern const char _binary_s390x_snippets_c_mvpg_snippet_gbin_start[]; > -extern const char _binary_s390x_snippets_c_mvpg_snippet_gbin_end[]; > +extern const char SNIPPET_NAME_START(c, mvpg_snippet)[]; > +extern const char SNIPPET_NAME_END(c, mvpg_snippet)[]; > int binary_size; > > static void test_mvpg_pei(void) > @@ -77,10 +78,9 @@ static void test_mvpg_pei(void) > > static void test_mvpg(void) > { > - int binary_size = ((uintptr_t)_binary_s390x_snippets_c_mvpg_snippet_gbin_end - > - (uintptr_t)_binary_s390x_snippets_c_mvpg_snippet_gbin_start); > + int binary_size = SNIPPET_LEN(c, mvpg_snippet); > > - memcpy(guest, _binary_s390x_snippets_c_mvpg_snippet_gbin_start, binary_size); > + memcpy(guest, SNIPPET_NAME_START(c, mvpg_snippet), binary_size); > memset(src, 0x42, PAGE_SIZE); > memset(dst, 0x43, PAGE_SIZE); > sie(&vm); > @@ -96,8 +96,7 @@ static void setup_guest(void) > > sie_guest_create(&vm, (uint64_t)guest, HPAGE_SIZE); > > - vm.sblk->gpsw.addr = PAGE_SIZE * 4; > - vm.sblk->gpsw.mask = PSW_MASK_64; > + vm.sblk->gpsw = snippet_psw; > vm.sblk->ictl = ICTL_OPEREXC | ICTL_PINT; > /* Enable MVPG interpretation as we want to test KVM and not ourselves */ > vm.sblk->eca = ECA_MVPGI; ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [kvm-unit-tests PATCH v2 2/3] lib: s390x: snippet.h: Add a few constants that will make our life easier 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 2/3] lib: s390x: snippet.h: Add a few constants that will make our life easier Janosch Frank 2021-10-14 13:09 ` Claudio Imbrenda @ 2021-10-14 13:32 ` Thomas Huth 1 sibling, 0 replies; 7+ messages in thread From: Thomas Huth @ 2021-10-14 13:32 UTC (permalink / raw) To: Janosch Frank, kvm; +Cc: linux-s390, imbrenda, david, seiden On 14/10/2021 14.51, Janosch Frank wrote: > The variable names for the snippet objects are of gigantic length so > let's define a few macros to make them easier to read. > > Also add a standard PSW which should be used to start the snippet. > > Signed-off-by: Janosch Frank <frankja@linux.ibm.com> > --- > lib/s390x/snippet.h | 34 ++++++++++++++++++++++++++++++++++ > s390x/mvpg-sie.c | 13 ++++++------- > 2 files changed, 40 insertions(+), 7 deletions(-) > create mode 100644 lib/s390x/snippet.h Reviewed-by: Thomas Huth <thuth@redhat.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [kvm-unit-tests PATCH v2 3/3] lib: s390x: Fix copyright message 2021-10-14 12:51 [kvm-unit-tests PATCH v2 0/3] s390x: Cleanup and maintenance 3 Janosch Frank 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 1/3] lib: s390x: Fix PSW constant Janosch Frank 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 2/3] lib: s390x: snippet.h: Add a few constants that will make our life easier Janosch Frank @ 2021-10-14 12:51 ` Janosch Frank 2021-10-14 13:10 ` Claudio Imbrenda 2 siblings, 1 reply; 7+ messages in thread From: Janosch Frank @ 2021-10-14 12:51 UTC (permalink / raw) To: kvm; +Cc: linux-s390, imbrenda, david, thuth, seiden The comma makes no sense, so let's remove it. Signed-off-by: Janosch Frank <frankja@linux.ibm.com> --- lib/s390x/css.h | 2 +- lib/s390x/sclp.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/s390x/css.h b/lib/s390x/css.h index d644971f..0db8a281 100644 --- a/lib/s390x/css.h +++ b/lib/s390x/css.h @@ -2,7 +2,7 @@ /* * CSS definitions * - * Copyright IBM, Corp. 2020 + * Copyright IBM Corp. 2020 * Author: Pierre Morel <pmorel@linux.ibm.com> */ diff --git a/lib/s390x/sclp.h b/lib/s390x/sclp.h index 28e526e2..61e9cf51 100644 --- a/lib/s390x/sclp.h +++ b/lib/s390x/sclp.h @@ -6,7 +6,7 @@ * Copyright (c) 2013 Alexander Graf <agraf@suse.de> * * and based on the file include/hw/s390x/sclp.h from QEMU - * Copyright IBM, Corp. 2012 + * Copyright IBM Corp. 2012 * Author: Christian Borntraeger <borntraeger@de.ibm.com> */ -- 2.30.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [kvm-unit-tests PATCH v2 3/3] lib: s390x: Fix copyright message 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 3/3] lib: s390x: Fix copyright message Janosch Frank @ 2021-10-14 13:10 ` Claudio Imbrenda 0 siblings, 0 replies; 7+ messages in thread From: Claudio Imbrenda @ 2021-10-14 13:10 UTC (permalink / raw) To: Janosch Frank; +Cc: kvm, linux-s390, david, thuth, seiden On Thu, 14 Oct 2021 12:51:07 +0000 Janosch Frank <frankja@linux.ibm.com> wrote: > The comma makes no sense, so let's remove it. > > Signed-off-by: Janosch Frank <frankja@linux.ibm.com> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> > --- > lib/s390x/css.h | 2 +- > lib/s390x/sclp.h | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/lib/s390x/css.h b/lib/s390x/css.h > index d644971f..0db8a281 100644 > --- a/lib/s390x/css.h > +++ b/lib/s390x/css.h > @@ -2,7 +2,7 @@ > /* > * CSS definitions > * > - * Copyright IBM, Corp. 2020 > + * Copyright IBM Corp. 2020 > * Author: Pierre Morel <pmorel@linux.ibm.com> > */ > > diff --git a/lib/s390x/sclp.h b/lib/s390x/sclp.h > index 28e526e2..61e9cf51 100644 > --- a/lib/s390x/sclp.h > +++ b/lib/s390x/sclp.h > @@ -6,7 +6,7 @@ > * Copyright (c) 2013 Alexander Graf <agraf@suse.de> > * > * and based on the file include/hw/s390x/sclp.h from QEMU > - * Copyright IBM, Corp. 2012 > + * Copyright IBM Corp. 2012 > * Author: Christian Borntraeger <borntraeger@de.ibm.com> > */ > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-10-14 13:32 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-10-14 12:51 [kvm-unit-tests PATCH v2 0/3] s390x: Cleanup and maintenance 3 Janosch Frank 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 1/3] lib: s390x: Fix PSW constant Janosch Frank 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 2/3] lib: s390x: snippet.h: Add a few constants that will make our life easier Janosch Frank 2021-10-14 13:09 ` Claudio Imbrenda 2021-10-14 13:32 ` Thomas Huth 2021-10-14 12:51 ` [kvm-unit-tests PATCH v2 3/3] lib: s390x: Fix copyright message Janosch Frank 2021-10-14 13:10 ` Claudio Imbrenda
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox