Broken APIC on my laptop or bug in FreeBSD?
Giorgos Keramidas
keramida at freebsd.org
Tue Jul 22 00:53:30 UTC 2008
On Mon, 21 Jul 2008 17:27:36 -0400, John Baldwin <jhb at freebsd.org> wrote:
> On Saturday 19 July 2008 09:00:22 pm Giorgos Keramidas wrote:
>> Well, I did try the following after booting with both CPUs in C1 state:
>>
>> (1) hw.acpi.cpu.cx_lowest: C1
>> dev.cpu.0.cx_lowest: C1
>> dev.cpu.0.cx_lowest: C2
>>
>> I left the laptop to boot with both CPUs in C1, and then after a
>> while I manually set dev.cpu.0.cx_lowest=C2. This setup seems
>> ok. I can see processes being scheduled on both cpu.0 and cpu.1
>> and there's no "freeze" when the laptop is idle.
>>
>> (2) hw.acpi.cpu.cx_lowest: C1
>> dev.cpu.0.cx_lowest: C1
>> dev.cpu.0.cx_lowest: C3
>>
>> Same as above, only this time I set dev.cpu.0.cx_lowest=C3.
>>
>> (3) hw.acpi.cpu.cx_lowest: C1
>> dev.cpu.0.cx_lowest: C2
>> dev.cpu.0.cx_lowest: C2
>>
>> Not ok. When the laptop stays idle for some time, it starts
>> getting too slow to type stuff in a terminal, and after a while
>> I get `calcru: runtime went backwards' messages.
>>
>> I don't know if being scheduled on cpu.1 when it is in C2/C3 state has
>> any measurable impact on user processes. Should I leave the settings to
>> option (1) or (2) above for a while? Is there any way to find out if
>> this causes any problems?
>
> My guess is that when both CPUs are in C2 or lower, the local APIC
> timer is getting shut off and that is why your box is no longer
> responsive. Fixing this is doable, but not very easy currently.
Thanks! I can live with at least one core being in C1.
It was mostly an annoying thing that "used to work" and seemed to be
broken when I had to replace the old dead laptop. Thanks to Alexandre's
excellent help, I can keep working now.
If there's any sort of patch or experimental thing I can test, or you
happen to think of something that would be nice to try, count me in :)
More information about the freebsd-current
mailing list