Re: Hard hang in hypervisor!?
From: Linas Vepstas <hidden>
Date: 2007-10-11 20:30:50
On Thu, Oct 11, 2007 at 10:04:40AM +1000, Paul Mackerras wrote:
Linas Vepstas writes:quoted
Err .. it was cpu 0 that was spinlocked. Are interrupts not distributed?We have some bogosities in the xics code that I noticed a couple of days ago. Basically we only set the xics to distribute interrupts to all cpus if (a) the affinity mask is equal to CPU_MASK_ALL (which has ones in every bit position from 0 to NR_CPUS-1) and (b) all present cpus are online (cpu_online_map == cpu_present_map). Otherwise we direct interrupts to the first cpu in the affinity map. So you can easily have the affinity mask containing all the online cpus and still not get distributed interrupts. So in your case it's quite possible that all interrupts were directed to cpu 0.
Thanks, I'll give this a whirl if I don't get distracted by other tasks. A simple cat /proc/interrupts shows them evenly distributed on my "usual" box, and all glommed up on cpu 0 on the one thats giving me fits. Also, I noticed years ago that "BAD" was non-zero and large. Vowed to look into it someday ... --linas