中断与信号

##1. 软中断与硬中断的区别

软中断:如代码调用INT指令触发

硬中断:为响应中断,一般会有一个硬件中断控制器,当设备完成任务后出发中断到中断控制器,中断控制器通知CPU,一个中断产生后,CPU需要停下当前手里的事情来处理中断。

信号与中断的相似点:

(1)采用了相同的异步通信方式;

(2)当检测出有信号或中断请求时,都暂停正在执行的程序而转去执行相应的处理程序;

(3)都在处理完毕后返回到原来的断点;

(4)对信号或中断都可进行屏蔽。

信号与中断的区别:

(1)中断有优先级,而信号没有优先级,所有的信号都是平等的;

(2)信号处理程序是在 用户态 下运行的,而中断处理程序是在 核心态 下运行;

(3)中断响应是及时的,而信号响应通常都有较大的时间延迟。

##2. 网卡的中断亲和性设置

中断亲和性

a) 查看所需的网卡

ifconfig

b) 查看网卡所在的NUMA节点,可根据实际情况将网卡中断绑到NUMA所在节点的CPU核

cat /sys/class/net/XXX/device/numa_node

c) 关闭irqbalance服务

service irqbalance status

service irqbalance stop

d) 查询网卡对应的中断号

cat /proc/interrupts | grep enp125s0f0

第一列对应中断号

e) 查询当前网卡中断绑核情况。

cat /proc/irq/227/smp_affinity_list

f) 手动绑定网卡中断到指定的CPU。

例如,将网卡中断绑定到CPU4:

echo  4 > /proc/irq/227/smp_affinity_list

建议执行echo 2 > /proc/irq/xxx/smp_affinity_list将中断绑定到物理网卡所在的NUMA的CPU上,其中xxx为步骤2中查询到的中断号,这里中断绑定到CPU2


资料:

https://blog.csdn.net/whut_gyx/article/details/8488768

https://zhuanlan.zhihu.com/p/150692096

https://support.huaweicloud.com/tngg-kunpengcpfs/kunpengkvm_05_0001.html

你可能感兴趣的:(中断与信号)