Re: [RFC][PATCH 25/26] sched, numa: Only migrate long-running entities

Peter Zijlstra
2012-07-09T12:26:48Z

On Sun, 2012-07-08 at 14:34 -0400, Rik van Riel wrote:
> On 03/16/2012 10:40 AM, Peter Zijlstra wrote:
>
> > +static u64 process_cpu_runtime(struct numa_entity *ne)
> > +{
> > + struct task_struct *p, *t;
> > + u64 runtime = 0;
> > +
> > + rcu_read_lock();
> > + t = p = ne_owner(ne);
> > + if (p) do {
> > + runtime += t->se.sum_exec_runtime; // @#$#@ 32bit
> > + } while ((t = next_thread(t)) != p);
> > + rcu_read_unlock();
> > +
> > + return runtime;
> > +}
>
> > + /*
> > + * Don't bother migrating memory if there's less than 1 second
> > + * of runtime on the tasks.
> > + */
> > + if (ne->nops->cpu_runtime(ne) < NSEC_PER_SEC)
> > + return false;
>
> Do we really want to calculate the amount of CPU time used
> by a process, and start migrating after just one second?
>
> Or would it be ok to start migrating once a process has
> been scanned once or twice by the NUMA code?

You mean, the 2-3rd time we try and migrate this task, not the memory
scanning thing as per Andrea, right?

Yeah, that might work too..