【问题标题】:Can a process in kernel context sleep while holding a mutex?内核上下文中的进程可以在持有互斥锁时休眠吗?
【发布时间】:2019-03-29 01:06:07
【问题描述】:

我知道内核允许进程在持有互斥锁时休眠(尽管这不是一个好习惯)。我的问题是,这是否一定意味着进程将获得pre-empted? LKD 说每次我获得锁时,process->thread_info->preempt_count 都会增加,并且 schedule() 在调用调度程序之前检查preempt_count

那么睡眠线程会不会被抢占并继续占用系统?

【问题讨论】:

    标签: linux kernel mutex


    【解决方案1】:

    是的,mutex 持有者完全可以睡觉。


    LKD 说每次我获得锁时,process->thread_info->preempt_count 都会增加...

    这是关于自旋锁,而不是互斥锁spinlock 持有人实际上是被禁止睡觉的。

    【讨论】:

      猜你喜欢
      • 2012-09-23
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多