* [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 @ 2018-07-31 9:04 Christian Borntraeger 2018-07-31 9:04 ` [Qemu-devel] [PATCH 1/2] header sync Christian Borntraeger ` (2 more replies) 0 siblings, 3 replies; 12+ messages in thread From: Christian Borntraeger @ 2018-07-31 9:04 UTC (permalink / raw) To: Cornelia Huck Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank, Christian Borntraeger this depends on the current kvms390/next kernel tree. Christian Borntraeger (2): header sync s390x/kvm: add etoken facility linux-headers/asm-s390/kvm.h | 5 ++++- target/s390x/cpu.h | 3 +++ target/s390x/cpu_features.c | 3 ++- target/s390x/cpu_features_def.h | 3 ++- target/s390x/gen-features.c | 3 ++- target/s390x/kvm.c | 11 +++++++++++ target/s390x/machine.c | 20 +++++++++++++++++++- 7 files changed, 43 insertions(+), 5 deletions(-) -- 2.17.0 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH 1/2] header sync 2018-07-31 9:04 [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 Christian Borntraeger @ 2018-07-31 9:04 ` Christian Borntraeger 2018-07-31 9:04 ` [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility Christian Borntraeger 2018-07-31 11:29 ` [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 Cornelia Huck 2 siblings, 0 replies; 12+ messages in thread From: Christian Borntraeger @ 2018-07-31 9:04 UTC (permalink / raw) To: Cornelia Huck Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank, Christian Borntraeger -> place holder for proper header sync. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> --- linux-headers/asm-s390/kvm.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h index 11def14301..1ab9901911 100644 --- a/linux-headers/asm-s390/kvm.h +++ b/linux-headers/asm-s390/kvm.h @@ -4,7 +4,7 @@ /* * KVM s390 specific structures and definitions * - * Copyright IBM Corp. 2008 + * Copyright IBM Corp. 2008, 2018 * * Author(s): Carsten Otte <cotte@de.ibm.com> * Christian Borntraeger <borntraeger@de.ibm.com> @@ -225,6 +225,7 @@ struct kvm_guest_debug_arch { #define KVM_SYNC_FPRS (1UL << 8) #define KVM_SYNC_GSCB (1UL << 9) #define KVM_SYNC_BPBC (1UL << 10) +#define KVM_SYNC_ETOKEN (1UL << 11) /* length and alignment of the sdnx as a power of two */ #define SDNXC 8 #define SDNXL (1UL << SDNXC) @@ -258,6 +259,8 @@ struct kvm_sync_regs { struct { __u64 reserved1[2]; __u64 gscb[4]; + __u64 etoken; + __u64 etoken_extension; }; }; }; -- 2.17.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility 2018-07-31 9:04 [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 Christian Borntraeger 2018-07-31 9:04 ` [Qemu-devel] [PATCH 1/2] header sync Christian Borntraeger @ 2018-07-31 9:04 ` Christian Borntraeger 2018-07-31 9:37 ` Cornelia Huck ` (2 more replies) 2018-07-31 11:29 ` [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 Cornelia Huck 2 siblings, 3 replies; 12+ messages in thread From: Christian Borntraeger @ 2018-07-31 9:04 UTC (permalink / raw) To: Cornelia Huck Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank, Christian Borntraeger Provide the etoken facility. We need to handle cpu model, migration and clear reset. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Janosch Frank <frankja@linux.ibm.com> --- target/s390x/cpu.h | 3 +++ target/s390x/cpu_features.c | 3 ++- target/s390x/cpu_features_def.h | 3 ++- target/s390x/gen-features.c | 3 ++- target/s390x/kvm.c | 11 +++++++++++ target/s390x/machine.c | 20 +++++++++++++++++++- 6 files changed, 39 insertions(+), 4 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 2c3dd2d189..21b2f211fe 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -2,6 +2,7 @@ * S/390 virtual CPU header * * Copyright (c) 2009 Ulrich Hecht + * Copyright IBM Corp. 2012, 2018 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -68,6 +69,8 @@ struct CPUS390XState { uint32_t aregs[16]; /* access registers */ uint8_t riccb[64]; /* runtime instrumentation control */ uint64_t gscb[4]; /* guarded storage control */ + uint64_t etoken; /* etoken */ + uint64_t etoken_extension; /* etoken extension */ /* Fields up to this point are not cleared by initial CPU reset */ struct {} start_initial_reset_fields; diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c index 3b9e2745e9..397960f278 100644 --- a/target/s390x/cpu_features.c +++ b/target/s390x/cpu_features.c @@ -1,7 +1,7 @@ /* * CPU features/facilities for s390x * - * Copyright 2016 IBM Corp. + * Copyright IBM Corp. 2016, 2018 * * Author(s): David Hildenbrand <dahi@linux.vnet.ibm.com> * @@ -106,6 +106,7 @@ static const S390FeatDef s390_features[] = { FEAT_INIT("irbm", S390_FEAT_TYPE_STFL, 145, "Insert-reference-bits-multiple facility"), FEAT_INIT("msa8-base", S390_FEAT_TYPE_STFL, 146, "Message-security-assist-extension-8 facility (excluding subfunctions)"), FEAT_INIT("cmmnt", S390_FEAT_TYPE_STFL, 147, "CMM: ESSA-enhancement (no translate) facility"), + FEAT_INIT("etoken", S390_FEAT_TYPE_STFL, 156, "etoken facility"), /* SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */ FEAT_INIT("gsls", S390_FEAT_TYPE_SCLP_CONF_CHAR, 40, "SIE: Guest-storage-limit-suppression facility"), diff --git a/target/s390x/cpu_features_def.h b/target/s390x/cpu_features_def.h index 7c5915c7b2..ac2c947f30 100644 --- a/target/s390x/cpu_features_def.h +++ b/target/s390x/cpu_features_def.h @@ -1,7 +1,7 @@ /* * CPU features/facilities for s390 * - * Copyright 2016 IBM Corp. + * Copyright IBM Corp. 2016, 2018 * * Author(s): Michael Mueller <mimu@linux.vnet.ibm.com> * David Hildenbrand <dahi@linux.vnet.ibm.com> @@ -93,6 +93,7 @@ typedef enum { S390_FEAT_INSERT_REFERENCE_BITS_MULT, S390_FEAT_MSA_EXT_8, S390_FEAT_CMM_NT, + S390_FEAT_ETOKEN, /* Sclp Conf Char */ S390_FEAT_SIE_GSLS, diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c index 6626b6f565..5af042c003 100644 --- a/target/s390x/gen-features.c +++ b/target/s390x/gen-features.c @@ -1,7 +1,7 @@ /* * S390 feature list generator * - * Copyright 2016 IBM Corp. + * Copyright IBM Corp. 2016, 2018 * * Author(s): Michael Mueller <mimu@linux.vnet.ibm.com> * David Hildenbrand <dahi@linux.vnet.ibm.com> @@ -471,6 +471,7 @@ static uint16_t full_GEN14_GA1[] = { S390_FEAT_GROUP_MSA_EXT_7, S390_FEAT_GROUP_MSA_EXT_8, S390_FEAT_CMM_NT, + S390_FEAT_ETOKEN, S390_FEAT_HPMA2, S390_FEAT_SIE_KSS, S390_FEAT_GROUP_MULTIPLE_EPOCH_PTFF, diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index d923cf4240..af83955e5f 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -493,6 +493,12 @@ int kvm_arch_put_registers(CPUState *cs, int level) cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_BPBC; } + if (can_sync_regs(cs, KVM_SYNC_ETOKEN)) { + cs->kvm_run->s.regs.etoken = env->etoken; + cs->kvm_run->s.regs.etoken_extension = env->etoken_extension; + cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_ETOKEN; + } + /* Finally the prefix */ if (can_sync_regs(cs, KVM_SYNC_PREFIX)) { cs->kvm_run->s.regs.prefix = env->psa; @@ -607,6 +613,11 @@ int kvm_arch_get_registers(CPUState *cs) env->bpbc = cs->kvm_run->s.regs.bpbc; } + if (can_sync_regs(cs, KVM_SYNC_ETOKEN)) { + env->etoken = cs->kvm_run->s.regs.etoken; + env->etoken_extension = cs->kvm_run->s.regs.etoken_extension; + } + /* pfault parameters */ if (can_sync_regs(cs, KVM_SYNC_PFAULT)) { env->pfault_token = cs->kvm_run->s.regs.pft; diff --git a/target/s390x/machine.c b/target/s390x/machine.c index bd3230d027..cb792aa103 100644 --- a/target/s390x/machine.c +++ b/target/s390x/machine.c @@ -1,7 +1,7 @@ /* * S390x machine definitions and functions * - * Copyright IBM Corp. 2014 + * Copyright IBM Corp. 2014, 2018 * * Authors: * Thomas Huth <thuth@linux.vnet.ibm.com> @@ -216,6 +216,23 @@ const VMStateDescription vmstate_bpbc = { } }; +static bool etoken_needed(void *opaque) +{ + return s390_has_feat(S390_FEAT_ETOKEN); +} + +const VMStateDescription vmstate_etoken = { + .name = "cpu/etoken", + .version_id = 1, + .minimum_version_id = 1, + .needed = etoken_needed, + .fields = (VMStateField[]) { + VMSTATE_UINT64(env.etoken, S390CPU), + VMSTATE_UINT64(env.etoken_extension, S390CPU), + VMSTATE_END_OF_LIST() + } +}; + const VMStateDescription vmstate_s390_cpu = { .name = "cpu", .post_load = cpu_post_load, @@ -251,6 +268,7 @@ const VMStateDescription vmstate_s390_cpu = { &vmstate_exval, &vmstate_gscb, &vmstate_bpbc, + &vmstate_etoken, NULL }, }; -- 2.17.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility 2018-07-31 9:04 ` [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility Christian Borntraeger @ 2018-07-31 9:37 ` Cornelia Huck 2018-07-31 10:17 ` Christian Borntraeger 2018-07-31 9:44 ` Cornelia Huck 2018-07-31 10:59 ` David Hildenbrand 2 siblings, 1 reply; 12+ messages in thread From: Cornelia Huck @ 2018-07-31 9:37 UTC (permalink / raw) To: Christian Borntraeger Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank On Tue, 31 Jul 2018 11:04:48 +0200 Christian Borntraeger <borntraeger@de.ibm.com> wrote: > Provide the etoken facility. We need to handle cpu model, migration and > clear reset. > > Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> > Acked-by: Janosch Frank <frankja@linux.ibm.com> > --- > target/s390x/cpu.h | 3 +++ > target/s390x/cpu_features.c | 3 ++- > target/s390x/cpu_features_def.h | 3 ++- > target/s390x/gen-features.c | 3 ++- > target/s390x/kvm.c | 11 +++++++++++ > target/s390x/machine.c | 20 +++++++++++++++++++- > 6 files changed, 39 insertions(+), 4 deletions(-) > @@ -106,6 +106,7 @@ static const S390FeatDef s390_features[] = { > FEAT_INIT("irbm", S390_FEAT_TYPE_STFL, 145, "Insert-reference-bits-multiple facility"), > FEAT_INIT("msa8-base", S390_FEAT_TYPE_STFL, 146, "Message-security-assist-extension-8 facility (excluding subfunctions)"), > FEAT_INIT("cmmnt", S390_FEAT_TYPE_STFL, 147, "CMM: ESSA-enhancement (no translate) facility"), > + FEAT_INIT("etoken", S390_FEAT_TYPE_STFL, 156, "etoken facility"), Don't facilities usually start with a capital letter? > > /* SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */ > FEAT_INIT("gsls", S390_FEAT_TYPE_SCLP_CONF_CHAR, 40, "SIE: Guest-storage-limit-suppression facility"), ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility 2018-07-31 9:37 ` Cornelia Huck @ 2018-07-31 10:17 ` Christian Borntraeger 0 siblings, 0 replies; 12+ messages in thread From: Christian Borntraeger @ 2018-07-31 10:17 UTC (permalink / raw) To: Cornelia Huck Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank On 07/31/2018 11:37 AM, Cornelia Huck wrote: > On Tue, 31 Jul 2018 11:04:48 +0200 > Christian Borntraeger <borntraeger@de.ibm.com> wrote: > >> Provide the etoken facility. We need to handle cpu model, migration and >> clear reset. >> >> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> >> Acked-by: Janosch Frank <frankja@linux.ibm.com> >> --- >> target/s390x/cpu.h | 3 +++ >> target/s390x/cpu_features.c | 3 ++- >> target/s390x/cpu_features_def.h | 3 ++- >> target/s390x/gen-features.c | 3 ++- >> target/s390x/kvm.c | 11 +++++++++++ >> target/s390x/machine.c | 20 +++++++++++++++++++- >> 6 files changed, 39 insertions(+), 4 deletions(-) > >> @@ -106,6 +106,7 @@ static const S390FeatDef s390_features[] = { >> FEAT_INIT("irbm", S390_FEAT_TYPE_STFL, 145, "Insert-reference-bits-multiple facility"), >> FEAT_INIT("msa8-base", S390_FEAT_TYPE_STFL, 146, "Message-security-assist-extension-8 facility (excluding subfunctions)"), >> FEAT_INIT("cmmnt", S390_FEAT_TYPE_STFL, 147, "CMM: ESSA-enhancement (no translate) facility"), >> + FEAT_INIT("etoken", S390_FEAT_TYPE_STFL, 156, "etoken facility"), > > Don't facilities usually start with a capital letter? Yes, we should make it Etoken. > >> >> /* SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */ >> FEAT_INIT("gsls", S390_FEAT_TYPE_SCLP_CONF_CHAR, 40, "SIE: Guest-storage-limit-suppression facility"), > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility 2018-07-31 9:04 ` [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility Christian Borntraeger 2018-07-31 9:37 ` Cornelia Huck @ 2018-07-31 9:44 ` Cornelia Huck 2018-07-31 10:14 ` Christian Borntraeger 2018-07-31 10:59 ` David Hildenbrand 2 siblings, 1 reply; 12+ messages in thread From: Cornelia Huck @ 2018-07-31 9:44 UTC (permalink / raw) To: Christian Borntraeger Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank On Tue, 31 Jul 2018 11:04:48 +0200 Christian Borntraeger <borntraeger@de.ibm.com> wrote: > Provide the etoken facility. We need to handle cpu model, migration and > clear reset. ^^^^^^^^^^^ Hm, anything special for that? I don't see it in the patch. > > Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> > Acked-by: Janosch Frank <frankja@linux.ibm.com> > --- > target/s390x/cpu.h | 3 +++ > target/s390x/cpu_features.c | 3 ++- > target/s390x/cpu_features_def.h | 3 ++- > target/s390x/gen-features.c | 3 ++- > target/s390x/kvm.c | 11 +++++++++++ > target/s390x/machine.c | 20 +++++++++++++++++++- > 6 files changed, 39 insertions(+), 4 deletions(-) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility 2018-07-31 9:44 ` Cornelia Huck @ 2018-07-31 10:14 ` Christian Borntraeger 2018-07-31 10:49 ` Cornelia Huck 0 siblings, 1 reply; 12+ messages in thread From: Christian Borntraeger @ 2018-07-31 10:14 UTC (permalink / raw) To: Cornelia Huck Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank On 07/31/2018 11:44 AM, Cornelia Huck wrote: > On Tue, 31 Jul 2018 11:04:48 +0200 > Christian Borntraeger <borntraeger@de.ibm.com> wrote: > >> Provide the etoken facility. We need to handle cpu model, migration and >> clear reset. > ^^^^^^^^^^^ Clear reset is the "strong one". Here we do a memset of the env structure. So this should be cleared along with the other registers. > > Hm, anything special for that? I don't see it in the patch. > >> >> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> >> Acked-by: Janosch Frank <frankja@linux.ibm.com> >> --- >> target/s390x/cpu.h | 3 +++ >> target/s390x/cpu_features.c | 3 ++- >> target/s390x/cpu_features_def.h | 3 ++- >> target/s390x/gen-features.c | 3 ++- >> target/s390x/kvm.c | 11 +++++++++++ >> target/s390x/machine.c | 20 +++++++++++++++++++- >> 6 files changed, 39 insertions(+), 4 deletions(-) > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility 2018-07-31 10:14 ` Christian Borntraeger @ 2018-07-31 10:49 ` Cornelia Huck 0 siblings, 0 replies; 12+ messages in thread From: Cornelia Huck @ 2018-07-31 10:49 UTC (permalink / raw) To: Christian Borntraeger Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank On Tue, 31 Jul 2018 12:14:28 +0200 Christian Borntraeger <borntraeger@de.ibm.com> wrote: > On 07/31/2018 11:44 AM, Cornelia Huck wrote: > > On Tue, 31 Jul 2018 11:04:48 +0200 > > Christian Borntraeger <borntraeger@de.ibm.com> wrote: > > > >> Provide the etoken facility. We need to handle cpu model, migration and > >> clear reset. > > ^^^^^^^^^^^ > > Clear reset is the "strong one". Here we do a memset of the env structure. > So this should be cleared along with the other registers. I was confused why it was singled out... > > > > Hm, anything special for that? I don't see it in the patch. > > > >> > >> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> > >> Acked-by: Janosch Frank <frankja@linux.ibm.com> > >> --- > >> target/s390x/cpu.h | 3 +++ > >> target/s390x/cpu_features.c | 3 ++- > >> target/s390x/cpu_features_def.h | 3 ++- > >> target/s390x/gen-features.c | 3 ++- > >> target/s390x/kvm.c | 11 +++++++++++ > >> target/s390x/machine.c | 20 +++++++++++++++++++- > >> 6 files changed, 39 insertions(+), 4 deletions(-) > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility 2018-07-31 9:04 ` [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility Christian Borntraeger 2018-07-31 9:37 ` Cornelia Huck 2018-07-31 9:44 ` Cornelia Huck @ 2018-07-31 10:59 ` David Hildenbrand 2 siblings, 0 replies; 12+ messages in thread From: David Hildenbrand @ 2018-07-31 10:59 UTC (permalink / raw) To: Christian Borntraeger, Cornelia Huck Cc: qemu-devel, qemu-s390x, Alexander Graf, Richard Henderson, Janosch Frank On 31.07.2018 11:04, Christian Borntraeger wrote: > Provide the etoken facility. We need to handle cpu model, migration and > clear reset. > > Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> > Acked-by: Janosch Frank <frankja@linux.ibm.com> > --- > target/s390x/cpu.h | 3 +++ > target/s390x/cpu_features.c | 3 ++- > target/s390x/cpu_features_def.h | 3 ++- > target/s390x/gen-features.c | 3 ++- > target/s390x/kvm.c | 11 +++++++++++ > target/s390x/machine.c | 20 +++++++++++++++++++- > 6 files changed, 39 insertions(+), 4 deletions(-) > > diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h > index 2c3dd2d189..21b2f211fe 100644 > --- a/target/s390x/cpu.h > +++ b/target/s390x/cpu.h > @@ -2,6 +2,7 @@ > * S/390 virtual CPU header > * > * Copyright (c) 2009 Ulrich Hecht > + * Copyright IBM Corp. 2012, 2018 > * > * This library is free software; you can redistribute it and/or > * modify it under the terms of the GNU Lesser General Public > @@ -68,6 +69,8 @@ struct CPUS390XState { > uint32_t aregs[16]; /* access registers */ > uint8_t riccb[64]; /* runtime instrumentation control */ > uint64_t gscb[4]; /* guarded storage control */ > + uint64_t etoken; /* etoken */ > + uint64_t etoken_extension; /* etoken extension */ > > /* Fields up to this point are not cleared by initial CPU reset */ > struct {} start_initial_reset_fields; > diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c > index 3b9e2745e9..397960f278 100644 > --- a/target/s390x/cpu_features.c > +++ b/target/s390x/cpu_features.c > @@ -1,7 +1,7 @@ > /* > * CPU features/facilities for s390x > * > - * Copyright 2016 IBM Corp. > + * Copyright IBM Corp. 2016, 2018 > * > * Author(s): David Hildenbrand <dahi@linux.vnet.ibm.com> > * > @@ -106,6 +106,7 @@ static const S390FeatDef s390_features[] = { > FEAT_INIT("irbm", S390_FEAT_TYPE_STFL, 145, "Insert-reference-bits-multiple facility"), > FEAT_INIT("msa8-base", S390_FEAT_TYPE_STFL, 146, "Message-security-assist-extension-8 facility (excluding subfunctions)"), > FEAT_INIT("cmmnt", S390_FEAT_TYPE_STFL, 147, "CMM: ESSA-enhancement (no translate) facility"), > + FEAT_INIT("etoken", S390_FEAT_TYPE_STFL, 156, "etoken facility"), > > /* SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */ > FEAT_INIT("gsls", S390_FEAT_TYPE_SCLP_CONF_CHAR, 40, "SIE: Guest-storage-limit-suppression facility"), > diff --git a/target/s390x/cpu_features_def.h b/target/s390x/cpu_features_def.h > index 7c5915c7b2..ac2c947f30 100644 > --- a/target/s390x/cpu_features_def.h > +++ b/target/s390x/cpu_features_def.h > @@ -1,7 +1,7 @@ > /* > * CPU features/facilities for s390 > * > - * Copyright 2016 IBM Corp. > + * Copyright IBM Corp. 2016, 2018 > * > * Author(s): Michael Mueller <mimu@linux.vnet.ibm.com> > * David Hildenbrand <dahi@linux.vnet.ibm.com> > @@ -93,6 +93,7 @@ typedef enum { > S390_FEAT_INSERT_REFERENCE_BITS_MULT, > S390_FEAT_MSA_EXT_8, > S390_FEAT_CMM_NT, > + S390_FEAT_ETOKEN, > > /* Sclp Conf Char */ > S390_FEAT_SIE_GSLS, > diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c > index 6626b6f565..5af042c003 100644 > --- a/target/s390x/gen-features.c > +++ b/target/s390x/gen-features.c > @@ -1,7 +1,7 @@ > /* > * S390 feature list generator > * > - * Copyright 2016 IBM Corp. > + * Copyright IBM Corp. 2016, 2018 > * > * Author(s): Michael Mueller <mimu@linux.vnet.ibm.com> > * David Hildenbrand <dahi@linux.vnet.ibm.com> > @@ -471,6 +471,7 @@ static uint16_t full_GEN14_GA1[] = { > S390_FEAT_GROUP_MSA_EXT_7, > S390_FEAT_GROUP_MSA_EXT_8, > S390_FEAT_CMM_NT, > + S390_FEAT_ETOKEN, > S390_FEAT_HPMA2, > S390_FEAT_SIE_KSS, > S390_FEAT_GROUP_MULTIPLE_EPOCH_PTFF, > diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c > index d923cf4240..af83955e5f 100644 > --- a/target/s390x/kvm.c > +++ b/target/s390x/kvm.c > @@ -493,6 +493,12 @@ int kvm_arch_put_registers(CPUState *cs, int level) > cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_BPBC; > } > > + if (can_sync_regs(cs, KVM_SYNC_ETOKEN)) { > + cs->kvm_run->s.regs.etoken = env->etoken; > + cs->kvm_run->s.regs.etoken_extension = env->etoken_extension; > + cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_ETOKEN; > + } > + > /* Finally the prefix */ > if (can_sync_regs(cs, KVM_SYNC_PREFIX)) { > cs->kvm_run->s.regs.prefix = env->psa; > @@ -607,6 +613,11 @@ int kvm_arch_get_registers(CPUState *cs) > env->bpbc = cs->kvm_run->s.regs.bpbc; > } > > + if (can_sync_regs(cs, KVM_SYNC_ETOKEN)) { > + env->etoken = cs->kvm_run->s.regs.etoken; > + env->etoken_extension = cs->kvm_run->s.regs.etoken_extension; > + } > + > /* pfault parameters */ > if (can_sync_regs(cs, KVM_SYNC_PFAULT)) { > env->pfault_token = cs->kvm_run->s.regs.pft; > diff --git a/target/s390x/machine.c b/target/s390x/machine.c > index bd3230d027..cb792aa103 100644 > --- a/target/s390x/machine.c > +++ b/target/s390x/machine.c > @@ -1,7 +1,7 @@ > /* > * S390x machine definitions and functions > * > - * Copyright IBM Corp. 2014 > + * Copyright IBM Corp. 2014, 2018 > * > * Authors: > * Thomas Huth <thuth@linux.vnet.ibm.com> > @@ -216,6 +216,23 @@ const VMStateDescription vmstate_bpbc = { > } > }; > > +static bool etoken_needed(void *opaque) > +{ > + return s390_has_feat(S390_FEAT_ETOKEN); > +} > + > +const VMStateDescription vmstate_etoken = { > + .name = "cpu/etoken", > + .version_id = 1, > + .minimum_version_id = 1, > + .needed = etoken_needed, > + .fields = (VMStateField[]) { > + VMSTATE_UINT64(env.etoken, S390CPU), > + VMSTATE_UINT64(env.etoken_extension, S390CPU), > + VMSTATE_END_OF_LIST() > + } > +}; > + > const VMStateDescription vmstate_s390_cpu = { > .name = "cpu", > .post_load = cpu_post_load, > @@ -251,6 +268,7 @@ const VMStateDescription vmstate_s390_cpu = { > &vmstate_exval, > &vmstate_gscb, > &vmstate_bpbc, > + &vmstate_etoken, > NULL > }, > }; > Apart from the capital letter, this looks good to me! Reviewed-by: David Hildenbrand <david@redhat.com> -- Thanks, David / dhildenb ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 2018-07-31 9:04 [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 Christian Borntraeger 2018-07-31 9:04 ` [Qemu-devel] [PATCH 1/2] header sync Christian Borntraeger 2018-07-31 9:04 ` [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility Christian Borntraeger @ 2018-07-31 11:29 ` Cornelia Huck 2018-07-31 11:42 ` Christian Borntraeger 2018-08-20 9:01 ` Cornelia Huck 2 siblings, 2 replies; 12+ messages in thread From: Cornelia Huck @ 2018-07-31 11:29 UTC (permalink / raw) To: Christian Borntraeger Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank On Tue, 31 Jul 2018 11:04:46 +0200 Christian Borntraeger <borntraeger@de.ibm.com> wrote: > this depends on the current kvms390/next kernel tree. > > Christian Borntraeger (2): > header sync > s390x/kvm: add etoken facility > > linux-headers/asm-s390/kvm.h | 5 ++++- > target/s390x/cpu.h | 3 +++ > target/s390x/cpu_features.c | 3 ++- > target/s390x/cpu_features_def.h | 3 ++- > target/s390x/gen-features.c | 3 ++- > target/s390x/kvm.c | 11 +++++++++++ > target/s390x/machine.c | 20 +++++++++++++++++++- > 7 files changed, 43 insertions(+), 5 deletions(-) > I can merge this (with a capital E in the feature name and a real headers update) once the kernel headers update hits Linux master. Please ping me if I forget :) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 2018-07-31 11:29 ` [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 Cornelia Huck @ 2018-07-31 11:42 ` Christian Borntraeger 2018-08-20 9:01 ` Cornelia Huck 1 sibling, 0 replies; 12+ messages in thread From: Christian Borntraeger @ 2018-07-31 11:42 UTC (permalink / raw) To: Cornelia Huck Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank On 07/31/2018 01:29 PM, Cornelia Huck wrote: > On Tue, 31 Jul 2018 11:04:46 +0200 > Christian Borntraeger <borntraeger@de.ibm.com> wrote: > >> this depends on the current kvms390/next kernel tree. >> >> Christian Borntraeger (2): >> header sync >> s390x/kvm: add etoken facility >> >> linux-headers/asm-s390/kvm.h | 5 ++++- >> target/s390x/cpu.h | 3 +++ >> target/s390x/cpu_features.c | 3 ++- >> target/s390x/cpu_features_def.h | 3 ++- >> target/s390x/gen-features.c | 3 ++- >> target/s390x/kvm.c | 11 +++++++++++ >> target/s390x/machine.c | 20 +++++++++++++++++++- >> 7 files changed, 43 insertions(+), 5 deletions(-) >> > > I can merge this (with a capital E in the feature name and a real > headers update) once the kernel headers update hits Linux master. > Please ping me if I forget :) Thanks, will do. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 2018-07-31 11:29 ` [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 Cornelia Huck 2018-07-31 11:42 ` Christian Borntraeger @ 2018-08-20 9:01 ` Cornelia Huck 1 sibling, 0 replies; 12+ messages in thread From: Cornelia Huck @ 2018-08-20 9:01 UTC (permalink / raw) To: Christian Borntraeger Cc: qemu-devel, qemu-s390x, David Hildenbrand, Alexander Graf, Richard Henderson, Janosch Frank On Tue, 31 Jul 2018 13:29:30 +0200 Cornelia Huck <cohuck@redhat.com> wrote: > On Tue, 31 Jul 2018 11:04:46 +0200 > Christian Borntraeger <borntraeger@de.ibm.com> wrote: > > > this depends on the current kvms390/next kernel tree. > > > > Christian Borntraeger (2): > > header sync > > s390x/kvm: add etoken facility > > > > linux-headers/asm-s390/kvm.h | 5 ++++- > > target/s390x/cpu.h | 3 +++ > > target/s390x/cpu_features.c | 3 ++- > > target/s390x/cpu_features_def.h | 3 ++- > > target/s390x/gen-features.c | 3 ++- > > target/s390x/kvm.c | 11 +++++++++++ > > target/s390x/machine.c | 20 +++++++++++++++++++- > > 7 files changed, 43 insertions(+), 5 deletions(-) > > > > I can merge this (with a capital E in the feature name and a real > headers update) once the kernel headers update hits Linux master. > Please ping me if I forget :) I did not forget; in fact, I just pushed it out to s390-next :) Thanks, applied. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2018-08-20 9:01 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-07-31 9:04 [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 Christian Borntraeger 2018-07-31 9:04 ` [Qemu-devel] [PATCH 1/2] header sync Christian Borntraeger 2018-07-31 9:04 ` [Qemu-devel] [PATCH 2/2] s390x/kvm: add etoken facility Christian Borntraeger 2018-07-31 9:37 ` Cornelia Huck 2018-07-31 10:17 ` Christian Borntraeger 2018-07-31 9:44 ` Cornelia Huck 2018-07-31 10:14 ` Christian Borntraeger 2018-07-31 10:49 ` Cornelia Huck 2018-07-31 10:59 ` David Hildenbrand 2018-07-31 11:29 ` [Qemu-devel] [PATCH 0/2] etoken patch for 3.1 Cornelia Huck 2018-07-31 11:42 ` Christian Borntraeger 2018-08-20 9:01 ` Cornelia Huck
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.