Performance problem since updating from 6.0-RELEASE to 6.0-STABLE last friday

Pierre-Luc Drouin pldrouin at pldrouin.net
Tue Nov 15 13:59:43 PST 2005


Nate Lawson wrote:

> Pierre-Luc Drouin wrote:
>
>> Hajimu UMEMOTO wrote:
>>
>>>>>>>> On Mon, 14 Nov 2005 12:40:36 -0500
>>>>>>>> Pierre-Luc Drouin <pldrouin at pldrouin.net> said:
>>>>>>>
>>> pldrouin> Yep, smart battery is definately the problem. The 
>>> performance of my pldrouin> laptop is back to normal when I remove 
>>> the xfce4-battery-plugin. pldrouin> acpiconf -i loop reproduces the 
>>> problem for me too. So it looks like pldrouin> there is something 
>>> wrong in smart battery.
>>>
>>> The cmbat has similar issue on some laptops.  So, acpi_cmbat.c uses
>>> cache for retrieval to reduce its influence, and its expiration
>>> time is set by hw.acpi.battery.info_expire.
>>> However, acpi_smbat.c doesn't use cache.  So, I made a patch.  Since I
>>> don't have a laptop which has smbat, I cannot test it by myself.
>>> Please test it and let me know the result.
>>>  
>>>
>> The patch seams to do its job correctly, but it is still very 
>> annoying to have the whole computer to freeze for 1 second when the 
>> cache expires. What does make the whole system to freeze? Before the 
>> code was changed in 6.0-stable, FreeBSD was able to read the battery 
>> status without freezing my laptop... I have been running 3 OSes 
>> (FreeBSD, Ubuntu and Win XP) on my laptop for a while and never 
>> experienced that kind of problem with either Linux or Win XP. I guess 
>> there is something wrong in the new code added after 6.0-release.
>
>
> If you have both smbat and cmbat, just disable smbat if you don't like 
> it.  Add this to /boot/loader.conf:
>
> debug.acpi.disabled="smbat"
>
> The pause is related to a buggy or slow EC.  Caching the values 
> happens to hide it.  Do you get pauses with smbat disabled (see above 
> for how to do this)?  Can you still get battery status from cmbat?
>
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?


More information about the freebsd-stable mailing list