Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Oct 2021 09:42:56 +0200
From:      Sebastian Huber <sebastian.huber@embedded-brains.de>
To:        Ian Lepore <ian@freebsd.org>, Konstantin Belousov <kostikbel@gmail.com>
Cc:        Warner Losh <imp@bsdimp.com>, FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Re: Why was the timehands_count sysctl added?
Message-ID:  <cf89b4a9-321b-29ae-3314-41707cb009a0@embedded-brains.de>
In-Reply-To: <1e7b3766007ed6e35ff9f75f680b2e786b4355f9.camel@freebsd.org>
References:  <2d1d2a6d-ec6b-7f52-8af3-09a833c52820@embedded-brains.de> <YWHzoTpcZTQcHVUw@kib.kiev.ua> <CANCZdfr7_jb07%2BAft_uo2F8L9hDr9iABaDkANioJhi-kQXQeoQ@mail.gmail.com> <a55f253a5cfb2affc5163913e30edb6443d6b4e9.camel@freebsd.org> <YWMlRS1hBYyKF9Mi@kib.kiev.ua> <1e7b3766007ed6e35ff9f75f680b2e786b4355f9.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 10/10/2021 19:44, Ian Lepore wrote:
> On Sun, 2021-10-10 at 20:39 +0300, Konstantin Belousov wrote:
>> On Sun, Oct 10, 2021 at 11:15:39AM -0600, Ian Lepore wrote:
>>> On Sat, 2021-10-09 at 14:54 -0600, Warner Losh wrote:
>>>> On Sat, Oct 9, 2021, 1:56 PM Konstantin Belousov
>>>> <kostikbel@gmail.com>
>>>> wrote:
>>>>
>>>>> On Sat, Oct 09, 2021 at 09:41:28PM +0200, Sebastian Huber
>>>>> wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I synchronize currently the port of the FreeBSD timecounters
>>>>>> to
>>>>>> RTEMS and
>>>>>> came across a change in 2019 which I do not understand. Some
>>>>>> time
>>>>>> ago the
>>>>>> timehands were reduced from 10 to two:
>>>>>>
>>>>>> https://reviews.freebsd.org/D7302
>>>>>>
>>>>>> In 2019 this changed again to be up to 16:
>>>>>>
>>>>>> https://reviews.freebsd.org/D21563
>>>>> This review did not changed it back to 16, the default value is
>>>>> still 2.
>>>>> It allows to bump the number of used timehands, but normally
>>>>> systems run
>>>>> with only 2.
>>>>>
>>>>>> The corresponding sysctl is not documented:
>>>>>>
>>>>>> https://www.freebsd.org/cgi/man.cgi?query=3Dtimecounters&sektion=3D=
4
>>>>>>
>>>>>> Does someone know why this sysctl to select the count of
>>>>>> timehands was
>>>>>> added? Is this a performance optimization for some systems?
>>>>> To allow for experimentation, and to satisfy some requests
>>>>> where
>>>>> people
>>>>> wanted to have more that 2 timehands.
>>>>>
>>>> When would someone want that? What's the use case?
>>>>
>>>> Warner
>>>>
>>> One known usecase is a single-cpu (non-SMP) system that uses a PPS
>>> signal.=C2=A0 With only two timehands, a pps pulse that arrives while
>>> the
>>> system is in an idle-sleep (wait-for-interrupt) state will switch
>>> timehands too many times between the wakeup and the capture and
>>> trying
>>> to use the capture data, so that the th generation count never
>>> matches,
>>> and in effect you never capture a PPS pulse.=C2=A0 I found that on a
>>> BeagleBone system.=C2=A0 It takes a minimum of 3 timehands for it to
>>> work
>>> right.
>> So should this system automatically adjust the number of timehands?
>> There were no similar complaints on UP i386, at least I did not see
>> them.
>>
> I think a required part of the failure scenario was a PPS driver that
> used the hardware-capture feature (the hardware latches a counter on
> the pps pulse and timecounter->tc_poll_pps() gets called to retrieve
> the latched value).  i386 hardware doesn't do that.  The rareness of
> the hardware that works that way (and the additional rareness of people
> using that hardware that way) I think was part of why you made it
> tunable rather than just increasing the timehands count for everyone,
> back when I reported this scenario.

Thanks for your insights. So in general the tunable timehands count is=20
an inexpensive knob which may fix issues under some very specific=20
conditions.

--=20
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht M=C3=BCnchen
Registernummer: HRB 157899
Vertretungsberechtigte Gesch=C3=A4ftsf=C3=BChrer: Peter Rasmussen, Thomas=
 D=C3=B6rfler
Unsere Datenschutzerkl=C3=A4rung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cf89b4a9-321b-29ae-3314-41707cb009a0>