diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-10 13:17:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-10 13:17:09 -0400 |
commit | d82991a8688ad128b46db1b42d5d84396487a508 (patch) | |
tree | a0743d346c23df3dd057c89b83100c09a376224a /kernel/sched | |
parent | f4e5b30d809d3882c69f43b5c90779af033d40c4 (diff) | |
parent | ccba8b64452b8dbf2c9670de026d00f519bb5da0 (diff) |
Merge branch 'core-rseq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull restartable sequence support from Thomas Gleixner:
"The restartable sequences syscall (finally):
After a lot of back and forth discussion and massive delays caused by
the speculative distraction of maintainers, the core set of
restartable sequences has finally reached a consensus.
It comes with the basic non disputed core implementation along with
support for arm, powerpc and x86 and a full set of selftests
It was exposed to linux-next earlier this week, so it does not fully
comply with the merge window requirements, but there is really no
point to drag it out for yet another cycle"
* 'core-rseq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
rseq/selftests: Provide Makefile, scripts, gitignore
rseq/selftests: Provide parametrized tests
rseq/selftests: Provide basic percpu ops test
rseq/selftests: Provide basic test
rseq/selftests: Provide rseq library
selftests/lib.mk: Introduce OVERRIDE_TARGETS
powerpc: Wire up restartable sequences system call
powerpc: Add syscall detection for restartable sequences
powerpc: Add support for restartable sequences
x86: Wire up restartable sequence system call
x86: Add support for restartable sequences
arm: Wire up restartable sequences system call
arm: Add syscall detection for restartable sequences
arm: Add restartable sequences support
rseq: Introduce restartable sequences system call
uapi/headers: Provide types_32_64.h
Diffstat (limited to 'kernel/sched')
-rw-r--r-- | kernel/sched/core.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index e9866f86f304..a98d54cd5535 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -1191,6 +1191,7 @@ void set_task_cpu(struct task_struct *p, unsigned int new_cpu) | |||
1191 | if (p->sched_class->migrate_task_rq) | 1191 | if (p->sched_class->migrate_task_rq) |
1192 | p->sched_class->migrate_task_rq(p); | 1192 | p->sched_class->migrate_task_rq(p); |
1193 | p->se.nr_migrations++; | 1193 | p->se.nr_migrations++; |
1194 | rseq_migrate(p); | ||
1194 | perf_event_task_migrate(p); | 1195 | perf_event_task_migrate(p); |
1195 | } | 1196 | } |
1196 | 1197 | ||
@@ -2634,6 +2635,7 @@ prepare_task_switch(struct rq *rq, struct task_struct *prev, | |||
2634 | { | 2635 | { |
2635 | sched_info_switch(rq, prev, next); | 2636 | sched_info_switch(rq, prev, next); |
2636 | perf_event_task_sched_out(prev, next); | 2637 | perf_event_task_sched_out(prev, next); |
2638 | rseq_preempt(prev); | ||
2637 | fire_sched_out_preempt_notifiers(prev, next); | 2639 | fire_sched_out_preempt_notifiers(prev, next); |
2638 | prepare_task(next); | 2640 | prepare_task(next); |
2639 | prepare_arch_switch(next); | 2641 | prepare_arch_switch(next); |