如何在linux中给予以太网中断最高优先级

如何在linux中给予以太网中断最高优先级,第1张

概述我列出了所有中断: cat /proc/interruts 它给出了这个: CPU0 CPU1 CPU2 CPU3 0: 126 0 0 0 IO-APIC-edge timer 1: 941 0 0 我列出了所有中断:

cat /proc/interruts

它给出了这个:

cpu0        cpu1         cpu2        cpu3    0:   126           0            0           0     IO-APIC-edge        timer    1:   941           0            0           0     IO-APIC-edge        keyboard    ... (etc.)   19:   941           0            0           0     IO-APIC-fasteoi      eth0    ... (etc.)

此表中的第一列是否给出优先级中断?我只是想学习优先级,因为我想提高NIC的中断优先级以获得更好的网络性能.我想,前两个中断不能改变(我想是因为intel x86架构).

无论如何,这是我的问题:

是否可以提高NIC中断的优先级?

解决方法 vanilla内核没有优先考虑中断.这是内核开发的早期设计决策.有两种方法可以解决这个问题.

首先,您可以编写一个内核模块来为您的处理器编程中断控制器,以便为NIC中断提供最高优先级.这将在硬件级别更改内核下的NIC中断优先级.

其次,您可以使用PREEMPT_RT补丁构建内核,并为处理NIC中断的内核线程提供最高优先级.

这两种方法都将增加处理网络中断的优先级.但是,这些都不可能为您提供更好的网络性能(无论这意味着什么),因为IP的大部分开销,无论是UDP的TCP都在IP堆栈中,而不是在NIC中断的处理中.实际上,使用PREEMPT_RT补丁甚至可能导致网络性能下降.

总结

以上是内存溢出为你收集整理的如何在linux中给予以太网中断最高优先级全部内容,希望文章能够帮你解决如何在linux中给予以太网中断最高优先级所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1018918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存