| Date | Mon, 16 Sep 2013 17:18:22 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 14/50] sched: Set the scan rate proportional to the memory usage of the task being scanned |
| |
On Tue, Sep 10, 2013 at 10:31:54AM +0100, Mel Gorman wrote: > @@ -860,9 +908,14 @@ void task_numa_fault(int node, int pages, bool migrated) > * If pages are properly placed (did not migrate) then scan slower. > * This is reset periodically in case of phase changes > */ > - if (!migrated) > - p->numa_scan_period = min(sysctl_numa_balancing_scan_period_max, > + if (!migrated) { > + /* Initialise if necessary */ > + if (!p->numa_scan_period_max) > + p->numa_scan_period_max = task_scan_max(p); > + > + p->numa_scan_period = min(p->numa_scan_period_max, > p->numa_scan_period + jiffies_to_msecs(10));
So the next patch changes the jiffies_to_msec() thing.. is that really worth a whole separate patch?
Also, I really don't believe any of that is 'right', increasing the scan period by a fixed amount for every !migrated page is just wrong.
Firstly; there's the migration throttle which basically guarantees that most pages aren't migrated -- even when they ought to be, thus inflating the period.
Secondly; assume a _huge_ process, so large that even a small fraction of non-migrated pages will completely clip the scan period.
|