Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Nov 2008 21:54:13 -0800
From:      Bruce Cran <bruce@cran.org.uk>
Cc:        jkoshy@freebsd.org, current@freebsd.org
Subject:   Re: hwpmc deadlock: processes hang on pmc-sx
Message-ID:  <20081111215413.7aa9ea86@tau.draftnet>
In-Reply-To: <20081111204941.4bfdb7c4@tau.draftnet>
References:  <20081111204941.4bfdb7c4@tau.draftnet>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 11 Nov 2008 20:49:41 -0800
Bruce Cran <bruce@cran.org.uk> wrote:

> I decided to try hwpmc today, but ran into a
> deadlock on the second run.  I'm using a dual core laptop:
> 
> CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-52 (1600.07-MHz
> K8-class CPU) Origin = "AuthenticAMD"  Id = 0x40f82  Stepping = 2
>   Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
>   Features2=0x2001<SSE3,CX16>
>   AMD
> Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow!+,3DNow!>
> AMD Features2=0x1f<LAHF,CMP,SVM,ExtAPIC,CR8> Cores per package: 2
> usable memory = 2071433216 (1975 MB)
> avail memory  = 2001584128 (1908 MB)
> ACPI APIC Table: <PTLTD          APIC  >
> FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>  cpu0 (BSP): APIC ID:  0
>  cpu1 (AP): APIC ID:  1
> 
> uname:
> FreeBSD tau.draftnet 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Sun Nov  9
> 13:12:06 PST 2008
> brucec@tau.draftnet:/usr/obj/usr/src/sys/MYKERNEL_8  amd64
> 
> I ran the command 
> pmcstat -O test.stat -n 32768 -S instructions
> 
> I found that I couldn't quit pmcstat and any attempt to run new
> processes hung too.  The 'ps' listing in ddb
> contained the following:
> 
> State     wmesg     cmd
> Ss       pmc-sx     sh
> S        piperd     cron
> S        pmc-sx     cron
> S        pmc-sx     gconf-d
> T+       pmc-sx     dmesg
> S+       pmc-sx     top
> SL       pmcloop    [hwpmc]
> S+       pmcctx     pmcstat
> 
> Are there any commands I should run at the debugger to
> collect more information if I trigger it again?
> 

I seem to be able to trigger it quite reliably by running pmcstat
while "nc -l 20000 > /dev/null" is running in one terminal and "nc
127.0.0.1 20000 < /dev/zero" is running in another. It still happens
with a GENERIC kernel; I've tried to get some information about locks
from ddb but I clearly have some reading to do first, because it isn't
giving me any data.

-- 
Bruce Cran



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081111215413.7aa9ea86>