On Mon, Feb 23, 2015 at 01:58:40PM +0100, Vlastimil Babka wrote: > @@ -7713,8 +7820,15 @@ static void task_tick_fair(struct rq *rq, struct task_struct *curr, int queued) > entity_tick(cfs_rq, se, queued); > } > > - if (numabalancing_enabled) > - task_tick_numa(rq, curr); > + /* > + * For latency considerations, don't schedule the THP work together > + * with NUMA work. NUMA has higher priority, assuming remote accesses > + * have worse penalty than TLB misses. > + */ > + if (!(numabalancing_enabled && task_tick_numa(rq, curr)) > + && khugepaged_enabled()) > + task_tick_thp(rq, curr); > + > > update_rq_runnable_avg(rq, 1); > } That's a bit yucky; and I think there's no problem moving that update_rq_runnable_avg() thing up a bit; which would get you: static void task_tick_fair(..) { ... update_rq_runnable_avg(); if (numabalancing_enabled && task_tick_numa(rq, curr)) return; if (khugepaged_enabled() && task_tick_thp(rq, curr)) return; } Clearly the return on that second conditional is a tad pointless, but OCD :-) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>