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: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
# define need_lockbreak(lock) 0
#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.
This is required every time the blocked sigset_t changes.
callers must hold sighand->siglock. */