> > Why search_mem_end() is not tried in case sclp_early_get_memsize() failed? > > Patch #3 documents that: > > + The storage limit does not indicate currently usable storage, it may > + include holes, standby storage and areas reserved for other means, such > + as memory hotplug or virtio-mem devices. Other interfaces for detecting > + actually usable storage, such as SCLP, must be used in conjunction with > + this subfunction. Yes, I read this and that exactly what causes my confusion. In this wording it sounds like SCLP *or* other methods are fine to use. But then you use SCLP or DIAGNOSE 260, but not memory scanning. So I am still confused ;) > If SCLP would fail, something would be seriously wrong and we should just crash > instead of trying to fallback to the legacy way of scanning. But what is wrong with the legacy way of scanning? > > > + case MEM_DETECT_DIAG500_STOR_LIMIT: > > > + return "diag500 storage limit"; > > > > AFAIU you want to always override MEM_DETECT_DIAG500_STOR_LIMIT method > > with an online memory detection method. In that case this code is dead. > > Not in the above case, pathological case above where something went wrong > during sclp_early_get_memsize(). In that scenario, die_oom() would indicate > that there are no memory ranges but that "diag500 storage limit" worked. > > Does that make sense? Yes, I get your approach. > Thanks for the review! Thanks! > -- > Cheers, > > David / dhildenb