Jetson 模组
Jetson Orin NX
Jetson 软件
JetPack 6.2
SDK Manager 管理工具版本
2.3.0
问题描述
我们系统的wifi 各种有线网卡目前中断都在CPU0上,现在想要把一个PCI的有线网卡中断绑定到其他CPU上比如CPU1,
但是使用echo 1 > /proc/irq/中断号/smp_affinity_list的方法出错,
~$ cat /sys/kernel/irq/252/chip_name
PCI-MSI
根据中断号类型PCI-MSI查看代码drivers/pci/controller/pci-tegra.c中
static int tegra_msi_set_affinity(struct irq_data *d, const struct cpumask *mask, bool force)
{
return -EINVAL;
}
该函数并未实现。
我们的问题:
~$ cat /proc/irq/252/smp_affinity_list
0-5
该中断是显示0-5分布,但是实际上即使负载特别高,他从未均衡到其他CPU
/proc/irq/252$ cat effective_affinity
00
这个是我们的Jetson Orin NX硬件不支持还是其他原因没实现tegra_msi_set_affinity?
kernel 5.15.148-rt-tegra #90 SMP PREEMPT_RT, 是不是如果在RT kernel上这样做会有什么风险?
Jetson Orin NX平台是否有其他的方法将该PCI网卡的中断绑定到其他CPU上 ?感谢
错误码
sudo bash -c “echo 1 > /proc/irq/252/smp_affinity_list”
bash: line 1: echo: write error: Invalid argument
错误日志
查看PCI 网卡的中断号,我们想把enP8p1s0-0的中断从CPU0挪到其他CPU
~$ cat /proc/interrupts | grep -E ‘enP8p1s0|CPU’
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5
252: 4509796 0 0 0 0 0 PCI-MSI 1074266112 Edge enP8p1s0-0
查看中断252当前的绑定是0-5,虽然写的是0-5,但是高负载或者CPU0各种网卡中断特别多的时候,他并没有均衡到其他CPU
~$ cat /proc/irq/252/smp_affinity_list
0-5
尝试绑定中断到其他CPU,比如1,提示失败
sudo bash -c “echo 1 > /proc/irq/252/smp_affinity_list”
bash: line 1: echo: write error: Invalid argument