Re: Getting time in realtime kernel driver
Philippe Gerum <[email protected]>
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <[email protected]> |
Jan Kiszka <[email protected]> writes: > On 12.05.26 18:20, François Legal wrote: >> Hello, >> >> I think I already asked about the same question some time ago, but I think I did not get a working answer, so here I am again. >> >> On xenomai 3.2 + Ipipe (linux 5.4), I need to be able to get in a RT driver the current linux wall clock (impacted from NTP or PTP). >> I found out I get the correct value with ktime_get_real_ts64. Was willing to use __ktime_get_real_seconds but this one is not precise enought for my application. >> >> So my question is : is it safe to use ktime_get_real_ts64 from within an RT driver ioctl function, and if not, which API in xenomai gives the exact same time as this one ? >> > > Nope, it's not safe, neither under legacy I-pipe (your kernel is dead > BTW) nor latest dovetail. Userspace access to the wallclock was hardened > for out-of-band accesses, but in-kernel had no use case, thus was never > considered. > > For userland, the easiest answer is moving to a dovetail kernel and then > using CLOCK_REALTIME. Over I-pipe, we had to model this via a separate > clock named CLOCK_HOST_REALTIME. > > Jan This may help: "ktime_get_real_fast_ns: - NMI safe and fast access to clock realtime." Caveat: with this variant, timestamp is not guaranteed to be monotonic across an update. -- Philippe.