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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.