On 09/09/19 12:49, Yury Kotov wrote:
> Hi,
> 
> V6:
> * Fix "Add qemu_cond_timedwait" patch:
>   - Changed return type for qemu_cond_timedwait (void -> bool)
>   - Added details in commit message
> 
> V5:
> * Updated sleep loop in throttle_thread at the suggestion of Paolo Bonzini
> * Fixed hanging of test
> 
> V4:
> * The test was simplified to prevent false fails.
> 
> V3:
> * Rebase fixes (migrate_set_parameter -> migrate_set_parameter_int)
> 
> V2:
> * Added a test
> * Fixed qemu_cond_timedwait for qsp
> 
> I wrote a test for migration auto converge and found out a strange thing:
> 1. Enable auto converge
> 2. Set max-bandwidth 1Gb/s
> 3. Set downtime-limit 1ms
> 4. Run standard test (just writes a byte per page)
> 5. Wait for converge
> 6. It's converged with 99% throttle percentage
> 7. The result downtime was about 300-600ms   <<<<
> 
> It's much higher than expected 1ms. I figured out that cpu_throttle_thread()
> function sleeps for 100ms+ for high throttle percentage (>=95%) in VCPU 
> thread.
> And it sleeps even after a cpu kick.
> 
> Fixed it by using timedwait for ms part of sleep.
> E.g timedwait(halt_cond, 1ms) + usleep(500).

Queued, thanks.

Paolo

Reply via email to