On 27.05.22 11:49, gabriel.moy...@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.hu...@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/
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel