Chinaunix

标题: 进程上下文也能执行软中断函数? [打印本页]

作者: mordorw    时间: 2013-01-23 13:39
标题: 进程上下文也能执行软中断函数?
比如 命令 查询nf_conntrack表时,在netLink中调用函数 __nf_conntrack_find , 该函数调用 local_bh_disable 和 local_bh_enable,
如果在这中间发生了收包中断, local_bh_enable后岂不是会调用do_softirq,处理协议报文
作者: cerry_king    时间: 2013-01-23 21:06
asmlinkage void do_softirq(void)
{
        unsigned long flags, old, new;

        if (in_interrupt())
                return;

这个地方会判断在中断上下文(hard、soft)直接退出,因此在进程上下文操作的话,如果某个流程软中断和进程都会调用,在进程上下文
只需要关闭软中断就可以了。
作者: mordorw    时间: 2013-01-24 08:54
我是觉得这样有点奇怪,会不会出问题

在进程里处理协议报文。再去唤醒收包的另外一个进程

如果发生了收包中断,中断结束又回到进程里处理报文。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2