Re: pps_capture() and pps_fetch()
- Reply: Konstantin Belousov : "Re: pps_capture() and pps_fetch()"
- In reply to: Poul-Henning Kamp: "Re: pps_capture() and pps_fetch()"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 01 Jun 2022 11:03:19 UTC
Hello Poul-Henning, On 01/06/2022 09:25, Poul-Henning Kamp wrote: > Sebastian Huber writes: > >> I try to understand how the PPS synchronization works in FreeBSD. It >> seems that pps_capture() starts a transaction and pps_event() completes >> the transaction if nothing interfered in the meantime. > The answer to most of your questions are in ./i386/i386/elan-mmcr.c > > The PPS capture in the Soekris 4501 used two hardware counters, counting at the same rate. > > The first of the two were the timecounter, the other was started by the hardware signal. > > Sometime later the hardware signals interrupt processing would happen. > > By reading read both counters as close to instantaneously as possible, and compensated for the interrupt latency by subtracting the event-started counter from the timecounter. > > (See also:http://phk.freebsd.dk/soekris/pps/) thanks for the background information. What I don't understand is why the th_generation is checked three times (pps_capture(): 1, pps_event(): 2) and not only once in pps_event() right before we use the captured time. -- 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ünchen Registernummer: HRB 157899 Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler Unsere Datenschutzerklärung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/