Hi again.
I spent quite a bit of time on this in the past week and I believe I narrowed down the problem. My worry is that I don't know if it can even be solved, haha.
Firstly, I dug deeper into what rodw suggested with making sure I had a dedicated NIC to EtherCAT. Turns out the generic EC driver doesn't reserve one for itself. I found out there is an igb driver in the 6.1 kernel, which was great. I had to remove everything EC related and rebuild it from source, however, since the configure tool needed the
--enable-igb option passed to it for igb support. You can't do that when you install from repositories AFAIK. Either way, now the NIC doesn't even show up under
"ip a" anymore. EtherCAT has it completely reserved for itself, which is great.
Now, the real culprit. As I mentioned before, I saw some blink and you'll miss them spikes in the latency. After a lot of reading, I came to the conclusion it is related to
Intel SMI (System Management Interrupt)
. Diving into some more old documentation,
I saw it mentioned as a culprit
. However, these posts seem to be very very old at this point. The tool suggested at the end of that
wiki article
did not help me, as it only reports that
"No SMI-enabled chipset found".
This cannot be the case, though, as in my BIOS there is clearly a setting called "Global SMI Lock." Additionally, I found this
utility called BITS.
It provides exactly what I need - an SMI latency test. The PC failed said test miserably, with 300μ being reported. That is, by the way, the exact size of the spike the LinuxCNC Latency Test reported. I am attaching a photo of the test result. I am assuming the tool from the wiki article is simply very old and does not support the onboard PC's chipset (the CPU of which is an Intel Celeron N2930). The
MSR 0x34 register as reported by
turbostat is also 1.17, which I am not sure how to interpret exactly, but seeing as it is well
over 0, it must not be good.
I will spend the day trying to somehow disable SMI and testing the machine with a different PC that I know passes the BITS SMI test.
Does anyone have any idea on how to go about disabling SMI? I believe the only option in my BIOS is this Global SMI Lock I mentioned which didn't seem to do much. On some old forums I saw people mentioning you need to mod and reflash your BIOS. I'd like to leave that as a last resort as doing it improperly
will essentially deep fry the motherboard.