ACPI-CA update patch for review

YONETANI Tomokazu qhwt+dfly at les.ath.cx
Tue Jan 16 04:56:13 PST 2007


On Tue, Jan 16, 2007 at 12:55:16PM +0100, Simon 'corecode' Schubert wrote:
> YONETANI Tomokazu wrote:
> >While looking around, I found that AcpiEnterSleepStateS4Bios() has
> >similar spin loop at the bottom, but with a call to AcpiOsStall()
> >(== DELAY()) before AcpiGetRegister().  So I tried adding it to
> >AcpiEnterSleepState() too, and to my amazement, the problem went away.
> >I tried several ten times of suspending and waking up the laptop,
> >but I'm no longer able to reproduce it.  My question, though, is why
> >why just a DELAY() makes any difference (ISTR making gd_spinlocks_wr
> >volatile didn't solve the problem).
> 
> I still can't resume with this patch.  It hangs after acpi_cmbat0: 
> initialized (or so).  However, with some modifications before i managed to 
> get it to panic within fork1()/vm_page_insert(), so I guess that's further 
> down the road.  Not sure what I changed so that I could reproduce this...

Is your system running an SMP kernel?  If so, can you try UP kernel and
UP acpi.ko and see if it can resume?  That may narrow down the source
of the problem.
 
> When the system hangs, the keyboard is dead as well, so I can't break to 
> ddb or such.

Please build your acpi.ko with
  ACPI_DEBUG=yes ACPI_DEBUG_LOCKS=yes
on make command's argument, and set these in the boot loader prompt
(or in /boot/loader.conf)
  set debug.acpi.layer="ACPI_ALL_DRIVERS"
  set debug.acpi.level="ACPI_LV_FUNCTIONS"
so you can find the last ACPI function before it hangs.

Cheers.





More information about the Submit mailing list