Re: Getting time in realtime kernel driver

Jan Kiszka <[email protected]>
Newsgroups dev.linux.lists.xenomai
Message-ID <[email protected]>
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

-- 
Siemens AG, Foundational Technologies
Linux Expert Center
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.