AW: [PATCH 1/1] kern_tc.c: th_generation starts with 1 after overflow for single-core
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri May 27 11:47:17 UTC 2022
On 27.05.22 11:49, Gabriel.Moyano at dlr.de wrote:
>> On 27.05.22 10:51, Sebastian Huber wrote:
>>> Hello Gabriel,
>>>
>>> the uniprocessor version uses an optimization at the reader side:
>>>
>>> #if defined(RTEMS_SMP)
>>> } while (gen == 0 || gen != th->th_generation); #else
>>> } while (gen != th->th_generation); #endif
>>>
>>> This is possible since the windup happens with interrupts disabled. I
>>> guess you need this optimization somewhere in the PPS/NTP code.
> Yes, you are right that is for the PPS code.
> The value of th_generation is saved in pps_capture() and I shouldn't add a while waiting it to be different that 0 there.
> If its value is 0, then the pps_event() returns early.
> This is something that could happen in very particular circumstance (pps event happens when the th_generation is 0).
In uniprocessor configurations, we don't need the 0 special value. It is
only required in SMP configurations since one processor may observe a
timecounter update which is in progress on another processor.
>
>>> Could you please add the details to the commit message and not the
>>> cover letter. The cover letter is not committed.
> Sure.
>
>>> Could you please have a look at:
>>>
>>> https://lists.rtems.org/pipermail/devel/2022-May/071609.html
>> It would be also good to have a test case for the problem you are trying to fix. The PPS/NTP code is a bit complicated and the test
>> coverage of this area is far below the score average.
>>
> One way to test this is waiting to the overflow of th_generation, do you think that it is feasibly to add such a test if its duration is a long time?
You may have a look at the
testsuites/validation/tc-timecounter-get-smp.c test code for a hack how
you can access the th_generation. If you want to use this hack a second
time, then the struct timehand definition should move to a test header file.
>
> Btw. Could you check thishttps://lists.rtems.org/pipermail/devel/2022-May/071662.html ?
Thanks, I checked it in.
--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
More information about the devel
mailing list