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

 别想着摆脱_525 发布于 2023-02-12 14:57

我列出了所有中断:

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中断的优先级?

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

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

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

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

    2023-02-12 14:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有