cvs commit: src/sys/dev/acpica acpi_pci_link.c

John Baldwin jhb at FreeBSD.org
Thu Dec 2 13:11:05 PST 2004


On Wednesday 01 December 2004 06:17 pm, Pawel Jakub Dawidek wrote:
> On Wed, Dec 01, 2004 at 09:05:02PM +0000, John Baldwin wrote:
> +> jhb         2004-12-01 21:05:02 UTC
> +>
> +>   FreeBSD src repository
> +>
> +>   Modified files:
> +>     sys/dev/acpica       acpi_pci_link.c
> +>   Log:
> +>   - Do a better job of handling any Dependent Functions (aka DPFs) that
> appear +>     in the _PRS or _CRS of link devices.  If faced with multiple
> DPFs in a +>     _PRS, we just use the first one.  We assume that if _CRS
> has DPF tags they +>     only contain a single set since multiple DPFs
> wouldn't make any sense.  In +>     practice, the only DPFs I've seen so
> far for link devices are that the one +>     IRQ resource is surrounded by
> a DPF tag pair for no apparent reason, and +>     this should handle that
> case fine now.
> +>   - Only allocate link structures for IRQ resources for link devices
> rather +>     than allocating a link structure for every resource.
>
> On my box things looks much worse (not sure if this is related):
>
> Timecounter "i8254" frequency 1193182 Hz quality 0
> CPU: Intel(R) XEON(TM) CPU 1.80GHz (1799.75-MHz 686-class CPU)
>   Origin = "GenuineIntel"  Id = 0xf24  Stepping = 4
>  
> Features=0x3febfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MC
>A,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM>
> Hyperthreading: 2 logical CPUs
> real memory  = 1073741824 (1024 MB)
> avail memory = 1046126592 (997 MB)
> ACPI APIC Table: <INTEL          APIC  >
> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
>  cpu0 (BSP): APIC ID:  0
>  cpu1 (AP): APIC ID:  1
>  cpu2 (AP): APIC ID:  6
>  cpu3 (AP): APIC ID:  7
> kernel trap 12 with interrupts disabled
>
>
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address   = 0x9
> fault code              = supervisor write, page not present
> instruction pointer     = 0x8:0xc05ac7c9
> stack pointer           = 0x10:0xc0820cb4
> frame pointer           = 0x10:0xc0820cd0
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = resume, IOPL = 0
> current process         = 0 (swapper)
> [thread pid 0 tid 0 ]
> Stopped at      cpu_fork+0x1a1: incl    0x8(%eax)
> db> tr
> Tracing pid 0 tid 0 td 0xc0617e20
> cpu_fork(c0617e20,c1e8b000,c1e83300,60034,c1e8b068,0,c05cd0e1,287,c0619fe0,
>c05cd0e1,283) at cpu_fork+0x1a1
> fork1(c0617e20,60034,0,c0820d4c) at fork1+0xbe5
> kthread_create(c0488eac,0,0,40000,0) at kthread_create+0x33
> ktrace_init(0,c1e70f70,81ec00,81e000,828000) at ktrace_init+0xac
> mi_startup() at mi_startup+0xb3
> begin() at begin+0x2c
> db>

This is well before the link code.  Can you use gdb to find the file/line for 
cpu_fork+0x1a1?

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the cvs-src mailing list