On 20.02.20 13:56, Janosch Frank wrote: > From: Christian Borntraeger <borntrae...@de.ibm.com> >
Needs some love. What does the facility unlock/allow. Why can we enable it now. What's in place, what's missing. > Signed-off-by: Christian Borntraeger <borntrae...@de.ibm.com> > --- > target/s390x/gen-features.c | 1 + > target/s390x/kvm.c | 7 +++++++ > 2 files changed, 8 insertions(+) > > diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c > index 6278845b12..8ddeebc544 100644 > --- a/target/s390x/gen-features.c > +++ b/target/s390x/gen-features.c > @@ -562,6 +562,7 @@ static uint16_t full_GEN15_GA1[] = { > S390_FEAT_GROUP_MSA_EXT_9, > S390_FEAT_GROUP_MSA_EXT_9_PCKMO, > S390_FEAT_ETOKEN, > + S390_FEAT_UNPACK, > }; > > /* Default features (in order of release) > diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c > index 31dd49729b..5b6a7ca466 100644 > --- a/target/s390x/kvm.c > +++ b/target/s390x/kvm.c > @@ -154,6 +154,7 @@ static int cap_ri; > static int cap_gs; > static int cap_hpage_1m; > static int cap_vcpu_resets; > +static int cap_protected; > > static int active_cmma; > > @@ -346,6 +347,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) > cap_mem_op = kvm_check_extension(s, KVM_CAP_S390_MEM_OP); > cap_s390_irq = kvm_check_extension(s, KVM_CAP_S390_INJECT_IRQ); > cap_vcpu_resets = kvm_check_extension(s, KVM_CAP_S390_VCPU_RESETS); > + cap_protected = kvm_check_extension(s, KVM_CAP_S390_PROTECTED); > > if (!kvm_check_extension(s, KVM_CAP_S390_GMAP) > || !kvm_check_extension(s, KVM_CAP_S390_COW)) { > @@ -2394,6 +2396,11 @@ void kvm_s390_get_host_cpu_model(S390CPUModel *model, > Error **errp) > clear_bit(S390_FEAT_BPB, model->features); > } > > + /* we do have the IPL enhancements */ > + if (cap_protected) { > + set_bit(S390_FEAT_UNPACK, model->features); > + } > + > /* We emulate a zPCI bus and AEN, therefore we don't need HW support */ > set_bit(S390_FEAT_ZPCI, model->features); > set_bit(S390_FEAT_ADAPTER_EVENT_NOTIFICATION, model->features); > In general, LGTM. -- Thanks, David / dhildenb