Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Aug 2011 18:23:46 -0400
From:      Joe Schaefer <joesuf4@gmail.com>
To:        Alexander Motin <mav@freebsd.org>
Cc:        hackers@freebsd.org
Subject:   Re: Clock stalls on Sabertooth 990FX
Message-ID:  <CAOzHqcK1PbqV5S5tFG6uAwn5wGj0EXW67YSfw%2B8NRpkUC5dWqw@mail.gmail.com>
In-Reply-To: <CAOzHqcKJRSDZ6uUtdFN8Wovi5L70YM=EBzdyy2p63qYbJqH%2BwA@mail.gmail.com>
References:  <CAOzHqcJMWrO1Q-v8WpzxnyB0-TMQvVaBC9WQ6Qf_CkK_FtT3VA@mail.gmail.com> <mailpost.1313435952.4224912.75598.mailing.freebsd.hackers@FreeBSD.cs.nctu.edu.tw> <4E498326.2060308@FreeBSD.org> <CAOzHqcK3HMY=-7iNX05W43B=W5NP_bDWcJdDZ%2BEXk_Z%2BAdfAOw@mail.gmail.com> <4E4988F0.7060000@FreeBSD.org> <CAOzHqcK1_vkG6s7%2BgLGKx_kw7o1BVmyYKdxgK07FvadPMQkVUw@mail.gmail.com> <4E498E3D.7050100@FreeBSD.org> <CAOzHqcKJRSDZ6uUtdFN8Wovi5L70YM=EBzdyy2p63qYbJqH%2BwA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Aug 15, 2011 at 5:47 PM, Joe Schaefer <joesuf4@gmail.com> wrote:
> On Mon, Aug 15, 2011 at 5:23 PM, Alexander Motin <mav@freebsd.org> wrote:
>> On 16.08.2011 00:13, Joe Schaefer wrote:
>>>
>>> On Mon, Aug 15, 2011 at 5:00 PM, Alexander Motin<mav@freebsd.org> =C2=
=A0wrote:
>>>>
>>>> On 15.08.2011 23:57, Joe Schaefer wrote:
>>>>>
>>>>> On Mon, Aug 15, 2011 at 4:35 PM, Alexander Motin<mav@freebsd.org>
>>>>> =C2=A0wrote:
>>>>>>
>>>>>> On 15.08.2011 22:18, Joe Schaefer wrote:
>>>>>>>
>>>>>>> On Mon, Aug 15, 2011 at 9:31 AM, Joe Schaefer<joesuf4@gmail.com>
>>>>>>> =C2=A0wrote:
>>>>>>>>
>>>>>>>> On Mon, Aug 15, 2011 at 8:32 AM, Andriy Gapon<avg@freebsd.org>
>>>>>>>> =C2=A0wrote:
>>>>>>>>>
>>>>>>>>> on 13/08/2011 20:16 Joe Schaefer said the following:
>>>>>>>>>>
>>>>>>>>>> Brand new machine with a Phenom II X6 1100T and under chronic lo=
ad
>>>>>>>>>> the clock will stop running periodically until the machine
>>>>>>>>>> eventually
>>>>>>>>>> completely
>>>>>>>>>> freezes. =C2=A0Note: during these stalls the kernel is still run=
ning,
>>>>>>>>>> the
>>>>>>>>>> machine is still
>>>>>>>>>> mostly responsive, it's just that the clock is frozen in time.
>>>>>>>>>>
>>>>>>>>>> I've disabled Turbo mode in the bios and toyed with just about
>>>>>>>>>> every
>>>>>>>>>> other setting but nothing seems to resolve this problem. =C2=A0B=
ased on
>>>>>>>>>> the
>>>>>>>>>> behavior
>>>>>>>>>> of the machine (just making buildworld will eventually kill it,
>>>>>>>>>> upping
>>>>>>>>>> the -j flag
>>>>>>>>>> just kills it faster), I'm guessing it has something to do with =
the
>>>>>>>>>> Digi+ VRM features
>>>>>>>>>> but again nothing I've tried modifying in the bios seems to help=
.
>>>>>>>>>>
>>>>>>>>>> I've tried both 8.2-RELEASE and FreeBSD 9 (head). =C2=A0Running =
head now
>>>>>>>>>> with
>>>>>>>>>> a dtrace enabled kernel.
>>>>>>>>>>
>>>>>>>>>> Suggestions?
>>>>>>>>>
>>>>>>>>> On head, start with checking what source is used for driving cloc=
ks:
>>>>>>>>> sysctl kern.eventtimer
>>>>>>>>
>>>>>>>> % sysctl kern.eventtimer =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0[master]
>>>>>>>> kern.eventtimer.choice: HPET(450) HPET1(450) HPET2(450) LAPIC(400)
>>>>>>>> i8254(100) RTC(0)
>>>>>>>> kern.eventtimer.et.LAPIC.flags: 15
>>>>>>>> kern.eventtimer.et.LAPIC.frequency: 0
>>>>>>>> kern.eventtimer.et.LAPIC.quality: 400
>>>>>>>> kern.eventtimer.et.HPET.flags: 3
>>>>>>>> kern.eventtimer.et.HPET.frequency: 14318180
>>>>>>>> kern.eventtimer.et.HPET.quality: 450
>>>>>>>> kern.eventtimer.et.HPET1.flags: 3
>>>>>>>> kern.eventtimer.et.HPET1.frequency: 14318180
>>>>>>>> kern.eventtimer.et.HPET1.quality: 450
>>>>>>>> kern.eventtimer.et.HPET2.flags: 3
>>>>>>>> kern.eventtimer.et.HPET2.frequency: 14318180
>>>>>>>> kern.eventtimer.et.HPET2.quality: 450
>>>>>>>> kern.eventtimer.et.i8254.flags: 1
>>>>>>>> kern.eventtimer.et.i8254.frequency: 1193182
>>>>>>>> kern.eventtimer.et.i8254.quality: 100
>>>>>>>> kern.eventtimer.et.RTC.flags: 17
>>>>>>>> kern.eventtimer.et.RTC.frequency: 32768
>>>>>>>> kern.eventtimer.et.RTC.quality: 0
>>>>>>>> kern.eventtimer.periodic: 0
>>>>>>>> kern.eventtimer.timer: HPET
>>>>>>>
>>>>>>> =C2=A0 =C2=A0^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>>> Changing this to "i8254" seems to have resolved the stalls.
>>>>>>> I'm running buildworld -j12 without issue. =C2=A0More than willing
>>>>>>> to test out a patch or two against head if anyone's still
>>>>>>> interested, otherwise I've thrown the change into loader.conf
>>>>>>> and will move along quietly.
>>>>>>
>>>>>> 8.2-RELEASE you've mentioned doesn't have event timers subsystem and
>>>>>> HPET
>>>>>> timer driver. That makes me think it is strange at least. Can you tr=
y
>>>>>> also
>>>>>> LAPIC timer and do alike experiments with kern.timeocunter?
>>>>>
>>>>> My problems with 8.2-RELEASE may have been network based. =C2=A0I don=
't
>>>>> recall
>>>>> precisely if the clock was stalling there, my guess is no based on
>>>>> what you wrote.
>>>>>
>>>>> I'll test LAPIC next ... so far so good. =C2=A0Just so I'm clear, you=
'd
>>>>> like me to tweak
>>>>> kern.timecounter.hardware as well? =C2=A0(Currently it's HPET).
>>>>
>>>> Yes. Instead. Ticking clock depends on both timecounter and eventtimer=
.
>>>
>>> Haven't found a combination that hangs my machine other than with the
>>> eventtimer at HPET.
>>
>> I mean trying eventtimer HPET and different timecounters.
>
> Doesn't seem to help. =C2=A0Eventtimer HPET and timecounter ACPI-fast sti=
ll stalls.
>
>>
>> If changing timecounter won't help, try please this patch:
>>
>> --- acpi_hpet.c.prev =C2=A0 =C2=A02010-12-25 11:28:45.000000000 +0200
>> +++ acpi_hpet.c 2011-05-11 14:30:59.000000000 +0300
>> @@ -190,7 +190,7 @@ restart:
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bus_write_4(sc->m=
em_res, HPET_TIMER_COMPARATOR(t->num),
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0t->=
next);
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0}
>> - =C2=A0 =C2=A0 =C2=A0 if (fdiv < 5000) {
>> + =C2=A0 =C2=A0 =C2=A0 if (1 || fdiv < 5000) {
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bus_read_4(sc->me=
m_res, HPET_TIMER_COMPARATOR(t->num));
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0now =3D bus_read_=
4(sc->mem_res, HPET_MAIN_COUNTER);
>>
>> --
>> Alexander Motin
>
> Will do next.
>

Patch applied. Running with HPET eventtimer and no stalls during
make buildworld -j12.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOzHqcK1PbqV5S5tFG6uAwn5wGj0EXW67YSfw%2B8NRpkUC5dWqw>