Re: [RFC PATCH 2/3] sched: Introduce Window-Assisted CPU utilization Tracking

From: Vikram Mulukutla
Date: Fri Oct 28 2016 - 04:04:19 EST


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 :-)