Project

General

Profile

Bug #2781

DFly 4.0.3; PC Engines APU AMD T40E CPU; kernel panic when when setting machdep.mwait.CX.idle=AUTO

Added by CosmicDJ over 4 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Low
Assignee:
-
Category:
Kernel
Target version:
Start date:
01/30/2015
Due date:
% Done:

100%

Estimated time:

Description

Hi,

I get a kernel panic when doing "sysctl machdep.mwait.CX.idle=AUTO" (AUTODEEP does not work):

# sysctl machdep.mwait.CX.idle=AUTO
machdep.mwait.CX.idle: INVALID

Fatal trap 12: page fault while in kernel mode
cpuid = 1; lapic->id = 01000000
fault virtual address = 0x3fffffff4
fault code = supervisor read data, page not present
instruction pointer = 0x8:0xffffffff809ccc6e
stack pointer = 0x10:0xffffffe02b458a80
frame pointer = 0x10:0xffffffe02b458ab0
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = Idle
current thread = pri 12
kernel: type 12 trap, code=0

CPU1 stopping CPUs: 0x00000001
stopped
Stopped at cpu_idle+0x19a: movl (%rdx,%rax,4),%edx

The CPU should support C1 and C6 (see http://www.cpu-world.com/CPUs/Bobcat/AMD-G%20Series%20G-T40E%20-%20GET40EFQB22GVE.html).
BIOS is "Build 9/8/2014".

/boot/loader.conf:
boot_serial="YES"
sio0.baud="115200"
console="comconsole"
#powernow_load="YES" # XXX does not work with a T40E CPU (yet?)
amdsbwd_load="YES"
km_load="YES"

/etc/sysctl.conf:
kern.rand_mode=csprng
kern.ipc.somaxconn=1024
#machdep.mwait.CX.idle=AUTODEEP XXX

Some sysctls:
# sysctl kern.cputimer
kern.cputimer.intr.select: lapic
kern.cputimer.intr.freq: 100000264
kern.cputimer.intr.reglist: lapic
kern.cputimer.freq: 14318180
kern.cputimer.clock: 754746750
kern.cputimer.name: HPET
kern.cputimer.select: HPET ACPI-safe i8254_timer2 dummy

# sysctl machdep.mwait
machdep.mwait.CX.repeat_shift: 1
machdep.mwait.CX.spin: INVALID
machdep.mwait.CX.idle: INVALID
machdep.mwait.CX.supported:
machdep.mwait.C0.subcnt: 0
machdep.mwait.C0.entered: 0
machdep.mwait.C1.subcnt: 0
machdep.mwait.C1.entered: 47478
machdep.mwait.C2.subcnt: 0
machdep.mwait.C2.entered: 0
machdep.mwait.C3.subcnt: 0
machdep.mwait.C3.entered: 0
machdep.mwait.C4.subcnt: 0
machdep.mwait.C4.entered: 0
machdep.mwait.C5.subcnt: 0
machdep.mwait.C5.entered: 0
machdep.mwait.C6.subcnt: 0
machdep.mwait.C6.entered: 0
machdep.mwait.C7.subcnt: 0
machdep.mwait.C7.entered: 0

# sysctl hw.acpi | grep cx
hw.acpi.cpu.cx_lowest: C1
hw.acpi.cpu.cx_lowest_use: C1
hw.acpi.cpu0.cx_supported: C1/100
hw.acpi.cpu0.cx_lowest: C1
hw.acpi.cpu0.cx_lowest_use: C1
hw.acpi.cpu0.cx_usage: 0.00% last 1000000us
hw.acpi.cpu1.cx_supported: C1/100
hw.acpi.cpu1.cx_lowest: C1
hw.acpi.cpu1.cx_lowest_use: C1
hw.acpi.cpu1.cx_usage: 0.00% last 1000000us

# sysctl hw.acpi.cpu | grep px
hw.acpi.cpu.px_dom0.available: 1000 800
hw.acpi.cpu.px_dom0.members: cpu1(800) cpu0(800)
hw.acpi.cpu.px_dom0.select: 800
hw.acpi.cpu.px_global: 1000

dmesg is attached


Files

dmesg.txt (10.7 KB) dmesg.txt CosmicDJ, 01/30/2015 01:01 AM
dmesg_verbose.txt (61.9 KB) dmesg_verbose.txt CosmicDJ, 01/30/2015 10:51 AM

History

#1

Updated by swildner over 4 years ago

Can you give us a verbose dmesg (i.e., select either 'v' at the loader.menu or set boot_verbose=yes in loader.conf) too?

#2

Updated by CosmicDJ over 4 years ago

swildner wrote:
> Can you give us a verbose dmesg (i.e., select either 'v' at the loader.menu or set boot_verbose=yes in loader.conf) too?

Sure

#3

Updated by swildner over 4 years ago

Can you retry with current master perhaps? A fix was committed in http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/52945ec6bad2c5a73addf283dcdf3a286b0d2cb9

If you need it on the 4.0 branch, we could MFC it too I guess (or you can cherry-pick it locally).

#4

Updated by CosmicDJ over 4 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

swildner wrote:
> Can you retry with current master perhaps? A fix was committed in http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/52945ec6bad2c5a73addf283dcdf3a286b0d2cb9
>
> If you need it on the 4.0 branch, we could MFC it too I guess (or you can cherry-pick it locally).

No panic anymore:

# sysctl machdep.mwait.CX.idle=AUTO
machdep.mwait.CX.idle: NONE
sysctl: machdep.mwait.CX.idle=AUTO: value is not available

Thanks.

Also available in: Atom PDF