Installing LinuxCNC On HP T610 Thin Client

More
5 years 6 months ago #206245 by Joco
Chris - the script finished correctly. No aborts due to delays.

The only "failure" on the scrips part is that I think it looks for cpu temp data in a place that is Intel specific and not based on where lm-sensor is holding it. At least that is what it looks like. I end up having to hit control-c as it just sits in limbo on that cpu-temp stage. But as far as the test run is concerned its fine. Everything gets cleaned up and no aborted exit reported.

I have attached the full files from the run for reference.

I will document the bios settings as well and post. Just to be complete.

The only caveat I would make on this is that having to isolate to a single core does make the UI terribly slow. I am going to do some experiments where I have the T610 at run level 3 (multi user text mode, no UI) and do remote X sessions just to see what that does. The theory being you offload the heavy UI work to the "remote" computer.

Cheers - J.

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

More
5 years 6 months ago #206263 by Joco
Been doing some more tests with two key variables been altered.

(1) I removed idle=poll from tbe grub boot params. While idle=poll can give some good improvements it also ups the heat on the chip. Given this T610 does not have a parallel port there is no value in trying to cook it to get super low latency numbers. Now if you had a T610-plus that does have a printer/parallel port then it might be worth it.

(2) keeping isolcpus=1 in place as that makes a big difference on latency but using taskset to shift the affinty of the RT tasks to the cpu core that has been isolated.

I have attached the results files to show these two runs. Both 1 hour each using the test script but modified to use taskset to drive cpu affinity of the RT processes at startup.

Summary info below but from what I can see for ethernet mesa card use this looks to be very promising under either approach with the usage of both cores giving better overall responsiveness at the expense of some latency.

The next BIG test will be the network side of things. Key will be the ability to maintain a solid network connection to an ethernet card. As soon as my 24v PSU arrives I will hook up a 7i76e and run some gcode that will drive activity across the ethernet link over an extended period of time. If there is a standard gcode test that can be used for this please let me know. Always good to be using common tests if possible.

All process on core 1:
Code:
General info: Hewlett-Packard, HP t610 WW Thin Client Bios version K30 v01.10, dated 10/26/2012 Chipset: Harddisk is non-rotational, ie. SSD The amount of swap currently used is 0 ================================================================================ CPU related data: model name : AMD G-T56N Processor cpu cores : 2 stepping : 0 cache size : 512 KB Kernel 4.19.0-16-rt-amd64 GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=0 processor.max_cstate=1 isolcpus=1" Command for latency test is: su james -c "taskset 0x01 latency-histogram --nobase --base 25000 --sbinsize 1000 --nox 2>&1 | tee -a 1618708669.lat &"
Code:
3602 s servo min: -10.700 us max: 12.100 us sdev: 1.900 us 3602 s servo min: -10.700 us max: 12.100 us sdev: 1.900 us 3603 s servo min: -10.700 us max: 12.100 us sdev: 1.900 us


RT process on core 2, all other process on core 1:
Code:
General info: Hewlett-Packard, HP t610 WW Thin Client Bios version K30 v01.10, dated 10/26/2012 Chipset: Harddisk is non-rotational, ie. SSD The amount of swap currently used is 0 ================================================================================ CPU related data: model name : AMD G-T56N Processor cpu cores : 2 stepping : 0 cache size : 512 KB Kernel related data: Kernel 4.19.0-16-rt-amd64 GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=0 processor.max_cstate=1 isolcpus=1" Command for latency test is: su james -c "taskset 0x02 latency-histogram --nobase --base 25000 --sbinsize 1000 --nox 2>&1 | tee -a 1618714070.lat &"
Code:
3599 s servo min: -30.000 us max: 32.200 us sdev: 2.500 us 3600 s servo min: -30.000 us max: 32.200 us sdev: 2.500 us 3601 s servo min: -30.000 us max: 32.200 us sdev: 2.500 us

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

More
5 years 6 months ago #206275 by seuchato
Joco
Perfect, thank you. May I kindly ask you to provide a link to your results over in the forum.linuxcnc.org/18-computer/39371-res...cnc?start=170results thread ?
I'd support all your findings. Keep us updated, please.
Greez
Chris

PS: The script fails to read out tep data for amd based cpus, I know. A fix is being prepared the next days.
The following user(s) said Thank You: Joco

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

More
5 years 6 months ago - 5 years 6 months ago #206856 by Joco
I have gotten my test 7i76e rig up and working. This has been another journey of tuning as the T610's use a Broadcom NIC chipset.

Using out of the box (no ethtool changes) you get a ping of 0.22ms to 0.28ms. I ran the machine for a couple of hours at this setting. Zero dropped packets and no latency excursion. I then got the tmax reading and put it into the calc on the PC tab of the 7i76e tool by JT. This showed a Packet Time of 55% and a Threshold of 70%. According to info on that tab you really want a Packet Time of <= 50%. Choices being to change the thread period or to improve network response.

I decided to try tuning the NIC. After some fiddling these settings done via ethtool dropped the ping times down to 0.13 to 0.18ms. Running the same checks seems to have a result of 45% and 70% respectively. I might still need to try some more tuning or raise the thread period a little bit.


I'm experimenting but its looking more and more like I am zeroing in on some settings that look promising on one of these units.

When completed I will post all data and repost the performance stats on the appropriate thread.

Cheers - J.
Last edit: 5 years 6 months ago by Joco. Reason: Adjusted "~43%" to 45% based on 1.5hrs of gcode running and stabilised tmax value.
The following user(s) said Thank You: seuchato, JohnnyCNC

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

More
5 years 6 months ago #206889 by seuchato
Hey Joco
What you are doing, will most probably help others, too. So: Big Fat Thanks!!!
Besides: Such tuning might be (might be, not is) possible under M$ too, but - - where to find?!
I just love linux and oss. Dot Period.
Greez
chris

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

More
5 years 6 months ago - 5 years 6 months ago #206937 by Joco
Just a short note. Did some more testing with network stack and I think I have the 2 fundamental adjustments needed to get the best out of the NetLink BCM57781 Gigabit Ethernet. It's never going to be brilliant but I seem to have a pretty consistent 0.165secs ping. Which a lot better than the 0.220 that you get out of the box. Will include this all in my wrap up post. but these can be set in the network interfaces file.

Also stumbled across a comment relating to another board with onboard graphics where they found setting the graphics memory to 64MB made a difference. I had been running the default 512MB. Changing to 64MB seems toi have improved things a bit. This is evidenced in the hm2's read.tmax dropping by ~40k.

In the middle of ethernet stability testing at the moment. I am not trying for production grade here, I don't need day's on end connectivity.

Cheers - J.
Last edit: 5 years 6 months ago by Joco. Reason: fixed typo
The following user(s) said Thank You: seuchato

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

Time to create page: 0.280 seconds
Powered by Kunena Forum