[email protected] writes:

> From: Hyman Huang(黄勇) <[email protected]>
>
> v1:
> - make parameter vcpu-dirty-limit experimental 
> - switch dirty limit off when cancel migrate
> - add cancel logic in migration test 
>
> Please review, thanks,
>
> Yong 

Are you still pursuing this feature?

> Abstract
> ========
>
> This series added a new migration capability called "dirtylimit".  It can
> be enabled when dirty ring is enabled, and it'll improve the vCPU performance
> during the process of migration. It is based on the previous patchset:
> https://lore.kernel.org/qemu-devel/[email protected]/
>
> As mentioned in patchset "support dirty restraint on vCPU", dirtylimit way of
> migration can make the read-process not be penalized. This series wires up the
> vcpu dirty limit and wrappers as dirtylimit capability of migration. I 
> introduce
> two parameters vcpu-dirtylimit-period and vcpu-dirtylimit to implement the 
> setup 
> of dirtylimit during live migration.
>
> To validate the implementation, i tested a 32 vCPU vm live migration with 
> such 
> model:
> Only dirty vcpu0, vcpu1 with heavy memory workoad and leave the rest vcpus
> untouched, running unixbench on the vpcu8-vcpu15 by setup the cpu affinity as
> the following command:
> taskset -c 8-15 ./Run -i 2 -c 8 {unixbench test item}
>
> The following are results:
>
> host cpu: Intel(R) Xeon(R) Platinum 8378A
> host interface speed: 1000Mb/s
>   |---------------------+--------+------------+---------------|
>   | UnixBench test item | Normal | Dirtylimit | Auto-converge |
>   |---------------------+--------+------------+---------------|
>   | dhry2reg            | 32800  | 32786      | 25292         |
>   | whetstone-double    | 10326  | 10315      | 9847          |
>   | pipe                | 15442  | 15271      | 14506         |
>   | context1            | 7260   | 6235       | 4514          |
>   | spawn               | 3663   | 3317       | 3249          |
>   | syscall             | 4669   | 4667       | 3841          |
>   |---------------------+--------+------------+---------------|
>>From the data above we can draw a conclusion that vcpus that do not dirty 
>>memory
> in vm are almost unaffected during the dirtylimit migration, but the auto 
> converge
> way does. 
>
> I also tested the total time of dirtylimit migration with variable dirty 
> memory
> size in vm.
>
> senario 1:
> host cpu: Intel(R) Xeon(R) Platinum 8378A
> host interface speed: 1000Mb/s
>   |-----------------------+----------------+-------------------|
>   | dirty memory size(MB) | Dirtylimit(ms) | Auto-converge(ms) |
>   |-----------------------+----------------+-------------------|
>   | 60                    | 2014           | 2131              |
>   | 70                    | 5381           | 12590             |
>   | 90                    | 6037           | 33545             |
>   | 110                   | 7660           | [*]               |
>   |-----------------------+----------------+-------------------|
>   [*]: This case means migration is not convergent. 
>
> senario 2:
> host cpu: Intel(R) Xeon(R) CPU E5-2650
> host interface speed: 10000Mb/s
>   |-----------------------+----------------+-------------------|
>   | dirty memory size(MB) | Dirtylimit(ms) | Auto-converge(ms) |
>   |-----------------------+----------------+-------------------|
>   | 1600                  | 15842          | 27548             |
>   | 2000                  | 19026          | 38447             |
>   | 2400                  | 19897          | 46381             |
>   | 2800                  | 22338          | 57149             |
>   |-----------------------+----------------+-------------------|
> Above data shows that dirtylimit way of migration can also reduce the total
> time of migration and it achieves convergence more easily in some case.
>
> In addition to implement dirtylimit capability itself, this series
> add 3 tests for migration, aiming at playing around for developer simply: 
>  1. qtest for dirty limit migration
>  2. support dirty ring way of migration for guestperf tool
>  3. support dirty limit migration for guestperf tool
>
> Please review, thanks !
>
> Hyman Huang (8):
>   qapi/migration: Introduce x-vcpu-dirty-limit-period parameter
>   qapi/migration: Introduce x-vcpu-dirty-limit parameters
>   migration: Introduce dirty-limit capability
>   migration: Implement dirty-limit convergence algo
>   migration: Export dirty-limit time info
>   tests: Add migration dirty-limit capability test
>   tests/migration: Introduce dirty-ring-size option into guestperf
>   tests/migration: Introduce dirty-limit into guestperf
>
>  include/sysemu/dirtylimit.h             |   2 +
>  migration/migration.c                   |  51 +++++++++++
>  migration/migration.h                   |   1 +
>  migration/ram.c                         |  53 ++++++++---
>  migration/trace-events                  |   1 +
>  monitor/hmp-cmds.c                      |  26 ++++++
>  qapi/migration.json                     |  57 ++++++++++--
>  softmmu/dirtylimit.c                    |  33 ++++++-
>  tests/migration/guestperf/comparison.py |  24 +++++
>  tests/migration/guestperf/engine.py     |  33 ++++++-
>  tests/migration/guestperf/hardware.py   |   8 +-
>  tests/migration/guestperf/progress.py   |  17 +++-
>  tests/migration/guestperf/scenario.py   |  11 ++-
>  tests/migration/guestperf/shell.py      |  25 +++++-
>  tests/qtest/migration-test.c            | 154 
> ++++++++++++++++++++++++++++++++
>  15 files changed, 465 insertions(+), 31 deletions(-)


Reply via email to