Re: page fault/panic: mi_switch: switch in a critical section

From: Willem Jan Withagen <wjw_at_withagen.nl>
Date: Tue, 13 Jul 2004 01:07:58 +0200
From: "John Baldwin" <jhb_at_FreeBSD.org>

> > panic: mi_switch: called by old code
> > cpuid = 1;
> > Stack backtrace:
> > backtrace() at backtrace+0x17
> > panic() at panic+0x1d2
> > mi_switch() at mi_switch+0xcf
> > maybe_preempt() at maybe_preempt+0xd0
> > sched_add() at sched_add+0x2dd
> > kseq_assign() at kseq_assign+0x45
> > sched_choose() at sched_choose+0x5b
> > choosethread() at choosethread+0x3d
> > sched_switch() at sched_switch+0x126
> > mi_switch() at mi_switch+0x23b
> > ast() at ast+0x35f
> > Xfast_syscall() at Xfast_syscall+0xdd
> > --- syscall (0), rip = 0x20069afdc, rsp = 0x7fffffffe8a8, rbp =
>
> This should be fixed in HEAD as kseq_assign() now calls sched_add_internal()
> which no longer recursively mi_switch()'s.

Well I'm not getting far enough to see if the patch works.....

SMAP type=01 base=0000000000000000 len=00000000000a0000
SMAP type=02 base=00000000000f0000 len=0000000000010000
SMAP type=02 base=00000000fec00000 len=0000000001400000
SMAP type=02 base=000000007fef0000 len=0000000000010000
SMAP type=01 base=0000000000100000 len=000000007fde0000
SMAP type=03 base=000000007fee3000 len=000000000000d000
SMAP type=04 base=000000007fee0000 len=0000000000003000
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 5.2-CURRENT #60: Tue Jul 13 00:58:57 CEST 2004
    root_at_opteron.digiware.nl:/usr/obj/home2/src/sys/OPTERON.amd64
WARNING: WITNESS option enabled, expect reduced performance.
WARNING: DIAGNOSTIC option enabled, expect reduced performance.
Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff806c7000.
Calibrating clock(s) ... i8254 clock: 1193255 Hz
CLK_USE_I8254_CALIBRATION not specified - using default frequency
Timecounter "i8254" frequency 1193182 Hz quality 0
Calibrating TSC clock ... TSC clock: 1603650609 Hz
CPU: AMD Opteron(tm) Processor 242 (1603.65-MHz K8-class CPU)
  Origin = "AuthenticAMD"  Id = 0xf51  Stepping = 1
  Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CM
OV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
  AMD Features=0xe0500800<SYSCALL,NX,MMX+,LM,3DNow+,3DNow>
L1 2MB data TLB: 8 entries, fully associative
L1 2MB instruction TLB: 8 entries, fully associative
L1 4KB data TLB: 32 entries, fully associative
L1 4KB instruction TLB: 32 entries, fully associative
L1 data cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative
L1 instruction cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative
L2 2MB unified TLB: 0 entries, disabled/not present
L2 4KB data TLB: 512 entries, 4-way associative
L2 4KB instruction TLB: 512 entries, 4-way associative
L2 unified cache: 1024 kbytes, 64 bytes/line, 1 lines/tag, 16-way associative
real memory  = 2146304000 (2046 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x000000000009cfff, 638976 bytes (156 pages)
0x000000000074d000 - 0x000000007c2b7fff, 2075570176 bytes (506731 pages)
avail memory = 2062815232 (1967 MB)
ACPI APIC Table: <VIAK8  AWRDACPI>
panic: AP #1 (PHY# 1) failed!
cpuid = 0;
Uptime: 1s
panic: kthread_create called too soon
cpuid = 0;
Uptime: 1s
panic: Assertion mtx_unowned(m) failed at /home2/src/sys/kern/kern_mutex.c:859
cpuid = 0;
Uptime: 1s

And this last panic is repeated at nausium....
But the problem is of course in the fact that:
----
ACPI APIC Table: <VIAK8  AWRDACPI>
panic: AP #1 (PHY# 1) failed!
----

Any suggestions on how to improve this?

Note again, under i386 I'm ver able to boot 2 processors.

--WjW
Received on Mon Jul 12 2004 - 21:15:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:01 UTC