On 2016-10-28 00:46, Peter Zijlstra wrote:
On Fri, Oct 28, 2016 at 12:10:41AM -0700, Vikram Mulukutla wrote:
+void walt_finish_migrate(struct task_struct *p, struct rq *dest_rq,
bool locked)
+{
+ u64 wallclock;
+ unsigned long flags;
+
+ if (!p->on_rq && p->state != TASK_WAKING)
+ return;
+
+ if (locked == false)
+ raw_spin_lock_irqsave(&dest_rq->lock, flags);
+
+
+ if (locked == false)
+ raw_spin_unlock_irqrestore(&dest_rq->lock, flags);
+}
+
+void walt_prepare_migrate(struct task_struct *p, struct rq *src_rq,
bool locked)
+{
+ u64 wallclock;
+ unsigned long flags;
+
+ if (!p->on_rq && p->state != TASK_WAKING)
+ return;
+
+ if (locked == false)
+ raw_spin_lock_irqsave(&src_rq->lock, flags);
+
+
+ if (locked == false)
+ raw_spin_unlock_irqrestore(&src_rq->lock, flags);
+}
Seriously bad style that. Please, less bonghits before writing code.
This was my bad personal attempt at eliminating double-locking from the
original code.
This was pointed out earlier and shall go away once I can come up with a
way to merge
this into enqeue/dequeue sans bonghits :-)