On Fri, Mar 04, 2011 at 01:29:19PM -0700, Theo de Raadt wrote:
> I don't know how to help you debug this further.  You need to go into
> the code and start adding printf's and such.
> 
> None of us currently have machines which fail in this way.
> 
> However the issue is that whatever the problem is, the odds of being
> related to ACPI are less than 1%.
> 
> Mentioning ACPI in your bug report in this way does not help.

Yes, you're absolutely right. I've done quite a bit of digging,
and found the problem occurs in /usr/src/sys/arch/amd64/amd64/cpu.c
in function cpu_boot_secondary. There is a loop:

for (i = 100000; (!(ci->ci_flags & CPUF_RUNNING)) && i>0; i--) {
        delay(10);
}

I put a printf before the loop and after the loop. It managed to
print both printfs, but right afterwards I received a
panic: uvm_fault: fault on non-pageable map (0xffffffff80xx8ac0, 
0xffff80000017200) Stopped at   Debugger+0x5:   leave

I tried to type 'trace' and then enter.. once I hit enter, the
system reboot.

So I wonder if perhaps the CPU was not ready yet... working on that
theory I increased delay(10) to delay(20) but it made no difference.

Is there a way to safely dump out the CPU flags of the secondary
processor? (In this case, it's CPU 1.. since it's a dual core amd64)

Reply via email to