Re: [RFC][PATCH v2] sched/rt: Use IPI to trigger RT task push migration instead of pulling
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2015-02-24 21:23:44
Also in:
lkml
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2015-02-24 21:23:44
Also in:
lkml
On Tue, 24 Feb 2015 13:39:46 -0500 Steven Rostedt [off-list ref] wrote:
@@ -1775,6 +1946,15 @@ static int pull_rt_task(struct rq *this_ */ smp_rmb(); + /* Use local just in case a feature is switched in the middle of this */ + if ((use_ipi = sched_feat(RT_PUSH_IPI))) { + /* Make sure the update to pending is visible here. */ + smp_rmb();
While porting this to the -rt kernel, I noticed that this rmb is unneeded. It's already called above for a different reason :-p -- Steve
+
+ /* If a push ipi is out, then we must do the old method */
+ push_pending = READ_ONCE(this_rq->rt.push_csd_pending);
+ }
+
for_each_cpu(cpu, this_rq->rd->rto_mask) {
if (this_cpu == cpu)
continue;