Bandan, On Wed, 14 Aug 2019, Bandan Das wrote: > On a 32 bit RHEL6 guest with greater than 8 cpus, the > kdump kernel hangs when calibrating apic. This happens > because when apic initializes bigsmp, it also initializes LDR > even though it probably wouldn't be used.
'It probably wouldn't be used' is a not really a useful technical statement. Either it is used, then it needs to be handled. Or it is unused then why is it written in the first place? The bigsmp APIC uses physical destination mode because the logical flat model only supports 8 APICs. So clearly bigsmp_init_apic_ldr() is bogus and should be empty. > When booting into kdump, KVM apic incorrectly reads the stale LDR > values from the guest while building the logical destination map > even for inactive vcpus. While KVM apic can be fixed to ignore apics > that haven't been enabled, a simple guest only change can be to > just clear out the LDR. This does not make much sense either. What has KVM to do with logical destination maps while booting the kdump kernel? The kdump kernel is not going through the regular cold/warm boot process, so KVM does not even know that the crashing kernel jumped into the kdump one. What builds the logical destination maps and what has LDR and the KVM APIC to do with that? I'm not opposed to the change per se, but I'm not accepting change logs which have the fairy tale smell. Thanks, tglx