/proc/interrupts

查看网卡中断在哪个CPU核处理 linux网卡收发包中断处理,CPU占用率 阅读详情


cat /proc/interrupts 

读取到的内容从左到右,分别为:1、逻辑中断号,2、中断在各CPU发生的次数,3、中断所属设备类名称,4、硬件中断号,5、中断处理函数。

如下图:


代码实现分析如下红色字体1~ 5 . 

489  int show_interrupts(struct seq_file *p, void *v)
490  {
491  	static int prec;
492  
493  	unsigned long flags, any_count = 0;
494  	int i = *(loff_t *) v, j;
495  	struct irqaction *action;
496  	struct irq_desc *desc;
497  
498  	if (i > ACTUAL_NR_IRQS)
499  		return 0;
500  
501  	if (i == ACTUAL_NR_IRQS)
502  		return arch_show_interrupts(p, prec);
503 
504  	/* print header and calculate the width of the first column */   
505  	if (i == 0) {
506  		for (prec = 3, j = 1000; prec < 10 && j <= nr_irqs; ++prec)
507  			j *= 10;
508  
509  		seq_printf(p, "%*s", prec + 8, "");
510  		for_each_online_cpu(j)
511  			seq_printf(p, "CPU%-8d", j);
512  		seq_putc(p, '\n');
513  	}
514  
515  	irq_lock_sparse();
516  	desc = irq_to_desc(i);
517  	if (!desc)
518  		goto outsparse;
519  
520  	raw_spin_lock_irqsave(&desc->lock, flags);
521  	for_each_online_cpu(j)
522  		any_count |= kstat_irqs_cpu(i, j);
523  	action = desc->action;
524  	if (!action && !any_count)
525  		goto out;
526  
527  	seq_printf(p, "%*d: ", prec, i);     //1、打印逻辑中断号

528  	for_each_online_cpu(j)
529  		seq_printf(p, "%10u ", kstat_irqs_cpu(i, j));    //2、打印中断次数
530  
531  	if (desc->irq_data.chip) {
532  		if (desc->irq_data.chip->irq_print_chip)
533  			desc->irq_data.chip->irq_print_chip(&desc->irq_data, p);
534  		else if (desc->irq_data.chip->name)
535  			seq_printf(p, " %8s", desc->irq_data.chip->name);   //3、打印中断名称
536  		else
537  			seq_printf(p, " %8s", "-");
538  	} else {
539  		seq_printf(p, " %8s", "None");
540  	}
541  	if (desc->irq_data.domain)
542  		seq_printf(p, " %*d", prec, (int) desc->irq_data.hwirq);        //4、打印硬件中断号,比如,gpio number 
543  #ifdef CONFIG_GENERIC_IRQ_SHOW_LEVEL
544  	seq_printf(p, " %-8s", irqd_is_level_type(&desc->irq_data) ? "Level" : "Edge");  //打印中断触发类型
545  #endif
546  	if (desc->name)
547  		seq_printf(p, "-%-8s", desc->name);
548  
549  	if (action) {
550  		seq_printf(p, "  %s", action->name);
551  		while ((action = action->next) != NULL)
552  			seq_printf(p, ", %s", action->name);    //5、打印中断处理函数名称
553  	}
554  
555  	seq_putc(p, '\n');
556  out:
557  	raw_spin_unlock_irqrestore(&desc->lock, flags);
558  outsparse:
559  	irq_unlock_sparse();
560  	return 0;
561  }
562 

proc/interrupts】内核中断 首先是内核中断的分类,这里只是根据proc/interrupts下显示的中断进行分类,主要包含外部中断和IPI中断cat proc/interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 1: 107049 104452 ... 阅读详情

相关推荐

05、基于ALV表报实现复选框、全选、取消全选等功能

基于Function ALV实现复选框、全选及取消全选等功能

wo520yl1314的博客 2317

Linux性能优化笔记

CPU性能监控解析 首先,最容易想到的应该是 CPU 使用率,这也是实际环境中最常见的一个性能指标。 CPU 使用率描述了非空闲时间占总 CPU 时间的百分比,根据 CPU 上运行任务的不同,又被分为用户CPU、系统CPU、等待I/O CPU、软中断和硬中断等。 用户 CPU 使用率,包括用户态 CPU 使用率(user)和低优先级用户态 CPU 使用率(nice),表示 CPU 在用户态运行的...

wu_amber的博客 2529

告别手动复制粘贴:3种高效合并Excel表格的方法对比(含代码)

本文对比了VBA、Power Query和Python三种高效合并Excel表格的方法,并提供了可直接运行的代码。针对不同数据量、更新频率和技术背景,详细分析了各方案的优缺点与适用场景,帮助读者告别低效的手动操作,实现自动化数据整合。

weixin_29057237的博客 415

驱动 (4) 中断

