On 11/05/2018 04:14 PM, Michael Mueller wrote: > > > On 05.11.18 15:51, Pierre Morel wrote: >> On 25/10/2018 14:37, Michael Mueller wrote: [..] >>> + >>> +void kvm_s390_gib_init(u8 nisc) >>> +{ >>> + int rc; >>> + >>> + if (gib) >>> + return; >>> + >>> + if (!css_general_characteristics.aiv) { >>> + KVM_EVENT(3, "%s", "gib not initialized, no AIV facility"); >>> + return; >>> + } >>> + >>> + gib = (struct kvm_s390_gib *)get_zeroed_page(GFP_KERNEL | GFP_DMA); >>> + if (!gib) { >>> + KVM_EVENT(3, "%s", "gib memory allocation failed"); >>> + return; >>> + } >> >> Why should we survive this error? > > Design question. > I'm with Pierre on this one. We should fail starting the guest if this allocation fails. >> >> >>> + >>> + gib->nisc = nisc; >>> + rc = chsc_sgib((u32)(u64)gib); >>> + if (rc) { >>> + KVM_EVENT(3, "gib 0x%pK AIV association failed rc: %d", >>> + gib, rc); >>> + free_page((unsigned long)gib); >>> + gib = NULL; >>> + return; >>> + } >> >> or this failure ? >> >> shouldn't we better return an error and abort loading KVM? > > Design question. > Same here I guess. This would be only either due to a guest or a host bug, or? I would prefer being fairly deterministic about whether we do have a gib or not. Regards, Halil