Trouble with APM suspend in 5.3-R

Andrew Belashov bel at orel.ru
Thu Jan 20 22:39:32 PST 2005


Добрый день!

Dave Walton wrote:
> Gleb Smirnoff wrote:
> 
>> On Wed, Jan 19, 2005 at 11:42:57PM -0800, Dave Walton wrote:
>> D> I've been unable to get APM suspend/resume to work with 5.3-R on my 
>> D> Thinkpad 770Z.  As released, 'apm -z' causes a lockup (it worked 
>> fine in D> 4.x).  Revision 1.233 of ata-all.c fixes that, and 'apm -z' 
>> now causes D> the system to properly suspend to disk, as it had 
>> before.  However, when D> the system resumes, it spits out three 
>> errors regarding pir0, then D> panics.  This happens with or without 
>> your patch applied to ata-all.c.
>>
>> pir0? What's that?
> 
> 
> Based on dmesg output, it's PCI Interrupt Routing Table.  Whatever that is.
> 
>> Anyway this should be another issue, then ATA. Can  you pls show exact 
>> errors?
>>
> 
> Andrew Belashov posted a patch that removes the pir0 errors, but didn't 
> fix the panic.  Here is what now appears on the screen when I resume.  I 
> hope it makes more sense to you than it does to me.
> 
> ----------------------------------------------------------------------
> kernel trap 12 with interrupts disabled
> 
> 
> fatal trap 12: page fault while in kernel mode
> fault virtual address   = 0x8
> fault code              = supervisor read, page not present
> instruction pointer     = 0x8:0xc061ed2e
> stack pointer           = 0x10:0xcde52ac8
> frame pointer           = 0x10:0xcde52ac8
> code segment            = base 0x8, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = resume, IOPL = 0
> current process         = 28 (swi5: clock sio)
> trap number             = 12
> panic: page fault
> Uptime: 1m30s
> Cannot dump. No dump device defined.
> Automatic reboot in 15 seconds - press a key on the console to abort
> --> Press a key on the console to reboot.
> --> or switch of the system now.
> ----------------------------------------------------------------------

First, show following:

$ addr2line -f -e /boot/kernel/kernel.debug 0xc061ed2e

If /boot/kernel/kernel.debug does not exist, use /boot/kernel/kernel.

To make a debug kernel, add the following line to your kernel configuration:

makeoptions     DEBUG=-g

This doesn't actually install a kernel with full debugging symbols as
/boot/kernel/kernel. The /boot/kernel/kernel that gets installed is the
stripped down regular kernel, but a separate kernel.debug file is in
/usr/src/sys/compile/Your_Kernel_Name/kernel.debug.

If your kernel panics and leaves behind a core file, the kernel.debug file
is used to get the debugging symbols when you actually do the debug.

For more about Kernel Debugging, see FreeBSD Developers' Handbook:
<http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug.html>

With Best Regards,
Andrew Belashov.


More information about the freebsd-mobile mailing list