All of lore.kernel.org
 help / color / mirror / Atom feed
* Difference between Xenomai timer and Linux clock
@ 2022-05-27 13:39 Prasanna Kannan
  2022-05-30  0:55 ` Chen, Hongzhan
  0 siblings, 1 reply; 5+ messages in thread
From: Prasanna Kannan @ 2022-05-27 13:39 UTC (permalink / raw)
  To: xenomai

Hello Everybody,

I am comparing the Xenomai Timer(rt_timer_read()) and clock_gettime() with
CLOCK_REALTIME and found that the two drift at roughly 100 us/s
Here is the snippet from my code:

init():
clock_gettime(CLOCK_REALTIME, &ts_start);
rtime_start = rt_timer_read();

runtime():
clk_xenotime = (rt_timer_read() - rtime_start) * 1e-9;
clock_gettime(CLOCK_REALTIME, &ts);
clk_rttime = (ts.tv_sec - ts_start.tv_sec) + (ts.tv_nsec -
ts_start.tv_nsec) * 1e-9;
delta = clk_rttime - clk_xenotime

The observation is that the delta is around 100us/s
...
ClockGetTime:2.588435s, rt_timer_read:2.588167s, delta:0.000268s
ClockGetTime:3.588533s, rt_timer_read:3.588161s, delta:0.000372s
ClockGetTime:4.588671s, rt_timer_read:4.588196s, delta:0.000475s
...

The Linux clock is not corrected via NTP/PTP, thus I am wondering why they
are drifting in this way.

Some Information about my setup:
Xenomai/cobalt v3.1
Linux rtdonau 4.19.115-ipipe #54 SMP PREEMPT Wed Oct 13 12:16:56 CEST 2021
x86_64 GNU/Linux
Kernel parameters: intel_idle.max_cstate=0 vga=0x317 ip=dhcp root=/dev/nfs
nfsroot=10.0.0.1:/opt/xyz/xeno_rt,tcp,nfsvers=3 BOOT_IMAGE=xeno10.2 
I-pipe release #12 detected
Cobalt core 3.1 detected
Compiler: gcc version 7.5.0 (GCC) 
Build args: --prefix=/opt/xenomai-3.1 --enable-smp --enable-pshared
--enable-dlopen-libs

The hardware used is an Intel SBC based on Core i7-4700EQ CPU @ 2.40GHz

Thank you in Advance.

Best Regards
Prasanna



^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: Difference between Xenomai timer and Linux clock
  2022-05-27 13:39 Difference between Xenomai timer and Linux clock Prasanna Kannan
@ 2022-05-30  0:55 ` Chen, Hongzhan
  2022-05-30  7:33   ` AW: " Prasanna Kannan
  0 siblings, 1 reply; 5+ messages in thread
From: Chen, Hongzhan @ 2022-05-30  0:55 UTC (permalink / raw)
  To: Prasanna Kannan, xenomai



>-----Original Message-----
>From: Xenomai <xenomai-bounces@xenomai.org> On Behalf Of Prasanna Kannan via Xenomai
>Sent: Friday, May 27, 2022 9:39 PM
>To: xenomai@xenomai.org
>Subject: Difference between Xenomai timer and Linux clock
>
>Hello Everybody,
>
>I am comparing the Xenomai Timer(rt_timer_read()) and clock_gettime() with
>CLOCK_REALTIME and found that the two drift at roughly 100 us/s
>Here is the snippet from my code:
>
>init():
>clock_gettime(CLOCK_REALTIME, &ts_start);
>rtime_start = rt_timer_read();
>
>runtime():
>clk_xenotime = (rt_timer_read() - rtime_start) * 1e-9;
>clock_gettime(CLOCK_REALTIME, &ts);
>clk_rttime = (ts.tv_sec - ts_start.tv_sec) + (ts.tv_nsec -
>ts_start.tv_nsec) * 1e-9;
>delta = clk_rttime - clk_xenotime
>
>The observation is that the delta is around 100us/s
>...
>ClockGetTime:2.588435s, rt_timer_read:2.588167s, delta:0.000268s
>ClockGetTime:3.588533s, rt_timer_read:3.588161s, delta:0.000372s
>ClockGetTime:4.588671s, rt_timer_read:4.588196s, delta:0.000475s
>...
>
>The Linux clock is not corrected via NTP/PTP, thus I am wondering why they
>are drifting in this way.
>
>Some Information about my setup:
>Xenomai/cobalt v3.1
>Linux rtdonau 4.19.115-ipipe #54 SMP PREEMPT Wed Oct 13 12:16:56 CEST 2021
>x86_64 GNU/Linux
>Kernel parameters: intel_idle.max_cstate=0 vga=0x317 ip=dhcp root=/dev/nfs
>nfsroot=10.0.0.1:/opt/xyz/xeno_rt,tcp,nfsvers=3 BOOT_IMAGE=xeno10.2 
>I-pipe release #12 detected
>Cobalt core 3.1 detected
>Compiler: gcc version 7.5.0 (GCC) 
>Build args: --prefix=/opt/xenomai-3.1 --enable-smp --enable-pshared
>--enable-dlopen-libs
>
>The hardware used is an Intel SBC based on Core i7-4700EQ CPU @ 2.40GHz

One of what we found is that there is delayed work which would refine tsc clock after Xenomai init and that cause
Clock difference which may result in such drift.  The patchset "[Cobalt Xenoami3.1 PATCH 0/2] notify Xenomai udpated clockfreq."
I sent in community at 5/27 try to fix what we found.  Could you send your complete linux dmsg to check if our issues is the same?

Regards

Hongzhan Chen
>
>Thank you in Advance.
>
>Best Regards
>Prasanna
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* AW: Difference between Xenomai timer and Linux clock
  2022-05-30  0:55 ` Chen, Hongzhan
