[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <tip-d9345c65eb7930ac6755cf593ee7686f4029ccf4@git.kernel.org>
Date: Tue, 22 Nov 2016 04:31:28 -0800
From: tip-bot for Pan Xinhui <tipbot@...or.com>
To: linux-tip-commits@...r.kernel.org
Cc: xinhui.pan@...ux.vnet.ibm.com, borntraeger@...ibm.com,
pbonzini@...hat.com, linux-kernel@...r.kernel.org,
mingo@...nel.org, peterz@...radead.org, tglx@...utronix.de,
jgross@...e.com, torvalds@...ux-foundation.org, hpa@...or.com
Subject: [tip:locking/core] sched/core: Introduce the vcpu_is_preempted(cpu)
interface
Commit-ID: d9345c65eb7930ac6755cf593ee7686f4029ccf4
Gitweb: http://git.kernel.org/tip/d9345c65eb7930ac6755cf593ee7686f4029ccf4
Author: Pan Xinhui <xinhui.pan@...ux.vnet.ibm.com>
AuthorDate: Wed, 2 Nov 2016 05:08:28 -0400
Committer: Ingo Molnar <mingo@...nel.org>
CommitDate: Tue, 22 Nov 2016 12:48:05 +0100
sched/core: Introduce the vcpu_is_preempted(cpu) interface
This patch is the first step to add support to improve lock holder
preemption beaviour.
vcpu_is_preempted(cpu) does the obvious thing: it tells us whether a
vCPU is preempted or not.
Defaults to false on architectures that don't support it.
Suggested-by: Peter Zijlstra (Intel) <peterz@...radead.org>
Tested-by: Juergen Gross <jgross@...e.com>
Signed-off-by: Pan Xinhui <xinhui.pan@...ux.vnet.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
[ Translated the changelog to English. ]
Acked-by: Christian Borntraeger <borntraeger@...ibm.com>
Acked-by: Paolo Bonzini <pbonzini@...hat.com>
Cc: David.Laight@...LAB.COM
Cc: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Thomas Gleixner <tglx@...utronix.de>
Cc: benh@...nel.crashing.org
Cc: boqun.feng@...il.com
Cc: bsingharora@...il.com
Cc: dave@...olabs.net
Cc: kernellwp@...il.com
Cc: konrad.wilk@...cle.com
Cc: linuxppc-dev@...ts.ozlabs.org
Cc: mpe@...erman.id.au
Cc: paulmck@...ux.vnet.ibm.com
Cc: paulus@...ba.org
Cc: rkrcmar@...hat.com
Cc: virtualization@...ts.linux-foundation.org
Cc: will.deacon@....com
Cc: xen-devel-request@...ts.xenproject.org
Cc: xen-devel@...ts.xenproject.org
Link: http://lkml.kernel.org/r/1478077718-37424-2-git-send-email-xinhui.pan@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@...nel.org>
---
include/linux/sched.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/include/linux/sched.h b/include/linux/sched.h
index dc37cbe..37261af 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -3510,6 +3510,18 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
#endif /* CONFIG_SMP */
+/*
+ * In order to reduce various lock holder preemption latencies provide an
+ * interface to see if a vCPU is currently running or not.
+ *
+ * This allows us to terminate optimistic spin loops and block, analogous to
+ * the native optimistic spin heuristic of testing if the lock owner task is
+ * running or not.
+ */
+#ifndef vcpu_is_preempted
+# define vcpu_is_preempted(cpu) false
+#endif
+
extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
extern long sched_getaffinity(pid_t pid, struct cpumask *mask);
Powered by blists - more mailing lists