* Peter Lieven ([email protected]) wrote: > Hi, > > I just noticed that CPU throttling and Block Migration don't work together > very well. > During block migration the throttling heuristic detects that we obviously > make no progress > in ram transfer. But the reason is the running block migration and not a too > high dirty pages rate. > > The result is that any VM is throttled by 99% during block migration.
Hmm that's unfortunate; do you have a bandwidth set lower than your actual network connection? I'm just wondering if it's actually going between the block and RAM iterative sections or getting stuck in ne. > I wonder what the best way would be fix this. I came up with the following > ideas so far: > > - disable throttling while block migration is in bulk stage mig_throttle_guest_down is currently in migration/ram.c so however we do it, we've got to add an 'inhibit' that block.c could set (I suggest a counter so that it could be set by a few things). > - check if absolute number of num_dirty_pages_period crosses a threshold and > not if its just > greater than 50% of transferred bytes > - check if migration_dirty_pages > 0. This slows down throttling, but does > not avoid it completely. An interesting question is whether you want to inhibit in the non-bulk stage if IO writes are happening too quickly to keep up. Dave > > Peter -- Dr. David Alan Gilbert / [email protected] / Manchester, UK
