Re: [PATCH 2/3] sched: introduce per-cpu var next_cpu to track search limit

From: Subhra Mazumdar
Date: Tue Apr 24 2018 - 18:37:21 EST




On 04/24/2018 05:47 AM, Peter Zijlstra wrote:
On Mon, Apr 23, 2018 at 05:41:15PM -0700, subhra mazumdar wrote:
@@ -17,6 +17,7 @@
#include <trace/events/sched.h>
DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
+DEFINE_PER_CPU_SHARED_ALIGNED(int, next_cpu);
#if defined(CONFIG_SCHED_DEBUG) && defined(HAVE_JUMP_LABEL)
/*
@@ -6018,6 +6019,7 @@ void __init sched_init(void)
struct rq *rq;
rq = cpu_rq(i);
+ per_cpu(next_cpu, i) = -1;
If you leave it uninitialized it'll be 0, and we can avoid that extra
branch in the next patch, no?
0 can be a valid cpu id. I wanted to distinguish the first time. The branch
predictor will be fully trained so will not have any cost.