硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。现在的服务器上动不动就是多 CPU 多核、多网卡、多硬盘,如果能让网卡中断独占1个 CPU (core)、磁盘 IO 中断独占1个 CPU 的...
分类:
系统相关 时间:
2015-07-21 22:04:15
阅读次数:
153
目前正在调试msix中断,在测试过程中发现会概率性的丢失中断。Msix中断默认是edge触发的中断,edge触发的中断是在中断对应pin发生电平信号跳变的时候,会发出一个中断请求。因为跳变是一瞬间的,不会像level触发中断那样一直保持电平不变,这样就可能会漏掉某一个跳变的瞬间,表现就是丢失了一个中断。
内核中处理edge触发中断的函数为handle_edge_irq,此函数有do_IRQ...
分类:
其他好文 时间:
2015-07-19 11:54:09
阅读次数:
122
IRQ: interrput request queue 中断请求队列fg: foreground. fg用来把后台(background)程序调到前台(foreground)上来.rc: resources configuration. 资源设置,Linux中的配置文件常以此缩写结尾.FTP: F...
分类:
其他好文 时间:
2015-07-18 21:11:49
阅读次数:
153
(一):中断中断本质上是一种特殊的电信号,由硬件设备发向处理器。处理器在接收到中断后,会马上向操作系统反映此信号的到来,然后就u由操作系统来处理这些新到来的数据。不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标志。这些中断值被称为中断请求线(IRQ)。中断是随时随地发生的,也就是说中断并不考虑与处理器的时钟同步。异常:异常的产生必须与处理器时钟同步,异常也被成为同步中断。在处理器执行到由于...
分类:
其他好文 时间:
2015-07-13 10:27:21
阅读次数:
152
在linux下,CPU利用率分为 用户态、系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。CPU使用率:CPU的使用情况用户时间(User time)
表示CPU执行用户进程的时间,包括nices时间.通常期望用户空间CPU越高越好系统时间(System time)
表示CPU在内核运行时间,包括IRQ和softirq时间,系统CPU占用率高,表...
分类:
其他好文 时间:
2015-07-12 09:42:27
阅读次数:
121
在启动初期需要关闭CPU的IRQ,原因:
由于尚未对中断代码,向量表,中断处理器进行初始化,所以必须关闭中断。我的源代码里面定义了 CONFIG_TRACE_IRQFLAGS_SUPPORT,所以调用的是
include/linux/irqflags.h#define local_irq_disable() do { raw_local_irq_disable(); trace_ha...
分类:
其他好文 时间:
2015-07-03 15:49:53
阅读次数:
168
1.中断
#中断使得硬件得以发出通知给处理器,本质上是一种电信号
#中断随时可以产生,内核随时会被打断
#不同设备的中断不同,每个中断都通过一个唯一的数字标识,称为IRQ(中断请求)
2.中断处理程序
#响应中断的时候,内核会执行一个函数(中断处理程序或中断服务例程)
#在Linux中,中断程序为普通的C函数
3.上半部和下半部...
分类:
系统相关 时间:
2015-06-26 09:15:16
阅读次数:
129
0.946441] Serial: 8250/16550 driver, 6 ports, IRQ sharing enabled [ 0.946533] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 0.946623] seria.....
分类:
其他好文 时间:
2015-06-17 10:59:04
阅读次数:
109
/lib_arm/board.c 主要完成了一些初始化的操作,最重要的是有start_armboot函数_armboot_start地址为多少??/* * * U-Boot code: 00F00000 -> 00F3C774 BSS: -> 00FC3274 * IRQ Stack: 00ebf....
分类:
其他好文 时间:
2015-06-14 08:08:35
阅读次数:
116
话不多说,先上代码。
//code path:arch/arm/mach-at91/board-sam9260ek.cMACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK")
/* Maintainer: Atmel */
.phys_io = AT91_BASE_SYS,
.io_pg_offst = (AT91_VA_BASE_SYS >...
分类:
其他好文 时间:
2015-06-09 17:30:04
阅读次数:
280