如果进程被硬件中断(第一级中断处理程序)中断,那么CPU调度程序是否会意识到这一点(例如,调度程序计算硬件中断的执行时间是否与中断进程分开)?
更多细节: 我正在尝试解决htop中的CPU利用率对于指定的数据包加密任务来说太低的问题(CPU在400Mbps加密数据包时<10%;原始加密速度仅为1.6Gbps,因此数据包加密不应该去任何比原始加密速度更快的速度)。
说明: 我的假设是数据包封装发生在硬件中断,因此让我觉得htop中CPU使用率低。通常实现FLIH,以便他们尽快完成任务,并将他们的工作推迟到SLIH(我认为是代表ksoftirqd / X执行的二级中断处理程序)。但是如果FLIH中断一个进程很长时间会发生什么?这会引入某种操作系统抖动吗?
我在x86-64平台上使用Ubuntu 10.04.1。
其他调试信息:
while [ 1 ]; do cat /proc/stat | grep "cpu "; sleep 1; done;
cpu 288 1 1677 356408 1145 0 20863 0 0
cpu 288 1 1677 356772 1145 0 20899 0 0
cpu 288 1 1677 357108 1145 0 20968 0 0
cpu 288 1 1677 357392 1145 0 21083 0 0
cpu 288 1 1677 357620 1145 0 21259 0 0
cpu 288 1 1677 357972 1145 0 21310 0 0
cpu 288 1 1677 358289 1145 0 21398 0 0
cpu 288 1 1677 358517 1145 0 21525 0 0
cpu 288 1 1678 358838 1145 0 21652 0 0
cpu 289 1 1678 359141 1145 0 21704 0 0
cpu 289 1 1678 359563 1145 0 21729 0 0
cpu 290 1 1678 359886 1145 0 21758 0 0
cpu 290 1 1678 360296 1145 0 21801 0 0
这里的第七(或第六个数字列)列我想是在硬件中断处理程序中花费的时间(htop使用此proc文件来获取统计信息)。我想知道这是否会最终成为linux或驱动程序中的错误。当我拍摄这些/ proc / stat快照时,流量为500Mbps和500Mbps。
答案 0 :(得分:1)
计算中断处理程序所花费的时间。
htop以“si”(软中断)和“hi”(硬中断)显示。你很好,我很等待。
编辑: 来自man proc:
第六列是硬件irq时间
第七栏是softirq
八是被盗时间
nienth是客人时间。
后两者仅对虚拟化系统有意义。
您是否拥有使用CONFIG_IRQ_TIME_ACCOUNTING(处理器类型和功能/精细粒度任务级别IRQ时间记帐)选项集构建的内核?