作家
登录

Linux内核态抢占机制分析

作者: 来源: 2017-08-17 12:19:20 阅读 我要评论

  •  
  • # define sub_preempt_count(val) do { preempt_count() -= (val); } while (0)   
  •  
  • #endif    
  •    
  •  
  • #define inc_preempt_count() add_preempt_count(1)   
  •  
  • #define dec_preempt_count() sub_preempt_count(1)   
  •    
  •  
  • /**  
  •  
  •  * 在thread_info描述符中选择preempt_count字段  
  •  
  •  */   
  •  
  • #define preempt_count() (current_thread_info()->preempt_count)      
  •  
  • #ifdef CONFIG_PREEMPT      
  •  
  • asmlinkage void preempt_schedule(void);    
  •    
  •  
  • /**  
  •  
  •  * 使抢占计数加1  
  •  
  •  */   
  •  
  • #define preempt_disable() \   
  •  
  • do { \   
  •  
  •     inc_preempt_count(); \   
  •  
  •     barrier(); \   
  •  
  • } while (0)   
  •    
  •  
  • /**  
  •  
  •  * 使抢占计数减1  
  •  
  •  */   
  •  
  • #define preempt_enable_no_resched() \   
  •  
  • do { \   
  •  
  •     barrier(); \   
  •  
  •     dec_preempt_count(); \   
  •  
  • } while (0)    
  •    
  •  
  • #define preempt_check_resched() \   
  •  
  • do { \   
  •  
  •     if (unlikely(test_thread_flag(TIF_NEED_RESCHED))) \   
  •  
  •         preempt_schedule(); \   
  •  
  • } while (0)    
  •    
  •  
  • /**  
  •  
  •  * 使抢占计数减1,并在thread_info描述符的TIF_NEED_RESCHED标记被置为1的情况下,调用preempt_schedule()  
  •  
  •  */   
  •  
  • #define preempt_enable() \   
  •  
  • do { \   
  •  
  •     preempt_enable_no_resched(); \   
  •  
  •     preempt_check_resched(); \   
  •  

      推荐阅读

      PHP如何实现依赖注入

    【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索 摘要: 控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特点。控制反转(IOC)是一种思惟,依附>>>详细阅读


    本文标题:Linux内核态抢占机制分析

    地址:http://www.17bianji.com/lsqh/36756.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)