Opened 15 years ago
Closed 15 years ago
#5487 closed bug (fixed)
[ACPI] PowerStatus fails to KDL during start with "Unexpected exception 'Divide Error Exception'"
Reported by: | siarzhuk | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Drivers/ACPI | Version: | R1/alpha1 |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
a) This behavior was observed on hrev35624
b) Both "apm true" and "acpi true" settings were uncommented in the kernel settings.
c) This system is a desktop PC and it have no battery at all.
Steps to reproduce:
a) Run the PowerStatus application;
b) Press the button "Install" in the alert box.
c) System goes to KDL. Stack trace is below.
Notes:
The same behavior was observed on another PC system too. Are they are required too?
Complete syslog is also attached.
Any suggestions and testing cases are welcome!
est: open EST: Get frequency table from model specific register est: Guessed bus clock (high) of 199 MHz PANIC: Unexpected exception "Divide Error Exception" occurred in kernel mode! Error code: 0x0 Welcome to Kernel Debugging Land... Thread 197 "w>Deskbar" running on CPU 1 kdebug> bt stack trace for thread 197 "w>Deskbar" kernel stack: 0x843cd000 to 0x843d1000 user stack: 0x700c3000 to 0x70103000 frame caller <image>:function + offset 0 843d0694 (+ 48) 8006efbc <kernel_x86> invoke_command_trampoline(0x843d072c) + 0x001c 1 843d06c4 (+ 12) 800f6c50 <kernel_x86>:arch_debug_call_with_fault_handler + 0x001b 2 843d06d0 (+ 48) 8006e1a5 <kernel_x86>:debug_call_with_fault_handler + 0x0065 3 843d0700 (+ 64) 8006f21a <kernel_x86>:invoke_debugger_command + 0x00b6 4 843d0740 (+ 64) 8006f044 <kernel_x86> invoke_pipe_segment(debugger_command_pipe*: 0x8438a030, int32: 0, 0x0 "<NULL>") + 0x007c 5 843d0780 (+ 64) 8006f370 <kernel_x86>:invoke_debugger_command_pipe + 0x008c 6 843d07c0 (+ 48) 80070d34 <kernel_x86> ExpressionParser<0x843d0870>::_ParseCommandPipe(0x843d086c) + 0x023c 7 843d07f0 (+ 64) 80070165 <kernel_x86> ExpressionParser<0x843d0870>::EvaluateCommand(0x80149ce0 "bt", 0x843d086c) + 0x02ad 8 843d0830 (+ 224) 80072138 <kernel_x86>:evaluate_debug_command + 0x0080 9 843d0910 (+ 80) 8006cd2c <kernel_x86> kernel_debugger_loop(0x8012ab17 "PANIC: ", 0x80141080 "Unexpected exception "%s" occurred in kernel mode! Error code: 0x%lx ", 0x843d09cc "??", int32: 1) + 0x029c 10 843d0960 (+ 48) 8006cf98 <kernel_x86> kernel_debugger_internal(0x8012ab17 "PANIC: ", 0x80141080 "Unexpected exception "%s" occurred in kernel mode! Error code: 0x%lx ", 0x843d09cc "??", int32: 1) + 0x0048 11 843d0990 (+ 48) 8006e338 <kernel_x86>:panic + 0x0024 12 843d09c0 (+ 96) 800f19f6 <kernel_x86> unexpected_exception(iframe*: 0x843d0a2c) + 0x0146 13 843d0a20 (+ 12) 800f6ffd <kernel_x86>:int_bottom + 0x003d kernel iframe at 0x843d0a2c (end = 0x843d0a7c) eax 0xbb0 ebx 0x812d1584 ecx 0x0 edx 0x0 esi 0xffffffff edi 0x0 ebp 0x843d0ca4 esp 0x843d0a60 eip 0x812cfd01 eflags 0x10246 vector: 0x0, error code: 0x0 14 843d0a2c (+ 632) 812cfd01 </boot/system/add-ons/kernel/drivers/power/enhanced_speedstep> est_msr_info(uint64: 0xf2300000f23, freq_info*: 0x803ac4ec) + 0x00d9 15 843d0ca4 (+ 80) 812cfb03 </boot/system/add-ons/kernel/drivers/power/enhanced_speedstep> est_get_info(freq_info*: 0x803ac4ec) + 0x005f 16 843d0cf4 (+ 48) 812cf527 </boot/system/add-ons/kernel/drivers/power/enhanced_speedstep> est_open(0x8024a730, 0x843d0d94 "power/enhanced_speedstep/0", int32: 2, 0x8039ef38) + 0x0137 17 843d0d24 (+ 48) 8007cdcb <kernel_x86> AbstractModuleDevice<0x80227e9c>::Open(0x843d0d94 "power/enhanced_speedstep/0", int32: 2, 0x8039ef38) + 0x0023 18 843d0d54 (+ 320) 80081e09 <kernel_x86> devfs_open(fs_volume*: 0x80222050, fs_vnode*: 0x803b28c4, int32: 2, 0x843d0ec0) + 0x00a1 19 843d0e94 (+ 48) 800b262d <kernel_x86> open_vnode(vnode*: 0x803b28c4, int32: 2, false) + 0x0029 20 843d0ec4 (+ 64) 800b2f0b <kernel_x86> file_open(int32: -1, 0x80932080 "/dev", int32: 2, false) + 0x008f 21 843d0f04 (+ 64) 800b85d9 <kernel_x86>:_user_open + 0x009d 22 843d0f44 (+ 100) 800f7232 <kernel_x86>:handle_syscall + 0x00af user iframe at 0x843d0fa8 (end = 0x843d1000) eax 0x60 ebx 0x78e060 ecx 0x70102780 edx 0xffff0114 esi 0x70102838 edi 0x701027ec ebp 0x701027ac esp 0x843d0fdc eip 0xffff0114 eflags 0x246 user esp 0x70102780 vector: 0x63, error code: 0x0 23 843d0fa8 (+ 0) ffff0114 <commpage>:commpage_syscall + 0x0004 24 701027ac (+ 224) 0092027d </boot/system/apps/PowerStatus@0x00916000>:unknown + 0xa27d 25 7010288c (+ 240) 00920227 </boot/system/apps/PowerStatus@0x00916000>:unknown + 0xa227 26 7010297c (+ 64) 0091fea5 </boot/system/apps/PowerStatus@0x00916000>:unknown + 0x9ea5 27 701029bc (+ 48) 0092597f </boot/system/apps/PowerStatus@0x00916000>:unknown + 0xf97f 28 701029ec (+ 80) 00924b33 </boot/system/apps/PowerStatus@0x00916000>:unknown + 0xeb33 29 70102a3c (+ 64) 0092629e </boot/system/apps/PowerStatus@0x00916000>:unknown + 0x1029e 30 70102a7c (+ 160) 002367da </boot/system/Deskbar@0x00200000>:unknown + 0x367da 31 70102b1c (+ 288) 0022ac95 </boot/system/Deskbar@0x00200000>:unknown + 0x2ac95 32 70102c3c (+ 80) 00229faa </boot/system/Deskbar@0x00200000>:unknown + 0x29faa 33 70102c8c (+ 48) 003238f9 </boot/system/lib/libbe.so@0x00260000>:unknown + 0xc38f9 34 70102cbc (+ 560) 003e2c04 </boot/system/lib/libbe.so@0x00260000>:unknown + 0x182c04 35 70102eec (+ 48) 00229a10 </boot/system/Deskbar@0x00200000>:unknown + 0x29a10 36 70102f1c (+ 96) 003e6cff </boot/system/lib/libbe.so@0x00260000>:unknown + 0x186cff 37 70102f7c (+ 48) 00324def </boot/system/lib/libbe.so@0x00260000>:unknown + 0xc4def 38 70102fac (+ 48) 006ecbf6 </boot/system/lib/libroot.so@0x006c2000>:unknown + 0x2abf6 39 70102fdc (+ 0) 70102fec 4415:w>Deskbar_197_stack@0x700c3000 + 0x3ffec kdebug> reboot
Attachments (1)
Change History (7)
by , 15 years ago
comment:1 by , 15 years ago
follow-ups: 3 4 comment:2 by , 15 years ago
I'd hazard a guess and say it's that division. Both that and the one above don't check for getting 0 after the shift.
comment:3 by , 15 years ago
Replying to mmlr:
I'd hazard a guess and say it's that division. Both that and the one above don't check for getting 0 after the shift.
I'll trace out this place today evening and let you know what is going on there.
comment:4 by , 15 years ago
Replying to mmlr:
I'd hazard a guess and say it's that division. Both that and the one above don't check for getting 0 after the shift.
For debug purposes I have traced msr, id and 8-shifted id and returned B_ERROR in zero-case:
KERN: est: open KERN: EST: Get frequency table from model specific register KERN: msr:20 id:0 id8:0 KERN: est: CPU supports Enhanced Speedstep, but is not recognized. KERN: est: open KERN: EST: Get frequency table from model specific register KERN: msr:20 id:0 id8:0 KERN: est: CPU supports Enhanced Speedstep, but is not recognized.
The check for zero divider is required here in any case.
Probably I can perform more tests to check why it "is not recognized"? Any suggestions?
comment:5 by , 15 years ago
I have tested this on the another PC. Yes, both msr >> 32; and msr >> 48; cases must be checked here for zero-case.
Probably a division by 0. "dis" could verify that.