linux驱动开发中的互斥机制与irq下半部处理机制

来源:互联网 发布:财务预算软件 编辑:程序博客网 时间:2024/06/06 15:37
linux定义了如下的软中断:0 HI_SOFTIRQ 1 TIMER_SOFTIRQ2 NET_TX_SOFTIRQ3 NET_RX_SOFTIRQ4 BLOCK_SOFTIRQ 5 BLOCK_IOPOLL_SOFTIRQ6 TASKLET_SOFTIRQ7 SCHED_SOFTIRQ8 HRTIMER_SOFTIRQ9 RCU_SOFTIRQ数字代表优先级,越小越高

锁主要有spinlock,semphore,wait_queue semphore与wait_queue会导致sleep, spinlock不会

下半部处理机制有tasklet, work_queue, softirq , 其中tasklet使用softirq来实现,不会导致sleep;  work_queue会导致sleep
要实现音频处理那种使用,只能靠关中断来实现,但是网卡为何使用tasklet来实现呢?难道不怕下一个包将当前包冲掉??tasklet的优先级比普通任务的优先级高,所以先被处理


irq_handler中不能使用spinlock!!!
2017.1.8

0 0