lkml.org 
[lkml]   [2012]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 29/31] sched: numa: CPU follows memory
On Tue, Nov 13, 2012 at 11:12:58AM +0000, Mel Gorman wrote:
> @@ -864,6 +1106,21 @@ void task_numa_fault(int node, int pages, bool misplaced)
> task_numa_placement(p);
> }
>
> +static void reset_ptenuma_scan(struct task_struct *p)
> +{
> + ACCESS_ONCE(p->mm->numa_scan_seq)++;
> +
> + if (p->mm && p->mm->mm_balancenuma)
> + p->mm->mm_balancenuma->mm_numa_fault_tot >>= 1;
> + if (p->task_balancenuma) {
> + int nid;
> + p->task_balancenuma->task_numa_fault_tot >>= 1;
> + for_each_online_node(nid) {
> + p->task_balancenuma->task_numa_fault[nid] >>= 1;
> + }
> + }
> +}

Overnight tests indicated that cpu-follows is currently broken in this
series but a large part of the problem is a missing

p->mm->numa_scan_offset = 0;

here. means that all tasks are only considered for convergence once without
proper resetting of the scanner. It's effectly becomes the vanilla kernel
with a bunch of system CPU overhead.

Of course it's not the only problem with this patch as the overhead of
finding a proper placement is mnassive and due to the slow scanning rate,
it converges very slowly. While it's based on autonuma, autonuma did the
same job outside the context of a process so it's not exactly equivalent.

--
Mel Gorman
SUSE Labs

\
 
 \ /
  Last update: 2012-11-14 13:01    [W:0.273 / U:0.652 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site