PLEASE TEST: IPI deadlock avoidance patch

Robert Watson rwatson at freebsd.org
Mon Aug 23 21:22:49 PDT 2004


On Tue, 24 Aug 2004 andy at bradfieldprichard.com.au wrote:

> >
> > Thanks to everybody for confirming the fix :-)
> > --
> 
> With the patch applied, during a make -j4 buildworld my box still hangs
> with the following (bright-white) messages on the console:
> 
> <these messages are repeated on the screen until hang>
> ...
> panic: APIC: Previous IPI is stuck
> cpuid = 0;
> boot() called on cpu#0
> Uptime: 3h57m24s
> Cannot dump. No dump device defined.
> panic: malloc(M_WAITOK) in interrupt context
> cpuid = 0;
> KDB: enter: panic
> <hangs here>

Could you set the following sysctl:

  debug.kdb.stop_cpus=0

It's also a tunable in HEAD, but not yet RELENG_5, so you'll need to set
it at run time.  This will prevent KDB from trying to IPI the other CPUs
to stop them while the current CPU is in KDB.  However, during an IPI
deadlock, this won't work.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Principal Research Scientist, McAfee Research


> 
> 
> :(
> 
> 
> Some dmesg info:
> 
> <snip>
> FreeBSD 5.3-BETA1 #0: Mon Aug 23 23:46:21 EST 2004
> root at hummer:/slim/obj/hummer/src-current/src/sys/GENERIC
> WARNING: WITNESS option enabled, expect reduced performance.
> Timecounter "i8254" frequency 1193182 Hz quality 0
> CPU: Pentium Pro (198.95-MHz 686-class CPU)
> Origin = "GenuineIntel"  Id = 0x619  Stepping = 9
> Features=0xfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV>
> real memory  = 536870912 (512 MB)
> avail memory = 515706880 (491 MB)
> MPTable: <INTEL    ALDER       >
> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
>  cpu0 (BSP): APIC ID:  0
>  cpu1 (AP): APIC ID:  1
>  cpu2 (AP): APIC ID:  2
>  cpu3 (AP): APIC ID:  4
> ioapic0: Assuming intbase of 0
> ioapic1: Assuming intbase of 16
> ioapic1 <Version 1.1> irqs 16-31 on motherboard
> ioapic0 <Version 1.1> irqs 0-15 on motherboard
> <snip>
> 
> 
> -andyf
> 
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
> 



More information about the freebsd-current mailing list