Re: [PATCH] semaphore: Add might_sleep() to down_*() family
From: Waiman Long
Date: Mon Aug 09 2021 - 08:52:56 EST
On 8/8/21 11:51 PM, Xiaoming Ni wrote:
On 2021/8/9 11:01, Waiman Long wrote:
I think it is simpler to just put a "might_sleep()" in
__down_common() which is the function where sleep can actually happen.
If the actual atomic context hibernation occurs, the corresponding
alarm log is generated in __schedule_bug().
__schedule()
--> schedule_debug()
--> __schedule_bug()
However, "might_sleep()" indicates the possibility of sleep, so that
code writers can identify and fix the problem as soon as possible, but
does not trigger atomic context sleep.
Is it better to put "might_sleep()" in each down API entry than
__down_common() to help identify potential code problems?
Putting "might_sleep()" in each down_*() functions mean that whenever we
add a new API function, we have to remember to add "might_sleep()". If
we put it in down_common(), it will work for any newly added API
function in the future even though I doubt we will add any.
Cheers,
Longman