On 09/26/2017 03:43 PM, David Hildenbrand wrote: > >> + /* try enable the AIS facility */ >> + test_attr.group = KVM_DEV_FLIC_AISM_ALL; >> + if (!ioctl(flic_state->fd, KVM_HAS_DEVICE_ATTR, test_attr)) { >> + kvm_vm_enable_cap(kvm_state, KVM_CAP_S390_AIS, 0); >> + } >> + >> return; >> fail: >> error_propagate(errp, errp_local); >> @@ -578,7 +584,7 @@ static void kvm_s390_flic_reset(DeviceState *dev) >> >> flic_disable_wait_pfault(flic); >> >> - if (fs->ais_supported) { >> + if (s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION)) { > > I don't remember if a reset is trigger on realization. Most probably > not, but it could be. > > Would it hurt if the following code would not get called if the flic > hasn't been used yet? (possible reset before cpu model has been > initialized) - are kvm_s390_modify_ais_mode() calls required before ais > can be used for the first time?
Hmm, simm/nimm should default to zero in the kernel I guess. So I think it would not hurt. Yi Min, correct? Anyway it seems that reset is NOT called during realize, the first call is #0 0x00000000010e5178 kvm_s390_flic_reset (qemu-system-s390x) #1 0x000000000124bbc4 device_reset (qemu-system-s390x) #2 0x0000000001248cd0 qdev_reset_one (qemu-system-s390x) #3 0x0000000001249ea4 qdev_walk_children (qemu-system-s390x) #4 0x000000000124fd3a qbus_walk_children (qemu-system-s390x) #5 0x0000000001248e6c qbus_reset_all (qemu-system-s390x) #6 0x0000000001248eae qbus_reset_all_fn (qemu-system-s390x) #7 0x0000000001250a60 qemu_devices_reset (qemu-system-s390x) #8 0x0000000001143c80 s390_machine_reset (qemu-system-s390x) #9 0x00000000011c5b72 qemu_system_reset (qemu-system-s390x) #10 0x00000000011ceb8e main (qemu-system-s390x) #11 0x000003ff947a289a __libc_start_main (libc.so.6) #12 0x0000000001017646 _start (qemu-system-s390x)