From: Peter Zijlstra <peterz@infradead.org> To: mingo@kernel.org, oleg@redhat.com, torvalds@linux-foundation.org Cc: tglx@linutronix.de, ilya.dryomov@inktank.com, umgwanakikbuti@gmail.com, linux-kernel@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>, David Miller <davem@davemloft.net> Subject: [PATCH 09/11] net: Clean up sk_wait_event() vs might_sleep() Date: Wed, 24 Sep 2014 10:18:54 +0200 Message-ID: <20140924082242.524407432@infradead.org> (raw) In-Reply-To: <20140924081845.572814794@infradead.org> [-- Attachment #0: peterz-sleep-net-sk_stream_wait_memory.patch --] [-- Type: text/plain, Size: 1093 bytes --] WARNING: CPU: 1 PID: 1744 at kernel/sched/core.c:7104 __might_sleep+0x58/0x90() do not call blocking ops when !TASK_RUNNING; state=1 set at [<ffffffff81070e10>] prepare_to_wait+0x50 /0xa0 [<ffffffff8105bc38>] __might_sleep+0x58/0x90 [<ffffffff8148c671>] lock_sock_nested+0x31/0xb0 [<ffffffff81498aaa>] sk_stream_wait_memory+0x18a/0x2d0 Which is a false positive because sk_wait_event() will already have TASK_RUNNING at that point if it would've gone through schedule_timeout(). So annotate with fixup_sleep(); which goes away on !DEBUG builds. Cc: netdev@vger.kernel.org Cc: David Miller <davem@davemloft.net> Reported-by: Ilya Dryomov <ilya.dryomov@inktank.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> --- include/net/sock.h | 1 + 1 file changed, 1 insertion(+) --- a/include/net/sock.h +++ b/include/net/sock.h @@ -902,6 +902,7 @@ static inline void sock_rps_reset_rxhash if (!__rc) { \ *(__timeo) = schedule_timeout(*(__timeo)); \ } \ + fixup_sleep(); \ lock_sock(__sk); \ __rc = __condition; \ __rc; \
next prev parent reply index Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-09-24 8:18 [PATCH 00/11] nested sleeps, fixes and debug infrastructure Peter Zijlstra 2014-09-24 8:18 ` [PATCH 01/11] locking/mutex: Dont assume TASK_RUNNING Peter Zijlstra 2014-10-28 11:09 ` [tip:sched/core] locking/mutex: Don't " tip-bot for Peter Zijlstra 2014-09-24 8:18 ` [PATCH 02/11] wait: Provide infrastructure to deal with nested blocking Peter Zijlstra 2014-09-29 21:02 ` Oleg Nesterov 2014-10-02 7:37 ` Peter Zijlstra 2014-10-02 21:21 ` Oleg Nesterov 2014-10-28 11:09 ` [tip:sched/core] sched/wait: " tip-bot for Peter Zijlstra 2014-09-24 8:18 ` [PATCH 03/11] wait: Add might_sleep() Peter Zijlstra 2014-10-28 11:09 ` [tip:sched/core] sched/wait: Add might_sleep() checks tip-bot for Peter Zijlstra 2014-09-24 8:18 ` [PATCH 04/11] exit: Deal with nested sleeps Peter Zijlstra 2014-10-28 11:10 ` [tip:sched/core] sched, " tip-bot for Peter Zijlstra 2014-09-24 8:18 ` [PATCH 05/11] inotify: " Peter Zijlstra 2014-10-28 11:10 ` [tip:sched/core] sched, " tip-bot for Peter Zijlstra 2014-09-24 8:18 ` [PATCH 06/11] tty: " Peter Zijlstra 2014-10-28 11:10 ` [tip:sched/core] sched, " tip-bot for Peter Zijlstra 2014-09-24 8:18 ` [PATCH 07/11] smp: Correctly deal " Peter Zijlstra 2014-10-28 11:11 ` [tip:sched/core] sched, " tip-bot for Peter Zijlstra 2014-09-24 8:18 ` [PATCH 08/11] module: Fix nested sleep Peter Zijlstra 2014-09-29 22:18 ` Oleg Nesterov 2014-09-30 13:43 ` Peter Zijlstra 2014-10-28 11:11 ` [tip:sched/core] sched, modules: Fix nested sleep in add_unformed_module() tip-bot for Peter Zijlstra 2014-09-24 8:18 ` Peter Zijlstra [this message] 2014-09-24 8:36 ` [PATCH 09/11] net: Clean up sk_wait_event() vs might_sleep() Peter Zijlstra 2014-10-28 11:11 ` [tip:sched/core] sched, net: Clean up sk_wait_event() vs. might_sleep() tip-bot for Peter Zijlstra 2014-09-24 8:18 ` [PATCH 10/11] sched: Debug nested sleeps Peter Zijlstra 2014-09-29 22:13 ` Oleg Nesterov 2014-09-30 13:49 ` Peter Zijlstra 2014-09-30 21:47 ` Oleg Nesterov 2014-10-01 16:10 ` Peter Zijlstra 2014-10-01 18:35 ` Oleg Nesterov 2014-10-02 9:07 ` Peter Zijlstra 2014-10-02 21:34 ` Oleg Nesterov 2014-10-28 11:11 ` [tip:sched/core] " tip-bot for Peter Zijlstra 2014-09-24 8:18 ` [PATCH 11/11] sched: Exclude cond_resched() from nested sleep test Peter Zijlstra 2014-10-28 11:12 ` [tip:sched/core] " tip-bot for Peter Zijlstra 2014-09-25 8:30 ` [PATCH 00/11] nested sleeps, fixes and debug infrastructure Mike Galbraith 2014-09-25 9:06 ` Peter Zijlstra 2014-09-25 9:10 ` Mike Galbraith 2014-09-25 9:15 ` Peter Zijlstra 2014-09-25 9:56 ` Mike Galbraith 2014-09-25 13:59 ` BUG: sleeping function called from invalid context at drivers/cpufreq/cpufreq.c:370 Mike Galbraith 2014-09-26 6:24 ` Mike Galbraith 2014-09-26 7:54 ` Mike Galbraith 2014-09-26 14:10 ` Rafael J. Wysocki 2014-09-26 22:44 ` Rafael J. Wysocki 2014-09-27 6:14 ` Mike Galbraith 2014-09-27 19:57 ` Rafael J. Wysocki 2014-10-02 10:22 ` [PATCH 00/11] nested sleeps, fixes and debug infrastructure Peter Zijlstra 2014-10-02 12:15 ` Peter Zijlstra 2014-10-27 13:41 ` Peter Zijlstra 2014-10-28 0:07 ` Oleg Nesterov 2014-10-28 8:23 ` Peter Zijlstra 2014-10-29 0:00 ` Oleg Nesterov 2014-10-29 9:35 ` Peter Zijlstra 2014-10-29 11:31 ` Peter Zijlstra 2014-10-29 11:36 ` Peter Zijlstra 2014-10-29 14:26 ` Peter Zijlstra 2014-11-04 16:08 ` [tip:sched/core] audit, sched/wait: Fixup kauditd_thread() wait loop tip-bot for Peter Zijlstra
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20140924082242.524407432@infradead.org \ --to=peterz@infradead.org \ --cc=davem@davemloft.net \ --cc=ilya.dryomov@inktank.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@kernel.org \ --cc=oleg@redhat.com \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.org \ --cc=umgwanakikbuti@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
LKML Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \ linux-kernel@vger.kernel.org public-inbox-index lkml Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git