随笔-15  评论-10  文章-1  trackbacks-0
最近发现一处spinlock误用的案例,大概情况是这样的:

    有一个链表,中断程序和内核线程都需要去访问,代码中采用了spinlock
对链表进行保护,使用的下面的函数,
    spin_lock()
    spin_unlock()

    导致现象是,在繁忙操作这个表的时候,随机出现kernel bug的提示,然后系统死掉,定位为spinlock使用有误,原因是上述的函数只是禁止了抢占,但是没有关中断,所以正确的应该是使用下面的函数代替,
    spin_lock_irqsave()
    spin_unlock_irqrestore()
   

   

posted on 2007-06-16 00:08 hzb 阅读(380) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理