@ 2022-05-30  7:33   ` Prasanna Kannan
  2022-05-30  8:44     ` Chen, Hongzhan
  0 siblings, 1 reply; 5+ messages in thread
From: Prasanna Kannan @ 2022-05-30  7:33 UTC (permalink / raw)
  To: Chen, Hongzhan, xenomai

> -----Ursprüngliche Nachricht-----
> Von: Chen, Hongzhan [mailto:hongzhan.chen@intel.com]
> Gesendet: Montag, 30. Mai 2022 02:56
> An: Prasanna Kannan <prasanna.kannan@ipg-automotive.com>;
> xenomai@xenomai.org
> Betreff: RE: Difference between Xenomai timer and Linux clock
>
>
>
> >-----Original Message-----
> >From: Xenomai <xenomai-bounces@xenomai.org> On Behalf Of Prasanna
> >Kannan via Xenomai
> >Sent: Friday, May 27, 2022 9:39 PM
> >To: xenomai@xenomai.org
> >Subject: Difference between Xenomai timer and Linux clock
> >
> >Hello Everybody,
> >
> >I am comparing the Xenomai Timer(rt_timer_read()) and clock_gettime()
> >with CLOCK_REALTIME and found that the two drift at roughly 100 us/s
> >Here is the snippet from my code:
> >
> >init():
> >clock_gettime(CLOCK_REALTIME, &ts_start); rtime_start =
> >rt_timer_read();
> >
> >runtime():
> >clk_xenotime = (rt_timer_read() - rtime_start) * 1e-9;
> >clock_gettime(CLOCK_REALTIME, &ts); clk_rttime = (ts.tv_sec -
> >ts_start.tv_sec) + (ts.tv_nsec -
> >ts_start.tv_nsec) * 1e-9;
> >delta = clk_rttime - clk_xenotime
> >
> >The observation is that the delta is around 100us/s ...
> >ClockGetTime:2.588435s, rt_timer_read:2.588167s, delta:0.000268s
> >ClockGetTime:3.588533s, rt_timer_read:3.588161s, delta:0.000372s
> >ClockGetTime:4.588671s, rt_timer_read:4.588196s, delta:0.000475s ...
> >
> >The Linux clock is not corrected via NTP/PTP, thus I am wondering why
> >they are drifting in this way.
> >
> >Some Information about my setup:
> >Xenomai/cobalt v3.1
> >Linux rtdonau 4.19.115-ipipe #54 SMP PREEMPT Wed Oct 13 12:16:56 CEST
> >2021
> >x86_64 GNU/Linux
> >Kernel parameters: intel_idle.max_cstate=0 vga=0x317 ip=dhcp
> >root=/dev/nfs
> >nfsroot=10.0.0.1:/opt/xyz/xeno_rt,tcp,nfsvers=3 BOOT_IMAGE=xeno10.2
> >I-pipe release #12 detected Cobalt core 3.1 detected
> >Compiler: gcc version 7.5.0 (GCC)
> >Build args: --prefix=/opt/xenomai-3.1 --enable-smp --enable-pshared
> >--enable-dlopen-libs
> >
> >The hardware used is an Intel SBC based on Core i7-4700EQ CPU @ 2.40GHz
>
> One of what we found is that there is delayed work which would refine
tsc
> clock after Xenomai init and that cause Clock difference which may
result in
> such drift.  The patchset "[Cobalt Xenoami3.1 PATCH 0/2] notify Xenomai
> udpated clockfreq."
> I sent in community at 5/27 try to fix what we found.  Could you send
your
> complete linux dmsg to check if our issues is the same?
>
Yes, I can confirm this as I see similar messages in my linux dmesg:
[    0.000000] tsc: Detected 2394.479 MHz processor
[    1.714630] tsc: Refined TSC clocksource calibration: 2394.455 MHz

