Unexpected realtime delay on task 0 on a HP8300

More
28 Mar 2024 16:40 #297011 by PCW
Do you have irq coalescing disabled?
(this is needed for Intel MACs)

Please Log in or Create an account to join the conversation.

More
29 Mar 2024 21:35 #297147 by lrak
auto enp2s0
iface enp2s0 inet static
address 192.168.10.1/24
hardware−irq−coalesce−rx−usecs 0

Please Log in or Create an account to join the conversation.

More
30 Mar 2024 03:21 #297185 by PCW
Have you tried this:

forum.linuxcnc.org/38-general-linuxcnc-q...irq-affinity?start=0

Basically using isolcpus to isolate a core for LinuxCNC and then pinning the Ethernet IRQ to that core
The following user(s) said Thank You: lrak

Please Log in or Create an account to join the conversation.

More
02 Apr 2024 02:52 #297410 by lrak
@PCW
I can try it - but it would seem to me that if it was an IRQ that it would happen more often than every day or two?

If there was a way to tag the time it happens, I can look through the logs for some regular task happening..

Please Log in or Create an account to join the conversation.

More
02 Apr 2024 03:02 - 02 Apr 2024 03:02 #297411 by PCW
In my experience, it makes a large difference in network latency
to use isolcpus and pin the Ethernet device IRQ to the same CPU that's
running LinuxCNC's realtime.

For example, I'm typing this on a HP 800 G1 Elite that I use for normal
browsing, compilations, videos etc. At the same time, it is always running
LinuxCNC. Without IRQ pinning, it would drop (timeout)  a packet maybe
once or twice a week. With IRQ pinning, it never drops packets...
Last edit: 02 Apr 2024 03:02 by PCW.
The following user(s) said Thank You: tommylight, lrak

Please Log in or Create an account to join the conversation.

More
11 Apr 2024 23:17 - 11 Apr 2024 23:20 #298033 by lrak
OK - that seems to have fixed it - it has been up for some days now with out the hiccup..

What I did :
installed irqbalance

I had to change this line in /etc/irqbalance.d/lcnc_irqpolicy.sh


#NIC=`awk 'BEGIN{nic=""} {if ($1=="iface") {tmpnic = $2} if ($1=="address") {if ($2 == 10.10.10.1) {nic = tmpnic}}} END{print(nic)}' /etc/network/interfaces`
NIC=enp2s0



NIC just needs the name of the interface.
Last edit: 11 Apr 2024 23:20 by lrak.

Please Log in or Create an account to join the conversation.

Time to create page: 0.078 seconds
Powered by Kunena Forum