From: tip-bot for Peter Zijlstra <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: tglx@linutronix.de, tj@kernel.org, hpa@zytor.com,
sasha.levin@oracle.com, torvalds@linux-foundation.org,
mingo@kernel.org, peterz@infradead.org, dvyukov@google.com,
linux-kernel@vger.kernel.org
Subject: [tip:sched/core] sched/core: Fix unserialized r-m-w scribbling stuff
Date: Wed, 6 Jan 2016 10:48:15 -0800 [thread overview]
Message-ID: <tip-be958bdc96f18bc1356177bbb79d46ea0c037b96@git.kernel.org> (raw)
In-Reply-To: <20151125150207.GM11639@twins.programming.kicks-ass.net>
Commit-ID: be958bdc96f18bc1356177bbb79d46ea0c037b96
Gitweb: http://git.kernel.org/tip/be958bdc96f18bc1356177bbb79d46ea0c037b96
Author: Peter Zijlstra <peterz@infradead.org>
AuthorDate: Wed, 25 Nov 2015 16:02:07 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 6 Jan 2016 11:01:07 +0100
sched/core: Fix unserialized r-m-w scribbling stuff
Some of the sched bitfieds (notably sched_reset_on_fork) can be set
on other than current, this can cause the r-m-w to race with other
updates.
Since all the sched bits are serialized by scheduler locks, pull them
in a separate word.
Reported-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: akpm@linux-foundation.org
Cc: hannes@cmpxchg.org
Cc: mhocko@kernel.org
Cc: vdavydov@parallels.com
Link: http://lkml.kernel.org/r/20151125150207.GM11639@twins.programming.kicks-ass.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
include/linux/sched.h | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 9cf9dd1..fa39434 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1455,14 +1455,15 @@ struct task_struct {
/* Used for emulating ABI behavior of previous Linux versions */
unsigned int personality;
- unsigned in_execve:1; /* Tell the LSMs that the process is doing an
- * execve */
- unsigned in_iowait:1;
-
- /* Revert to default priority/policy when forking */
+ /* scheduler bits, serialized by scheduler locks */
unsigned sched_reset_on_fork:1;
unsigned sched_contributes_to_load:1;
unsigned sched_migrated:1;
+ unsigned :0; /* force alignment to the next boundary */
+
+ /* unserialized, strictly 'current' */
+ unsigned in_execve:1; /* bit to tell LSMs we're in execve */
+ unsigned in_iowait:1;
#ifdef CONFIG_MEMCG
unsigned memcg_may_oom:1;
#endif
next prev parent reply other threads:[~2016-01-06 18:48 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-13 18:59 [PATCH 1/2] memcg: flatten task_struct->memcg_oom Tejun Heo
2015-09-13 18:59 ` Tejun Heo
2015-09-13 19:00 ` [PATCH v3 2/2] memcg: punt high overage reclaim to return-to-userland path Tejun Heo
[not found] ` <20150913190008.GB25369-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2015-09-15 7:47 ` Johannes Weiner
2015-09-15 7:47 ` Johannes Weiner
2015-09-15 15:53 ` Tejun Heo
2015-09-15 16:12 ` Johannes Weiner
[not found] ` <20150915161218.GA12032-druUgvl0LCNAfugRpC6u6w@public.gmane.org>
2015-09-15 16:22 ` Tejun Heo
2015-09-15 16:22 ` Tejun Heo
[not found] ` <20150915162253.GI2905-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-09-15 16:33 ` Johannes Weiner
2015-09-15 16:33 ` Johannes Weiner
[not found] ` <20150913185940.GA25369-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2015-09-15 7:37 ` [PATCH 1/2] memcg: flatten task_struct->memcg_oom Johannes Weiner
2015-09-15 7:37 ` Johannes Weiner
2015-09-20 14:45 ` Sasha Levin
2015-09-20 14:45 ` Sasha Levin
[not found] ` <55FEC685.5010404-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-09-21 20:01 ` Tejun Heo
2015-09-21 20:01 ` Tejun Heo
[not found] ` <20150921200141.GH13263-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-09-30 18:54 ` Tejun Heo
2015-09-30 18:54 ` Tejun Heo
2015-11-25 14:43 ` Peter Zijlstra
2015-11-25 14:43 ` Peter Zijlstra
[not found] ` <20151125144354.GB17308-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2015-11-25 15:02 ` Peter Zijlstra
2015-11-25 15:02 ` Peter Zijlstra
2015-11-25 15:31 ` Andrey Ryabinin
[not found] ` <CAPAsAGwa9-7UBUnhysfek3kyWKMgaUJRwtDPEqas1rKwkeTtoA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-11-25 17:34 ` Dmitry Vyukov
2015-11-25 17:34 ` Dmitry Vyukov
2015-11-25 17:44 ` Peter Zijlstra
[not found] ` <20151125174449.GD17308-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2015-12-11 16:25 ` Tejun Heo
2015-12-11 16:25 ` Tejun Heo
2015-12-15 19:22 ` Peter Zijlstra
2015-12-30 9:23 ` [PATCH v4.4-rc7] sched: isolate task_struct bitfields according to synchronization domains Tejun Heo
[not found] ` <20151230092337.GD3873-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2015-12-30 20:10 ` Linus Torvalds
2015-12-30 20:10 ` Linus Torvalds
2015-12-30 20:17 ` Linus Torvalds
[not found] ` <CA+55aFx0WxoUPrOPaq3HxM+YUQQ0DPV-c3f8kE1ec7agERb_Lg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-30 20:41 ` Tejun Heo
2015-12-30 20:41 ` Tejun Heo
2015-12-30 20:43 ` Linus Torvalds
2016-01-01 2:56 ` [PATCH v4.4-rc7] sched: move sched lock synchronized bitfields in task_struct into ->atomic_flags Tejun Heo
2016-01-01 2:56 ` Tejun Heo
[not found] ` <20160101025628.GA3660-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2016-01-06 13:44 ` Tejun Heo
2016-01-06 13:44 ` Tejun Heo
2016-01-06 18:48 ` tip-bot for Peter Zijlstra [this message]
2016-01-06 20:17 ` [tip:sched/core] sched/core: Fix unserialized r-m-w scribbling stuff Tejun Heo
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=tip-be958bdc96f18bc1356177bbb79d46ea0c037b96@git.kernel.org \
--to=tipbot@zytor.com \
--cc=dvyukov@google.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=sasha.levin@oracle.com \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.