Hello,
I am testing Mesa card with Xenomai 4 #4199
It has amazing results, but on my PC configuration I sometimes get 800 000 ns spikes.
I created hm2_tracer for this.
https://github.com/zz912/linuxcnc/tree/feature/hm2-trace
You can read more about it here:
https://github.com/zz912/linuxcnc/blob/feature/hm2-trace/src/hal/drivers/mesa-hostmot2/hm2_tracer-readme.md
If anyone would like to try it out, just add to the hal file:
loadrt hm2_eth ......
loadusr hm2-trace-log
The program works in such a way that if the (hm2_7i96s.0.read + hm2_7i96s.0.write > 50% Realtime Threads Period) it creates a log file in ~.
For testing, I reduce the ratio: https://github.com/zz912/linuxcnc/blob/9a56334cd81756fcd5a9ddf861a7df0ed0bdd39e/src/hal/drivers/mesa-hostmot2/hm2_trace_trigger.c#L31
The log file looks like this:
HM2 TRACE
version : 1
generation : 1
trigger_reason : LATENCY
trigger_ratio : 15 %
read_runtime_ns : 105024
write_runtime_ns : 4119
total_runtime_ns : 109143
read_tmax_ns : 144604
write_tmax_ns : 17003
total_tmax_ns : 158941
ring_size : 4096
ring_head : 2153
trigger_index : 104
samples_written : 2153
Ring buffer:
------------
idx timestamp snapshot(ns) cycle(ns) event(ns) event
---- ---------------- --------------- --------------- --------------- ------------
....
91 81878499561176 +13003605 +0 +880125 CYCLE_START
92 81878499561274 +13003703 +98 +98 READ_ENTER
93 81878499561299 +13003728 +123 +25 RECV_ENTER
94 81878499667685 +13110114 +106509 +106386 RECV_EXIT
95 81878499673268 +13115697 +112092 +5583 READ_EXIT
96 81878499687697 +13130126 +126521 +14429 WRITE_ENTER
97 81878499698230 +13140659 +137054 +10533 WRITE_EXIT
98 81878500558931 +14001360 +0 +860701 CYCLE_START
99 81878500559025 +14001454 +94 +94 READ_ENTER
100 81878500559050 +14001479 +119 +25 RECV_ENTER
101 81878500694149 +14136578 +135218 +135099 RECV_EXIT
102 81878500703629 +14146058 +144698 +9480 READ_EXIT
103 81878500725404 +14167833 +166473 +21775 WRITE_ENTER
========================================================================
========================== TRIGGER DETECTED ============================
========================================================================
104 81878500739741 +14182170 +180810 +14337 WRITE_EXIT
105 81878501555862 +14998291 +0 +816121 CYCLE_START
106 81878501555919 +14998348 +57 +57 READ_ENTER
107 81878501555994 +14998423 +132 +75 RECV_ENTER
108 81878501671492 +15113921 +115630 +115498 RECV_EXIT
109 81878501673620 +15116049 +117758 +2128 READ_EXIT
110 81878501679328 +15121757 +123466 +5708 WRITE_ENTER
111 81878501684921 +15127350 +129059 +5593 WRITE_EXIT
112 81878502555892 +15998321 +0 +870971 CYCLE_START
113 81878502555934 +15998363 +42 +42 READ_ENTER
114 81878502555985 +15998414 +93 +51 RECV_ENTER
115 81878502652085 +16094514 +96193 +96100 RECV_EXIT
116 81878502653360 +16095789 +97468 +1275 READ_EXIT
117 81878502658396 +16100825 +102504 +5036 WRITE_ENTER
118 81878502662937 +16105366 +107045 +4541 WRITE_EXIT
hm2_trace_2026_07_11-06_41_47.log
I made the program with the help of ChatGPT. The project is in the "It works" phase. This phase is sufficient for my needs. However, if I wanted to make a proper code suitable for PR, I would like to redo the tracer architecture and its activation in the hal file.
I would like to ask if there would be interest in this hm2_tracer if I redid it?
@pcw-mesa what is your opinion?
Hello,
I am testing Mesa card with Xenomai 4 #4199
It has amazing results, but on my PC configuration I sometimes get 800 000 ns spikes.
I created hm2_tracer for this.
https://github.com/zz912/linuxcnc/tree/feature/hm2-trace
You can read more about it here:
https://github.com/zz912/linuxcnc/blob/feature/hm2-trace/src/hal/drivers/mesa-hostmot2/hm2_tracer-readme.md
If anyone would like to try it out, just add to the hal file:
The program works in such a way that if the (hm2_7i96s.0.read + hm2_7i96s.0.write > 50% Realtime Threads Period) it creates a log file in ~.
For testing, I reduce the ratio: https://github.com/zz912/linuxcnc/blob/9a56334cd81756fcd5a9ddf861a7df0ed0bdd39e/src/hal/drivers/mesa-hostmot2/hm2_trace_trigger.c#L31
The log file looks like this:
hm2_trace_2026_07_11-06_41_47.log
I made the program with the help of ChatGPT. The project is in the "It works" phase. This phase is sufficient for my needs. However, if I wanted to make a proper code suitable for PR, I would like to redo the tracer architecture and its activation in the hal file.
I would like to ask if there would be interest in this hm2_tracer if I redid it?
@pcw-mesa what is your opinion?