IRQ affinity on PC Debian Bookworm
- EricKeller
- Offline
- Junior Member
Less
More
- Posts: 27
- Thank you received: 3
08 Nov 2023 14:05 #284869
by EricKeller
IRQ affinity on PC Debian Bookworm was created by EricKeller
I had trouble setting the irq affinity of my hm2/ethernet card so it was handled by one of the cores controlled by lcnc. PCW helped me get it to work, I had given up too early in my previous efforts. It's simple to do at the command line. I still haven't gotten a script to change it. It would be nice to have a script, because it would be better to keep other irq handlers off the lcnc cpus.
Here are my notes:
Look at /proc/interrupts to see what interrupt your device is on.
Ethernet on my dell optiplex is enp0s31f6 on irq 130
So to set irq 130 to cpu 3 use the following:
sudo -i echo “8” /proc/irq/130/smp_affinity
You have to use sudo -i or be logged in as root.
The "8" is a bitmask. On my computer, the bitmask is usually "f" to allow any of the 4 processors. If you mistakenly set it to zero, it gets ignored.
If you have more than 4 processors, there will be more digits in the mask.
Kernel.org article about this: docs.kernel.org/core-api/irq/irq-affinity.html
It can be set at boot time www.kernel.org/doc/html/v4.19/admin-guid...rnel-parameters.html
Next task is to look into how irq balancing is done. For lcnc, balancing is bad.
If anyone has a script to do this, it would be great if you could post it.
Here are my notes:
Look at /proc/interrupts to see what interrupt your device is on.
Ethernet on my dell optiplex is enp0s31f6 on irq 130
So to set irq 130 to cpu 3 use the following:
sudo -i echo “8” /proc/irq/130/smp_affinity
You have to use sudo -i or be logged in as root.
The "8" is a bitmask. On my computer, the bitmask is usually "f" to allow any of the 4 processors. If you mistakenly set it to zero, it gets ignored.
If you have more than 4 processors, there will be more digits in the mask.
Kernel.org article about this: docs.kernel.org/core-api/irq/irq-affinity.html
It can be set at boot time www.kernel.org/doc/html/v4.19/admin-guid...rnel-parameters.html
Next task is to look into how irq balancing is done. For lcnc, balancing is bad.
If anyone has a script to do this, it would be great if you could post it.
Please Log in or Create an account to join the conversation.
- EricKeller
- Offline
- Junior Member
Less
More
- Posts: 27
- Thank you received: 3
08 Nov 2023 14:13 #284870
by EricKeller
Replied by EricKeller on topic IRQ affinity on PC Debian Bookworm
I'm thinking about trying the kernel command line "acpi_irq_nobalance"
I think that puts all the irqs on cpu0
Then moving the ethernet irq to cpu3
I think that puts all the irqs on cpu0
Then moving the ethernet irq to cpu3
Please Log in or Create an account to join the conversation.
09 Nov 2023 10:34 #284930
by rodw
Replied by rodw on topic IRQ affinity on PC Debian Bookworm
I thought that CPU 0 was the default thread everything gets thrown onto. It therefore should be preferred to move the servo thread and the ethernet IRQ onto another CPU but keep them together. eg. CPU 3
Please Log in or Create an account to join the conversation.
- EricKeller
- Offline
- Junior Member
Less
More
- Posts: 27
- Thank you received: 3
09 Nov 2023 16:07 - 09 Nov 2023 16:09 #284949
by EricKeller
Replied by EricKeller on topic IRQ affinity on PC Debian Bookworm
It's my understanding is that acpi balances the irqs across all the cpus. That's what I see on my systems. I haven't tried "nobalance" yet, but I expect that will leave everything on cpu0, which I understand is the default behavior for intel (pc?) systems
The servo thread itself doesn't have a irq, there must be a timer lcnc uses that does? Not sure which one to move.
The servo thread itself doesn't have a irq, there must be a timer lcnc uses that does? Not sure which one to move.
Last edit: 09 Nov 2023 16:09 by EricKeller.
Please Log in or Create an account to join the conversation.
09 Nov 2023 19:32 #284963
by rodw
Replied by rodw on topic IRQ affinity on PC Debian Bookworm
Correct, IRQ (Interrupt Requests) relate to hardware which linuxcnc isnt. eg its the hardware requesting the kernel to allocate some CPU time.
Back in the DOS days, you would chain a task onto the timer interrupt but now you create a thread (which is just a timer based process)
from memory, there is a task called something like rtapiapp which is the servo thread that shows up on a kernel trace. if you use isolcpus=3, the RT thread will be isolated to that core.
Back in the DOS days, you would chain a task onto the timer interrupt but now you create a thread (which is just a timer based process)
from memory, there is a task called something like rtapiapp which is the servo thread that shows up on a kernel trace. if you use isolcpus=3, the RT thread will be isolated to that core.
Please Log in or Create an account to join the conversation.
- EricKeller
- Offline
- Junior Member
Less
More
- Posts: 27
- Thank you received: 3
09 Nov 2023 19:36 #284964
by EricKeller
Replied by EricKeller on topic IRQ affinity on PC Debian Bookworm
right, the task runs on the isolated core. But it seems like it's started a timer irq handler, which may not have a moveable irq. If it is movable, it should be on an isolated core. There are extra timers on the intel architecture, but they usually aren't used for various reasons.
Please Log in or Create an account to join the conversation.
19 Nov 2023 14:17 #285898
by JohnnyCNC
Replied by JohnnyCNC on topic IRQ affinity on PC Debian Bookworm
Attachments:
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
Less
More
- Posts: 18804
- Thank you received: 6318
19 Nov 2023 17:32 #285922
by tommylight
Replied by tommylight on topic IRQ affinity on PC Debian Bookworm
Probably not.
Try using USB2.0 or the black colored ones, not the blue ones.
A lot of cheap USB2.0 devices will have issues with USB3.0 and 3.1 ports, some USB3.0 sticks will switch back to 2.0 as soon as you start to copy something to/from.
Try using USB2.0 or the black colored ones, not the blue ones.
A lot of cheap USB2.0 devices will have issues with USB3.0 and 3.1 ports, some USB3.0 sticks will switch back to 2.0 as soon as you start to copy something to/from.
Please Log in or Create an account to join the conversation.
19 Nov 2023 23:42 #285973
by JohnnyCNC
Replied by JohnnyCNC on topic IRQ affinity on PC Debian Bookworm
I'll give that a try.
Thanks
Thanks
Please Log in or Create an account to join the conversation.
21 Nov 2023 00:25 #286121
by JohnnyCNC
Replied by JohnnyCNC on topic IRQ affinity on PC Debian Bookworm
All of the USB ports on this machine are black. I tried moving devices around and it seems to be better but not completely OK. I have a wireless keyboard/mouse dongle, Touch-screen connection, Vista P4-SE pendant, and a USB to Ethernet adapter. This PC had been sitting for a couple of years so I am going to exercise all of the connectors really well just in case they are dirty.
Please Log in or Create an account to join the conversation.
Time to create page: 0.103 seconds