summaryrefslogtreecommitdiff
path: root/include/linux/wait.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2003-05-18 20:46:29 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-05-18 20:46:29 -0700
commit84205d0528f386e99ec00cd378acb3c4df010643 (patch)
tree927badb4f771092255aeac16756264ae6e091631 /include/linux/wait.h
parentd1347e18678cee1ae7f84e71a12fcfc144402c20 (diff)
[PATCH] sync wakeup on UP
This fixes the scheduler's sync-wakeup code to be consistent on UP as well. Right now there's a behavioral difference between an UP kernel and an SMP kernel running on a UP box: sync wakeups (which are only activated on SMP) can cause a wakeup of a higher prio task, without preemption. On UP kernels this does not happen. This difference in wakeup behavior is bad. This patch activates sync wakeups on UP as well - in the cases sync wakeups are done the waker knows that it will schedule away soon, so this 'delay preemption' decision is correct on UP as well.
Diffstat (limited to 'include/linux/wait.h')
-rw-r--r--include/linux/wait.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/include/linux/wait.h b/include/linux/wait.h
index f05754e8a3ca..c7aeb849f389 100644
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -111,15 +111,12 @@ extern void FASTCALL(__wake_up_sync(wait_queue_head_t *q, unsigned int mode, int
#define wake_up(x) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 1)
#define wake_up_nr(x, nr) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, nr)
#define wake_up_all(x) __wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 0)
+#define wake_up_all_sync(x) __wake_up_sync((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 0)
#define wake_up_interruptible(x) __wake_up((x),TASK_INTERRUPTIBLE, 1)
#define wake_up_interruptible_nr(x, nr) __wake_up((x),TASK_INTERRUPTIBLE, nr)
#define wake_up_interruptible_all(x) __wake_up((x),TASK_INTERRUPTIBLE, 0)
#define wake_up_locked(x) __wake_up_locked((x), TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE)
-#ifdef CONFIG_SMP
#define wake_up_interruptible_sync(x) __wake_up_sync((x),TASK_INTERRUPTIBLE, 1)
-#else
-#define wake_up_interruptible_sync(x) __wake_up((x),TASK_INTERRUPTIBLE, 1)
-#endif
#define __wait_event(wq, condition) \
do { \