- Posts: 913
- Thank you received: 0
performance improvement suggestions
- robertspark
- Topic Author
- Offline
- Platinum Member
-
en.wikipedia.org/wiki/Private_network
my error has come back....
PCW can you elaborate
PCW wrote: Also are you running both cards at once? this requires special hal file setup
using read-request to allow overlapping response times rather than adding them
Please Log in to join the conversation.
read parts of the cycle to avoid simply adding all the response times.
This is done by using the read-request function in addition to the read function:
That is, rather than this:
addf hm2_7i96.0.read servo-thread # this asks for data and waits for return data before continuing
addf hm2_7i96.1.read servo-thread # delaying this request/wait
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.0.do-pid-calcs servo-thread
addf pid.1.do-pid-calcs servo-thread
addf pid.2.do-pid-calcs servo-thread
addf pid.3.do-pid-calcs servo-thread
addf hm2_7i96.0.write servo-thread
addf hm2_7i96.1.write servo-thread
You do this:
addf hm2_7i96.0.read-request servo-thread # these don't wait
addf hm2_7i96.1.read-request servo-thread
addf hm2_7i96.0.read servo-thread
addf hm2_7i96.1.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.0.do-pid-calcs servo-thread
addf pid.1.do-pid-calcs servo-thread
addf pid.2.do-pid-calcs servo-thread
addf pid.3.do-pid-calcs servo-thread
addf hm2_7i96.0.write servo-thread
addf hm2_7i96.1.write servo-thread
But, I don't think this is your situation
Note for debugging real time issues you should watch (with halshow) or dump:
halcmd show param *.tmax
the tmax values
Please Log in to join the conversation.
- robertspark
- Topic Author
- Offline
- Platinum Member
-
- Posts: 913
- Thank you received: 0
Please Log in to join the conversation.
tommylight wrote: missed the 11, sorry for that, but that makes things even worse as addresses starting with 11.n.n.n are routable and public
... and historically allocated to the US DoD.
xkcd.com/195/
Though that map is now out of date, and there are few /8s left.
en.wikipedia.org/wiki/List_of_assigned_/8_IPv4_address_blocks
Apple, Ford and AT&T amongst a few others.
Please Log in to join the conversation.
- tommylight
-
- Offline
- Administrator
-
- Posts: 22012
- Thank you received: 4
Dang, i did not know that, thank you.andypugh wrote:
tommylight wrote: missed the 11, sorry for that, but that makes things even worse as addresses starting with 11.n.n.n are routable and public
... and historically allocated to the US DoD.
xkcd.com/195/
Though that map is now out of date, and there are few /8s left.
en.wikipedia.org/wiki/List_of_assigned_/8_IPv4_address_blocks
Apple, Ford and AT&T amongst a few others.
Please Log in to join the conversation.
- tommylight
-
- Offline
- Administrator
-
- Posts: 22012
- Thank you received: 4
Please Log in to join the conversation.
So a 1.5 or 2 ms servo thread may be needed with that hardware
unless you can find the cause and eliminate it.
Please Log in to join the conversation.
- robertspark
- Topic Author
- Offline
- Platinum Member
-
- Posts: 913
- Thank you received: 0
I may also start again with the bios settings from default to see where the starting point is
thanks for your help on that one
Please Log in to join the conversation.
- robertspark
- Topic Author
- Offline
- Platinum Member
-
- Posts: 913
- Thank you received: 0
Attachment not found
Attachment not found
Please Log in to join the conversation.
- robertspark
- Topic Author
- Offline
- Platinum Member
-
- Posts: 913
- Thank you received: 0
I thought that I should be able to get better performance out of an i7 5500u CPU than other offerings (I kind of have avoided PC's for years now as I hate the dust they collect in the garage and space that they take up, hence I've gone fanless for a while..... )
The other fanless PC that I have is a Celeron N3150
At one point I was worried that I'd killed the i7 5500u having fiddled that much with settings that it got to the point that I was booting it but unable to get into the bios, however after a while of a blank screen it went straight into Linux login screen.
I then gave an HDMI screen a go as I was using a DVI input screen with an HDMI > DVI cable, and was able to get back into the bios and change things. I am now using my HDMI screen to dabble as it works (detects) the screen from boot and have also added a bios boot delay while I dabble.
Yes I even removed the bios battery (several times, and left it unpowered for increasing amounts of time, in the hope that the bios would reset and I would be able to see the bios screen from time of boot..... but to no avail ..... LESSON is probably if you only have HDMI outputs.... use an HDMI screen / TV with an HDMI as you may be able to get back in). No idea, but it now works, learnt something new.....
Anyway back sort of ontopic....
I then decided to have a play around with isolcpus so see if I could improve the latency numbers..... and to my surprise I managed to get better stability (sharp triangle on the latency histogram) + I also found the latency test script too to play with....
In the end I believe I have around 20,000uS latency using isolcpus 1,3 (I have a dual core i7 5500u) and have reenabled hyperthreading ..... which seems to have provided me with better results given it goes from 2 threads without to 4 threads with hyperthreading enabled, and used isolcpus 1,3 to isolate one of the cores (and its associated second thread). All the power saving is turned off (c-states, speedstepping etc etc etc).
I thought (from previous reads across the net) that isolcpus was depricated and no longer the way to improve latency on multicore CPU's but I guess it seems to work. I have not tried the latency test for 2 hours yet, {I fiddled with the script a bit...., removed the base thread, and changed it to a 10min run} and the latency using that script went from 70,000+ variable (plus higher) to a rock solid 36,000.
I am using Mesa hardware so yes I know the latency should not matter that much..... I just kind of "thought" that I'd get better performance out of an 5th Gen i7 than appeared to be the case.
I am hoping to try the 3150N at some point (just can't seem to get it to boot.... suspect a memory issue.... I can't find the chip that I had in it and I bought a replacement I thought but no dice (yet!)....)
It's all just a learning curve to me and I am trying to get use to understanding Linux + RT a bit better + latency.
I am also dabbling with my simple 3-axis mill setup via 7i76E hardware (its simple because it doesn't need anything but axis motion..... but it has prox limit switches and also a VFD that I'm adding to the profile and am working my way through the HAL bits as a learning curve {it may be simple for some but this is the stuff that has put me off LinuxCNC for years every time I dabbled with it so this time I am making a concerted effort to understand the stuff I am changing and how it works too).
I have also been trying to understand application priority and RT_PREEMPT (SCHED_FIFO, and SCHED_RR), and am getting my head into it a little better + using HTOP.
Always learning.... and enjoying it.
Please Log in to join the conversation.