[rtdonau-~] !) cat /sys/module/xenomai/parameters/clockfreq
2394479000
Attached my complete  dmesg.

> Regards
>
> Hongzhan Chen
> >
> >Thank you in Advance.
> >
> >Best Regards
> >Prasanna
> >
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: dmesg_rtdonau.txt
URL: <http://xenomai.org/pipermail/xenomai/attachments/20220530/e5d2e114/attachment.txt>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: Difference between Xenomai timer and Linux clock
  2022-05-30  7:33   ` AW: " Prasanna Kannan
@ 2022-05-30  8:44     ` Chen, Hongzhan
  2022-05-30  9:54       ` AW: " Prasanna Kannan
  0 siblings, 1 reply; 5+ messages in thread
From: Chen, Hongzhan @ 2022-05-30  8:44 UTC (permalink / raw)
  To: Prasanna Kannan, xenomai



>-----Original Message-----
>From: Prasanna Kannan <prasanna.kannan@ipg-automotive.com> 
>Sent: Monday, May 30, 2022 3:33 PM
>To: Chen, Hongzhan <hongzhan.chen@intel.com>; xenomai@xenomai.org
>Subject: AW: Difference between Xenomai timer and Linux clock
>
>> -----Ursprüngliche Nachricht-----
>> Von: Chen, Hongzhan [mailto:hongzhan.chen@intel.com]
>> Gesendet: Montag, 30. Mai 2022 02:56
>> An: Prasanna Kannan <prasanna.kannan@ipg-automotive.com>;
>> xenomai@xenomai.org
>> Betreff: RE: Difference between Xenomai timer and Linux clock
>>
>>
>>
>> >-----Original Message-----
>> >From: Xenomai <xenomai-bounces@xenomai.org> On Behalf Of Prasanna
>> >Kannan via Xenomai
>> >Sent: Friday, May 27, 2022 9:39 PM
>> >To: xenomai@xenomai.org
>> >Subject: Difference between Xenomai timer and Linux clock
>> >
>> >Hello Everybody,
>> >
>> >I am comparing the Xenomai Timer(rt_timer_read()) and clock_gettime()
>> >with CLOCK_REALTIME and found that the two drift at roughly 100 us/s
>> >Here is the snippet from my code:
>> >
>> >init():
>> >clock_gettime(CLOCK_REALTIME, &ts_start); rtime_start =
>> >rt_timer_read();
>> >
>> >runtime():
>> >clk_xenotime = (rt_timer_read() - rtime_start) * 1e-9;
>> >clock_gettime(CLOCK_REALTIME, &ts); clk_rttime = (ts.tv_sec -
>> >ts_start.tv_sec) + (ts.tv_nsec -
>> >ts_start.tv_nsec) * 1e-9;
>> >delta = clk_rttime - clk_xenotime
>> >
>> >The observation is that the delta is around 100us/s ...
>> >ClockGetTime:2.588435s, rt_timer_read:2.588167s, delta:0.000268s
>> >ClockGetTime:3.588533s, rt_timer_read:3.588161s, delta:0.000372s
>> >ClockGetTime:4.588671s, rt_timer_read:4.588196s, delta:0.000475s ...
>> >
>> >The Linux clock is not corrected via NTP/PTP, thus I am wondering why
>> >they are drifting in this way.
>> >
>> >Some Information about my setup:
>> >Xenomai/cobalt v3.1
>> >Linux rtdonau 4.19.115-ipipe #54 SMP PREEMPT Wed Oct 13 12:16:56 CEST
>> >2021
>> >x86_64 GNU/Linux
>> >Kernel parameters: intel_idle.max_cstate=0 vga=0x317 ip=dhcp
>> >root=/dev/nfs
>> >nfsroot=10.0.0.1:/opt/xyz/xeno_rt,tcp,nfsvers=3 BOOT_IMAGE=xeno10.2
>> >I-pipe release #12 detected Cobalt core 3.1 detected
>> >Compiler: gcc version 7.5.0 (GCC)
>> >Build args: --prefix=/opt/xenomai-3.1 --enable-smp --enable-pshared
>> >--enable-dlopen-libs
>> >
>> >The hardware used is an Intel SBC based on Core i7-4700EQ CPU @ 2.40GHz
>>
>> One of what we found is that there is delayed work which would refine
>tsc
>> clock after Xenomai init and that cause Clock difference which may
>result in
>> such drift.  The patchset "[Cobalt Xenoami3.1 PATCH 0/2] notify Xenomai
>> udpated clockfreq."
>> I sent in community at 5/27 try to fix what we found.  Could you send
>your
>> complete linux dmsg to check if our issues is the same?
>>
>Yes, I can confirm this as I see similar messages in my linux dmesg:
>[    0.000000] tsc: Detected 2394.479 MHz processor
>[    1.714630] tsc: Refined TSC clocksource calibration: 2394.455 MHz

It seems there is similar refined tsc after xenomai init which is quite different from what Xenomai is using 

Could you do a quick test with passing xenomai.clockfreq=2394455000 in commandline to force xenomai to use refined TSC clock freq 
and then run your drift test again to check if there is improvement? If there is improvement , I think my patchset may work.

Regards

Hongzhan Chen

>
>[rtdonau-~] !) cat /sys/module/xenomai/parameters/clockfreq
>2394479000
>Attached my complete  dmesg.
>
>> Regards
>>
>> Hongzhan Chen
>> >
>> >Thank you in Advance.
>> >
>> >Best Regards
>> >Prasanna
>> >


^ permalink raw reply	[flat|nested] 5+ messages in thread

* AW: Difference between Xenomai timer and Linux clock
  2022-05-30  8:44     ` Chen, Hongzhan
