tasklet
tasklet虽然名字中含有一个"task",但它跟我们熟知的多线程环境中的那个"task"并没有什么直接的关系。前文介绍的9种softirq中,有两种是和tasklet相关的,一个是HI_SOFTIRQ,一个是TASKLET_SOFTIRQ。

由于在实际场景中TASKLET_SOFTIRQ被使用的更多,接下来就以TASKLET_SOFTIRQ为例来讲解tasklet的具体实现。
tasklet作为bottom half的一种实现,自然也有对应的执行函数。当一个hardirq对应的bottom half被设置为tasklet模式时,hardirq执行完后会触发一个tasklet,而这个tasklet将以tasklet_struct的形式,挂载在由tasklet组成的链表上。在tasklet_struct中,"func"和"data"分别是tasklet的执行函数指针和传入参数。
struct tasklet_struct
{
struct tasklet_struct *next;
void (*func)(unsigned long);
unsigned long data;};
文章转载自术道经纬,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




