Hajimu UMEMOTO wrote:
Hi,


On Thu, 17 Nov 2005 11:24:16 -0500
Pierre-Luc Drouin <[EMAIL PROTECTED]> said:


Ok, there is new development. I realized by playing with debug.acpi.disabled="smbat", debug.acpi.disabled="smbat cmbat" and debug.acpi.disabled="cmbat", that my laptop battery is not a smbat, but a cmbat. When I played with hw.acpi.battery.info_expire after to have applied the patch for acpi_smbat.c, it was freezing less often because that sysctl variable was shared by both cmbat and smbat. So I can only get battery status from cmbat (disabling cmbat disables the use of acpiconf -i loop). To get the status of my battery via cmbat was working fine up to 6.0-RELEASE (included), but makes my laptop to freeze since I upgraded to 6.0-stable with Nov 10th sources. What change related to cmbat between 6.0-release and 6.0-stable could be causing this?


pldrouin> Has someone found how to fix this problem in -stable?

Perhaps, I found the cause.  acpi_cmbat_get_bif() is heavy process,
and it was called only when ACPIIO_CMBAT_GET_BIF ioctl was issued
explicitly, until smbat stuff was committed.  However,
acpiio_cmbat_get_bif() is called from every
acpi_battery_get_battinfo() call, now.
The attached patch will bring back to former behavior.  Please try it
and let me know the result.
It is against 7-CURRENT as of today.  If you want to try it on
6-STABLE, you need to apply following diff before applying it:

Thank you for tracking this down. It is interesting that BIF is heavyweight while BST is not. I guess that is expected behavior by OEMs which only test on Windows and so not everyone makes BIF simple. On my laptops, BIF is as fast as BST.

I don't like the patch approach (changing the API), however. Let me look at it and commit a fix that doesn't change the API.

Thanks,
--
Nate
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to