diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-03-19 01:44:24 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-03-19 04:27:53 +0100 |
commit | 6f3d09291b4982991680b61763b2541e53e2a95f (patch) | |
tree | 683ca6bd7c93635ba315fa2f939de74124a39196 /net/core | |
parent | sched: clean up wakeup balancing, code flow (diff) | |
download | linux-6f3d09291b4982991680b61763b2541e53e2a95f.tar.xz linux-6f3d09291b4982991680b61763b2541e53e2a95f.zip |
sched, net: socket wakeups are sync
'sync' wakeups are a hint towards the scheduler that (certain)
networking related wakeups likely create coupling between tasks.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/sock.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 09cb3a74de7f..2654c147c004 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -1621,7 +1621,7 @@ static void sock_def_readable(struct sock *sk, int len) { read_lock(&sk->sk_callback_lock); 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, SOCK_WAKE_WAITD, POLL_IN); read_unlock(&sk->sk_callback_lock); } @@ -1635,7 +1635,7 @@ static void sock_def_write_space(struct sock *sk) */ if ((atomic_read(&sk->sk_wmem_alloc) << 1) <= sk->sk_sndbuf) { if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) - wake_up_interruptible(sk->sk_sleep); + wake_up_interruptible_sync(sk->sk_sleep); /* Should agree with poll, otherwise some programs break */ if (sock_writeable(sk)) |