linux_4.0/kernel/irq/proc.c show_interrupts /proc/interrupts列出当前所以系统注册的中断,记录中断号,中断发生次数,中断设备名称 如下图:从右至右:中断号 中断次数 中断设备名称 cat /proc/interrupts 读取到的内容从左到右,分别为:1、逻辑中断号(软件中断号,linux分配的中断号),2、中断...

u011011827的博客 2655

/proc/interrupts 和 /proc/stat 查看中断的情况

<br />在/proc文件系统下,又两个文件提供了中断的信息。<br /> <br />/proc/interrupts 文件中列出当前系统使用的中断的情况,所以某个中断处理没有安装,是不会显示的。哪怕之前安装过,被卸载了。 <br />从左到右分别是, <br />irq的序号, 在各自cpu上发生中断的次数,可编程中断控制器,设备名称(request_irq的dev_name字段)<br />$cat /proc/interrupts <br />            CPU0       CP

RichardYSteven的专栏 3万+

/proc/uptime和/proc/interrupts

/proc/uptime /proc/uptime里面的两个数字分别表示:  the uptime of the system (seconds), and the amount of time spent in idle process (seconds).   /proc/uptime 2个数字的意义,第一个数值代表系统总的启动时间,第二个数值则代表系统空闲的时间,

Andes Home 千年的塔 -十年技术,风雨兼程 1557

proc/interrupts

中断在各CPU上发生的次数,中断所属父设备名称(中断控制器的名字)、/proc/interrupts中的字段依次是。、中断触发方式(电平或边沿)、中断名称。

wwwlyj123321的博客 1360

cat /proc/interrupts

读取到的内容从左到右,分别为:1、逻辑中断号,2、中断在各CPU发生的次数,3、中断所属设备类名称,4、硬件中断号,5、中断处理函数。

l00102795的博客 1413

cat /proc/interrupts, cat /proc/stat

------------------>Part 1: cat /proc/interrupts 文件/proc/interrupts是中断报告文件,可以查看中断发生的次数。 Linux内核通常会在第一个CPU上处理中断,以便最大化缓存本地性            CPU0 CPU1   0: 61 20 IO-APIC-edge timer   1: 5098 5157 IO-A

evenness的专栏 1万+

linux中利用/proc/interrupts 和 /proc/stat 查看中断的情况

linux中利用/proc/interrupts 和 /proc/stat 查看中断的情况 在/proc文件系统下,有两个文件提供了中断的信息。 /proc/interrupts 文件中列出当前系统使用的中断的情况,所以某个中断处理没有安装,是不会显示的。哪怕之前安装过,被卸载了。 从左到右分别是: irq的序号, 在各自cpu上发生中断的次数,可编程中断控制器

chenglinhust的专栏 9233

/proc/interrupts /proc/stat 查看中断信息

/proc/interrupts列出当前所以系统注册的系统

邓永坚的blog 8955

Linux中断分析:/proc/interrupts解读

radix_tree_descend(parent, &node, index)从父节点 parent 出发,根据索引 index 计算 “下一层子节点的偏移量 offset”,并通过 &node 传出下一层要访问的子节点。当父节点是叶子节点的直接上层节点(即最底层内部节点)时,其slots数组不再指向子节点,而是直接存储实际数据项(如irq_desc实例)radix_tree_is_internal_node(node)判断当前节点 node 是否为基数树的内部节点(而非叶子节点)。

c1837653285的博客 1718

linux内核 /proc/interrupts

读取到的内容从左到右,分别为:1、逻辑中断号,2、中断在各CPU发生的次数,3、中断所属设备类名称,4、硬件中断号,5、中断处理函数。已经注册的中断为什么在proc/interrupts中不存在时,因为注册的中断注销了。

aningxiaoxixi的博客 3465

/proc/irq和/proc/interrupts详解

本文转载于:https://blog.csdn.net/yiyeguzhou100/article/details/51746031 在/proc目录下面,有两个与中断子系统相关的文件和子目录,它们是: /proc/interrupts:文件 /proc/irq:子目录 读取interrupts会依次显示irq编号,每个cpu对该irq的处理次数,中断控制器的名字,irq的名字,以及驱动程序...

ye1223的博客 3万+

基于Matlab实现教室人数统计系统+GUI操作界面的毕业设计(源码+图片+PPT+课题报告).rar

1、资源内容:基于Matlab实现教室人数统计系统+GUI操作界面的毕业设计(源码+图片+PPT+课题报告).rar2、适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。3、更多仿真源码和数据集下载列表(自行寻找自己需要的):https://blog.csdn.net/m0_62143653?type=download4、免责声明:本资源作为“参考资料”而不是“定制需求”不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试,能够自行添加功能修改代码。由于作者大厂工作较忙,不提供答疑服务,如不存在资源缺失问题概不负责,谢谢理解。

上一篇: linux内核数据结构之kfifo
下一篇: USB接口TVS管的选型
Fybon
博客等级 码龄18年 385粉丝 94原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值