n100 mesact get cpu speed

More
28 Apr 2024 09:11 - 28 Apr 2024 09:15 #299238 by VonSzarvas
Hi all!

I've tried installing linuxcnc to an N100 mini-pc (Alder Lake N100, 16GB RAM, 512GB ROM).
      mfg specs : S1 vertical mini pc with 12th generation Intel Alder Lake-N100 processor (up to 3.4GHz, 6MB L3 cache), 20W TDP.
Connected to a MESA 7i96s card with new tested 30cm long CAT6 FTP/S cable. (and also tried unshielded during troubleshooting)

All was easy with the install- the latest linuxcnc debian amd64 iso was used, setup with pnfconf, and the newly installed linuxcnc OS runs (albeit with some timing/latency warnings).

Tried the HAL monitor, but couldn't see responses to any limit or estop button press. (Electrically the voltage swing is 24v to 0v, and the MESA board LEDs blink from bright-on to fully-off as each button is pressed - confident not a wiring issue). 

So next I installed MESACT.Tried the PC/Servo Thread Test, and maybe a clue....

the "Get CPU Speed" button returns only 792 MHz.

Whereas the N100 should be running much faster. In BIOS I believe I had set "Max turbo mode". (images attached).

At this stage I am thinking of three routes to investigate...
1. Is a BIOS setting preventing the mini-PC from reporting it's correct speed to linuxcnc ?
2. Is a missing driver in linuxcnc preventing the OS "seeing" the correct cpu speed ?
3. Something else...

I've attached a complete set of photos of the mesact test, the actual PC and all of the BIOS windows.

I have the C- States set disabled (as in photo IMG_529), but also took a photo of that setting enabled (IMG_0517) just to show the sub-options available.

To prove the cnc machine hardware, I've repeated the install on an old pentium PC, connected to the same MESA card and CNC machine, and can successfully read the CPU speed, get an acceptable latency result, HAL monitor detects all switches correctly, and the machine jogs, homes and runs a small test peck drill task correctly.

So the mini-PC is the issue it seems. I'm hoping a setting or missing driver as all that needed for such things?

