Commit f6aaca35 authored by Ingo Molnar's avatar Ingo Molnar Committed by Linus Torvalds

[PATCH] add lock_need_resched()

Add lock_need_resched() which is to check for the necessity of lock-break
in a critical section.  Used by later latency-break patches.

tested on x86, should work on all architectures.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 3365d167
...@@ -1083,6 +1083,17 @@ extern int cond_resched_lock(spinlock_t * lock); ...@@ -1083,6 +1083,17 @@ extern int cond_resched_lock(spinlock_t * lock);
# define need_lockbreak(lock) 0 # define need_lockbreak(lock) 0
#endif #endif
/*
* Does a critical section need to be broken due to another
* task waiting or preemption being signalled:
*/
static inline int lock_need_resched(spinlock_t *lock)
{
if (need_lockbreak(lock) || need_resched())
return 1;
return 0;
}
/* Reevaluate whether the task has signals pending delivery. /* Reevaluate whether the task has signals pending delivery.
This is required every time the blocked sigset_t changes. This is required every time the blocked sigset_t changes.
callers must hold sighand->siglock. */ callers must hold sighand->siglock. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment