lkml.org 
[lkml]   [2009]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch] Re: scheduler oddity [bug?]
    From
    Date
    On Mon, 2009-03-09 at 16:30 +0100, Mike Galbraith wrote:
    > +static void put_prev_task(struct rq *rq, struct task_struct *prev)
    > +{
    > + if (prev->state == TASK_RUNNING) {
    > + u64 runtime = prev->se.sum_exec_runtime;
    > +
    > + runtime -= prev->se.prev_sum_exec_runtime;
    > + runtime = min_t(u64, runtime, 2*sysctl_sched_migration_cost);
    > +
    > + /*
    > + * In order to avoid avg_overlap growing stale when we are
    > + * indeed overlapping and hence not getting put to sleep, grow
    > + * the avg_overlap on preemption.
    > + */
    > + update_avg(&prev->se.avg_overlap, runtime);
    > + }
    > + prev->sched_class->put_prev_task(rq, prev);
    > +}

    Right, so we both found it worked quite well, I'm still slightly puzzled
    but it.

    If something gets preempted a lot and will therefore have short runtimes
    it will be seen as sync even though it might not at all be.

    Then again, it its preempted that much, it won't be likely to obtain a
    large cache footprint either...

    hohumm



    \
     
     \ /
      Last update: 2009-03-09 17:15    [W:0.019 / U:32.984 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site