Messages in this thread | | | Subject | Re: [RFC][PATCH 00/26] sched/numa | From | Peter Zijlstra <> | Date | Mon, 19 Mar 2012 13:09:52 +0100 |
| |
On Mon, 2012-03-19 at 13:42 +0200, Avi Kivity wrote: > > That's intentional, it keeps the work accounted to the tasks that need > > it. > > The accounting part is good, the extra latency is not. If you have > spare resources (processors or dma engines) you can employ for eager > migration why not make use of them.
Afaik we do not use dma engines for memory migration.
In any case, if you do cross-node migration frequently enough that the overhead of copying pages is a significant part of your time then I'm guessing there's something wrong.
If not, the latency should be armortised enough to not matter.
> > > - doesn't work with dma engines > > > > How does that work anyway? You'd have to reprogram your dma engine, so > > either the ->migratepage() callback does that and we're good either way, > > or it simply doesn't work at all. > > If it's called from the faulting task's context you have to sleep, and > the latency gets increased even more, plus you're dependant on the dma > engine's backlog. If you do all that from a background thread you don't > have to block (you might have to cancel or discard a migration if the > page was changed while being copied).
The current MoF implementation simply bails and uses the old page. It will never block.
Its all a best effort approach, a 'few' stray pages is OK as long as the bulk of the pages are local.
If you're concerned, we can add per mm/vma counters to track this.
| |