Re: [PATCH] k8: Enable legacy irqs with extended cpu ids

Eric W. Biederman
2007-12-12T08:48:42Z

Neil Horman <nhorman@tuxdriver.com> writes:

> Recently a kdump bug was discovered in which a system would hang inside
> calibrate_delay during the booting of the kdump kernel. This was caused by the
> fact that the jiffies counter was not being incremented during timer
> calibration. The root cause of this problem was found to be a bios
> misconfiguration of the hypertransport bus. On system affected by this hang,
> the bios had assigned APIC ids which used extended apic bits (more than the
> nominal 4 bit ids's), but failed to configure bit 17 of the hypertransport
> transaction config register, which indicated that the mask for the destination
> field of interrupt packets accross the ht bus (see section 3.3.9 of
> http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF).
> If a crash occurs on a cpu with an APIC id that extends beyond 4 bits, it will
> not recieve interrupts during the kdump kernel boot, and this hang will be the
> result. The fix is to add this patch, whcih add an early pci quirk check, to
> forcibly enable this bit in the httcfg register. This enables all cpus on a
> system to receive interrupts, and allows kdump kernel bootup to procede
> normally.
>
> Regards
> Neil
>
>
> Signed-off-by: Neil Horman <nhorman@tuxdriver.com>

Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>

Eric