Installing LinuxCNC On HP T610 Thin Client

More
17 Apr 2021 10:49 #206171 by Joco
Completed a test using the performance testing script. Thought this might be of interest.

LinuxCNC pc tests, version 20200930, started 17.04.2021 20:59:33
********************************************************************************
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
================================================================================
RAM related data:
Maximum Capacity: 8 GB
Size: 2048 MB
Size: 2048 MB
================================================================================
GPU related data:
product: Wrestler [Radeon HD 6320]
configuration: driver=radeon latency=0
================================================================================
Parallel port related data:
number of parallel ports is 0
================================================================================
Os and desktop related data:
PRETTY_NAME="Linux Mint 19.3"

Should the info below not match with your machine,
kindly post the output of pstree here, including a brief
desciption of your desktop environment, window manager and
display manager. Tia
https://forum.linuxcnc.org/18-computer/39370-script-for-automated-testing-of-computer-latency

Desktop environment : lightdm
Windowmanager       : Xfwm4
Displaymanager      : lightdm
================================================================================
Kernel related data:
Kernel 4.19.0-16-rt-amd64
GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=0 processor.max_cstate=1 idle=poll isolcpus=1"
Cpu idle driver: none
================================================================================
Kernel modules data:
Check if pcspkr is loaded: [0;32mNo, which is good![0m
Check if snd modules are loaded: [0;32mNo, which is good![0m
================================================================================
Keyboard & Mouse related data:
Number of mice: 2
Mouse 0 : Logitech K400
Mouse 1 : Logitech USB Receiver
Mice  attached to USB:
Keyboards attached to USB:
================================================================================
LinuxCNC related data:
LinuxCNC version is: 2.9.0~pre0.3825.g57833f598
================================================================================
Preparing for latency test:
Started glxgears No. 1, 2, 3, 4, 5
..........
Started firefox with 'https://vimeo.com/150574260', WID 
================================================================================
Command for latency test is:
su james -c  "latency-histogram --nobase --base 25000 --sbinsize 1000 --nox 2>&1 | tee -a 1618649956.lat &"

Latency testing loop started Sat Apr 17 21:00:08 NZST 2021, 
should end after Sat Apr 17 22:00:08 NZST 2021

================================================================================
Swap useage: prerun: 0, running: 0

================================================================================
CPU core temperatures:
3599 s  servo min:  -5.000 us max:   4.600 us sdev:   0.300 us
 3600 s  servo min:  -5.000 us max:   4.600 us sdev:   0.300 us
 3601 s  servo min:  -5.000 us max:   4.600 us sdev:   0.300 us
The following user(s) said Thank You: seuchato

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

More
17 Apr 2021 22:20 #206235 by seuchato
Jojo
Thanks a ton! Very good latency data, indeed! Would be just about perfect for softstepping too, if it had a parallel port.
Astonishing results looking at the "cache size : 512 KB".
There were no "real time delays" reported?
Did you stop the script after 1 hour manually or had it programmed to stop after 1 hour?
Greez
chris

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

More
18 Apr 2021 00:15 #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.
Attachments:

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

More
18 Apr 2021 05:43 #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:
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 &"
 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:
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 &"
 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
Attachments:

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

More
18 Apr 2021 08:23 #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
23 Apr 2021 09:49 - 23 Apr 2021 12:05 #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.
Attachments:
Last edit: 23 Apr 2021 12:05 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
23 Apr 2021 20:58 #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
24 Apr 2021 06:49 - 24 Apr 2021 11:35 #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: 24 Apr 2021 11:35 by Joco. Reason: fixed typo
The following user(s) said Thank You: seuchato

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

More
24 Apr 2021 11:07 - 24 Apr 2021 11:09 #206943 by seuchato
Joco
Thanks for the hint on onboard graphics memory. I'll try that out,
Looking forward to your "wrap up post"
Should BCM57781 turn out to be not good enough, at least the t620 does have a mini pcie slot. Look at this or this one . I am sure, there are more options.
Greez
chris
Last edit: 24 Apr 2021 11:09 by seuchato.

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

More
24 Apr 2021 21:29 #206970 by Joco
Have you tried tests n the T620? I have a T630 which is the same generation apu and its latency is not flash. Isolating 3 cores, using idle=poll and a few other command line options, putting rtai process on its own core only gets me latency values of ~95us. Still within the upper limit i have seen mentioned as working (100 to 150us from memory).

So something about those newer apus that is not friendly. Mind you I have not tried all the tricks and variables yet but the starting position is nowhere near as good as the T610.

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

Time to create page: 0.229 seconds
Powered by Kunena Forum