Preemption

Preemption API

preemptible() - return whether preemption is able or not

#define preemptible()   (preempt_count() == 0 && !irqs_disabled())

현재 선점이 가능하다면 true를 리턴, 아닐경우 false를 리턴함. irqs_disable()는 왜 있지???

preempt_enable() -

preempt_count를 1 감소시켰을 때 선점이 가능하고 또 필요하다면 __preempt_schedule()을 호출해서 선점을 시도한다.

#define preempt_enable() \
do { \       
        barrier(); \
        if (unlikely(preempt_count_dec_and_test())) \
                __preempt_schedule(); \
} while (0)

preempt_disable_notrace()

current의 preemption count를 1 증가시켜서 선점을 비활성화한다.

results matching ""

    No results matching ""