Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Nov 2005 12:06:12 -0800
From:      Nate Lawson <nate@root.org>
To:        Hajimu UMEMOTO <ume@freebsd.org>
Cc:        Pierre-Luc Drouin <pldrouin@pldrouin.net>, acpi@freebsd.org, freebsd-stable@freebsd.org
Subject:   Re: Performance problem since updating from 6.0-RELEASE to	6.0-STABLE last friday
Message-ID:  <43837A34.1030900@root.org>
In-Reply-To: <yge7jb0x28z.wl%ume@mahoroba.org>
References:  <4377775B.3080606@pldrouin.net>	<20051114105854.GA1041@galgenberg.net>	<4378CC14.2020109@pldrouin.net> <ygek6f9g83g.wl%ume@mahoroba.org>	<437A3901.8010001@pldrouin.net> <437A3B96.4040300@root.org>	<437B42C0.9040605@pldrouin.net> <437CAEB0.9060202@pldrouin.net> <yge7jb0x28z.wl%ume@mahoroba.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hajimu UMEMOTO wrote:
> Hi,
> 
> 
>>>>>>On Thu, 17 Nov 2005 11:24:16 -0500
>>>>>>Pierre-Luc Drouin <pldrouin@pldrouin.net> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43837A34.1030900>