@ 2022-05-30  9:54       ` Prasanna Kannan
  0 siblings, 0 replies; 5+ messages in thread
From: Prasanna Kannan @ 2022-05-30  9:54 UTC (permalink / raw)
  To: Chen, Hongzhan, xenomai

> -----Ursprüngliche Nachricht-----
> Von: Chen, Hongzhan [mailto:hongzhan.chen@intel.com]
> Gesendet: Montag, 30. Mai 2022 10:44
> An: Prasanna Kannan <prasanna.kannan@ipg-automotive.com>;
> xenomai@xenomai.org
> Betreff: RE: Difference between Xenomai timer and Linux clock
>
>
>
> >-----Original Message-----
> >From: Prasanna Kannan <prasanna.kannan@ipg-automotive.com>
> >Sent: Monday, May 30, 2022 3:33 PM
> >To: Chen, Hongzhan <hongzhan.chen@intel.com>; xenomai@xenomai.org
> >Subject: AW: Difference between Xenomai timer and Linux clock
> >
> >> -----Ursprüngliche Nachricht-----
> >> Von: Chen, Hongzhan [mailto:hongzhan.chen@intel.com]
> >> Gesendet: Montag, 30. Mai 2022 02:56
> >> An: Prasanna Kannan <prasanna.kannan@ipg-automotive.com>;
> >> xenomai@xenomai.org
> >> Betreff: RE: Difference between Xenomai timer and Linux clock
> >>
> >>
> >>
> >> >-----Original Message-----
> >> >From: Xenomai <xenomai-bounces@xenomai.org> On Behalf Of
> Prasanna
> >> >Kannan via Xenomai
> >> >Sent: Friday, May 27, 2022 9:39 PM
> >> >To: xenomai@xenomai.org
> >> >Subject: Difference between Xenomai timer and Linux clock
> >> >
> >> >Hello Everybody,
> >> >
> >> >I am comparing the Xenomai Timer(rt_timer_read()) and
> >> >clock_gettime() with CLOCK_REALTIME and found that the two drift at
> >> >roughly 100 us/s Here is the snippet from my code:
> >> >
> >> >init():
> >> >clock_gettime(CLOCK_REALTIME, &ts_start); rtime_start =
> >> >rt_timer_read();
> >> >
> >> >runtime():
> >> >clk_xenotime = (rt_timer_read() - rtime_start) * 1e-9;
> >> >clock_gettime(CLOCK_REALTIME, &ts); clk_rttime = (ts.tv_sec -
> >> >ts_start.tv_sec) + (ts.tv_nsec -
> >> >ts_start.tv_nsec) * 1e-9;
> >> >delta = clk_rttime - clk_xenotime
> >> >
> >> >The observation is that the delta is around 100us/s ...
> >> >ClockGetTime:2.588435s, rt_timer_read:2.588167s, delta:0.000268s
> >> >ClockGetTime:3.588533s, rt_timer_read:3.588161s, delta:0.000372s
> >> >ClockGetTime:4.588671s, rt_timer_read:4.588196s, delta:0.000475s ...
> >> >
> >> >The Linux clock is not corrected via NTP/PTP, thus I am wondering
> >> >why they are drifting in this way.
> >> >
> >> >Some Information about my setup:
> >> >Xenomai/cobalt v3.1
> >> >Linux rtdonau 4.19.115-ipipe #54 SMP PREEMPT Wed Oct 13 12:16:56
> >> >CEST
> >> >2021
> >> >x86_64 GNU/Linux
> >> >Kernel parameters: intel_idle.max_cstate=0 vga=0x317 ip=dhcp
> >> >root=/dev/nfs
> >> >nfsroot=10.0.0.1:/opt/xyz/xeno_rt,tcp,nfsvers=3
> BOOT_IMAGE=xeno10.2
> >> >I-pipe release #12 detected Cobalt core 3.1 detected
> >> >Compiler: gcc version 7.5.0 (GCC)
> >> >Build args: --prefix=/opt/xenomai-3.1 --enable-smp --enable-pshared
> >> >--enable-dlopen-libs
> >> >
> >> >The hardware used is an Intel SBC based on Core i7-4700EQ CPU @
> >> >2.40GHz
> >>
> >> One of what we found is that there is delayed work which would refine
> >tsc
> >> clock after Xenomai init and that cause Clock difference which may
> >result in
> >> such drift.  The patchset "[Cobalt Xenoami3.1 PATCH 0/2] notify
> >> Xenomai udpated clockfreq."
> >> I sent in community at 5/27 try to fix what we found.  Could you send
> >your
> >> complete linux dmsg to check if our issues is the same?
> >>
> >Yes, I can confirm this as I see similar messages in my linux dmesg:
> >[    0.000000] tsc: Detected 2394.479 MHz processor
> >[    1.714630] tsc: Refined TSC clocksource calibration: 2394.455 MHz
>
> It seems there is similar refined tsc after xenomai init which is quite
different
> from what Xenomai is using
>
> Could you do a quick test with passing xenomai.clockfreq=2394455000 in
> commandline to force xenomai to use refined TSC clock freq and then run
> your drift test again to check if there is improvement? If there is
> improvement , I think my patchset may work.

Yes, with the quick test I can confirm that the rt_timer () and
clock_gettime() doesn't drift very much.
Thanks!

> Regards
>
> Hongzhan Chen
>
> >
> >[rtdonau-~] !) cat /sys/module/xenomai/parameters/clockfreq
> >2394479000
> >Attached my complete  dmesg.
> >
> >> Regards
> >>
> >> Hongzhan Chen
> >> >
> >> >Thank you in Advance.
> >> >
> >> >Best Regards
> >> >Prasanna
> >> >


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-05-30  9:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-27 13:39 Difference between Xenomai timer and Linux clock Prasanna Kannan
2022-05-30  0:55 ` Chen, Hongzhan
2022-05-30  7:33   ` AW: " Prasanna Kannan
2022-05-30  8:44     ` Chen, Hongzhan
2022-05-30  9:54       ` AW: " Prasanna Kannan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.