Would anyone have experience with running linuxcnc on an N100?  - does it even work for anyone?
    - (according to numerous threads here that I've collected advice from, seems it should!)

Figure I'm missing something obvious!

All photos: drive.google.com/drive/folders/1YG3q0ehZ...ZtYmPWzBao1RR8ckq3ZM 
Attachments:
Last edit: 28 Apr 2024 09:15 by VonSzarvas. Reason: Forum post lost it's formatting all by itself, so tried fixing with an edit.

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

More
28 Apr 2024 12:06 #299245 by rodw
Replied by rodw on topic n100 mesact get cpu speed
That number is not really the cpu speed. To see it, type
latency-histogram --nobase --sbins 1000

So what is it? TMAX reports performance in timer ticks, not MhZ so it does some maths to convert it to MhZ.
The servo thread takes 1000 usec, We want the Tmax to be < 70% of this so there is some overhead for latency.
I have never used the program you are using as its not part of linuxcnc. . Looks liike its converted TMAX to MhZ. CHeck some of the other drop downs.

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

More
28 Apr 2024 12:41 #299247 by VonSzarvas
Thank you @rodw

Some extra info for clarity:

The "Get CPU Speed" is a button, which when clicked requests the OS user password, and then fills out the value (792 MHz in this case).

By comparison, when using another PC (the old Pentium), clicking that same button retrieves the correct speed for that machine (1800 MHz as I recall). - That is the reason I wondered if the MesaCT software was unable to read the correct CPU info from the mini-PC, for whatever reason.

But that said, the other elephant in the room is the HAL test failing to respond to the button presses, which could be just related to the speed issue, or maybe suggest some other more general comms issue, perhaps with the ethernet control chip in the mini-PC.

I will get to the machine, grab the Realtek type number, and also re-run that latency-histogram, and post the results. I recall seeing odd outliers compared to the pentium, but silly me, I didn't take a photo at that time.

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

More
28 Apr 2024 13:03 - 28 Apr 2024 13:05 #299248 by VonSzarvas
The networking cards are:
qty 2 of RTL8111/8168/8411  and 
qty 1 of RTL8821CE wireless

All are operable from within linuxcnc desktop, although I disabled the wireless and unused LAN port after installing things, in-case that might help (though it didn't seem to make a difference).

The histogram result is attached. I've also added 6 more images to the original google photos link above. (both before and after running 6 cogs).

Finally, the ping result is also attached.
That seems odd (and maybe another clue?)... why is a local ping taking longer than ~1.4ms... Maybe it's supposed to for the Mesa card, but makes we wanna go hmmmm.... 
Attachments:
Last edit: 28 Apr 2024 13:05 by VonSzarvas. Reason: Forum post lost it's formatting all by itself, so tried fixing with an edit.

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

More
28 Apr 2024 13:19 #299249 by VonSzarvas
I'm looking at the histogram image, but feeling a little lost.

How to interpret the results... how to deduce the CPU speed ?

It looks quite tidy. None of the outliers I recall from before, so maybe that was a bogus memory :)
I guess the histogram is explained in the docs or here somewhere- will have a search for an explanation that clicks with me.

Regarding the slow ping rate to the Mesa card... that feels like it should be an issue, and could also explain the failure of the HAL test to detect the switches changing state...?

Does the latency test communicate with the MESA card over the network connection, or is that latency test purely between the CPU and software?
 

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

More
28 Apr 2024 14:02 #299253 by PCW
Replied by PCW on topic n100 mesact get cpu speed
The latency test only checks dispatch latency, it does no I/O.

The long and consistent ping times will make operation impossible
(at least at a 1 KHz servo thread rate) Not sure what is causing that,
not something Ive seen before.

The CPU speed issue includes the latency histogram, it doesn't display
there either, as expected:

 


I wonder if the distributed kernel is too old for the N100?
Attachments:

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

More
28 Apr 2024 14:30 #299255 by VonSzarvas
Reported kernel is: 6.1.0-18-rt-amd64
 
Attachments:

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

More
28 Apr 2024 14:44 - 28 Apr 2024 14:58 #299256 by VonSzarvas
apt-get update
apt-cache search linux-image

shows a newer kernel:  linux-image-6.1.0-20-rt-amd64  PREEMPT_RT

Hmm. I wonder... would that be compatible with the stock linux.292 distro ? Should I try the kernel update? Feeling luck punk?

Funny thing... the networking appears to work fine (but sure, browsing and downloading is perhaps not as time critical as CNC control!)


Update: Went back and checked ping with the older PC and the same MESA card.... results are consistent around ~ 0.4ms.  That seems much more like it, and seems to further confirm the MESA card is behaving correctly.
 
Attachments:
Last edit: 28 Apr 2024 14:58 by VonSzarvas. Reason: added note about additional ping verification

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

More
28 Apr 2024 19:03 #299270 by royka
Replied by royka on topic n100 mesact get cpu speed
A newer kernel might help indeed, my N100 mini pc without rt kernel, just preempt has a ping of 0.5 ms to the router. This is with kernel version 6.9.0 rc4.

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

More
29 Apr 2024 05:22 #299295 by rodw
Replied by rodw on topic n100 mesact get cpu speed
Interesting. PCW's histogram reports 3.0 gHz (which I expected)  and the N100 says nothing!
But as said the ping times means the servo thread is overrun before you get a response. My thoughts
would be to
1. install linux-headers for preempt RT
2. Install the R8168-dkms driver
3, Reboot 
4. Check ping times on different NIC's
5. Look at updating the CPU affinity for your chosen NIC. (refer other threads)

This may doc of mine may help:
docs.google.com/document/d/1jeV_4VKzVmOI...diY/edit?usp=sharing
 

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

Time to create page: 0.128 seconds
Powered by Kunena Forum