summaryrefslogtreecommitdiffstats
path: root/net/unix
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2007-10-15 17:00:19 +0200
committerIngo Molnar <mingo@elte.hu>2007-10-15 17:00:19 +0200
commit71e20f1873d46e138c26ce83f8fe54b7221f572f (patch)
tree3b5c5083d3ffcf7c9d7ddad81acf30c09197ef99 /net/unix
parentd172fcd3ae1ca7ac27ec8904242fd61e0e11d332 (diff)
downloadlinux-71e20f1873d46e138c26ce83f8fe54b7221f572f.tar.gz
linux-71e20f1873d46e138c26ce83f8fe54b7221f572f.tar.bz2
linux-71e20f1873d46e138c26ce83f8fe54b7221f572f.zip
sched: affine sync wakeups
make sync wakeups affine for cache-cold tasks: if a cache-cold task is woken up by a sync wakeup then use the opportunity to migrate it straight away. (the two tasks are 'related' because they communicate) Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'net/unix')
-rw-r--r--net/unix/af_unix.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index 2b57eaf66abc..6996cba5aa96 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -334,7 +334,7 @@ static void unix_write_space(struct sock *sk)
read_lock(&sk->sk_callback_lock);
if (unix_writable(sk)) {
if (sk->sk_sleep && waitqueue_active(sk->sk_sleep))
- wake_up_interruptible(sk->sk_sleep);
+ wake_up_interruptible_sync(sk->sk_sleep);
sk_wake_async(sk, 2, POLL_OUT);
}
read_unlock(&sk->sk_callback_lock);
@@ -1639,7 +1639,7 @@ static int unix_dgram_recvmsg(struct kiocb *iocb, struct socket *sock,
if (!skb)
goto out_unlock;
- wake_up_interruptible(&u->peer_wait);
+ wake_up_interruptible_sync(&u->peer_wait);
if (msg->msg_name)
unix_copy_addr(msg, skb->sk);