lkml.org 
[lkml]   [2014]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/4] sched,numa: weigh nearby nodes for task placement on complex NUMA topologies
On Thu, May 08, 2014 at 01:23:29PM -0400, riel@redhat.com wrote:
> static inline unsigned long task_weight(struct task_struct *p, int nid)
> {
> - unsigned long total_faults;
> + unsigned long total_faults, score;
>
> if (!p->numa_faults_memory)
> return 0;
> @@ -940,15 +997,32 @@ static inline unsigned long task_weight(struct task_struct *p, int nid)
> if (!total_faults)
> return 0;
>
> - return 1000 * task_faults(p, nid) / total_faults;
> + score = 1000 * task_faults(p, nid);
> + score += nearby_nodes_score(p, nid, true);
> +
> + score /= total_faults;
> +
> + return score;
> }

So you add an O(nr_nodes) loop to task_weight(), but that in itself is
already called from O(nr_nodes) loops, yielding a total complexity of
O(nr_nodes^2).

This might be fine, but algorithmic complexity should very much be a
part of the changelog I think.
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2014-05-09 12:41    [W:0.163 / U:0.828 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site