[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130704130719.GC29916@linux.vnet.ibm.com>
Date: Thu, 4 Jul 2013 18:37:19 +0530
From: Srikar Dronamraju <srikar@...ux.vnet.ibm.com>
To: Mel Gorman <mgorman@...e.de>
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...nel.org>,
Andrea Arcangeli <aarcange@...hat.com>,
Johannes Weiner <hannes@...xchg.org>,
Linux-MM <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 13/13] sched: Account for the number of preferred tasks
running on a node when selecting a preferred node
> static void task_numa_placement(struct task_struct *p)
> {
> int seq, nid, max_nid = 0;
> @@ -897,7 +924,7 @@ static void task_numa_placement(struct task_struct *p)
>
> /* Find maximum private faults */
> faults = p->numa_faults[task_faults_idx(nid, 1)];
> - if (faults > max_faults) {
> + if (faults > max_faults && !sched_numa_overloaded(nid)) {
Should we take the other approach of setting the preferred nid but not
moving the task to the node?
So if some task moves out of the preferred node, then we should still be
able to move this task there.
However your current approach has an advantage that it atleast runs on
second preferred choice if not the first.
Also should sched_numa_overloaded() also consider pinned tasks?
> max_faults = faults;
> max_nid = nid;
> }
> @@ -923,9 +950,7 @@ static void task_numa_placement(struct task_struct *p)
> max_nid);
> }
>
> - /* Update the preferred nid and migrate task if possible */
> - p->numa_preferred_nid = max_nid;
> - p->numa_migrate_seq = 0;
> + sched_setnuma(p, max_nid, preferred_cpu);
> migrate_task_to(p, preferred_cpu);
>
> /*
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists