[PATCH v4 06/10] migration: Introduce dirty-limit capability

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) Introduce migration dirty-limit capability, which can be turned on before live migration and limit dirty page rate durty live migration. Introduce migrate_dirty_limit function to help check if dirty-limit capability enabled during live migration. Meanwhile, refactor vcpu_d

[PATCH v4 08/10] migration: Implement dirty-limit convergence algo

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) Implement dirty-limit convergence algo for live migration, which is kind of like auto-converge algo but using dirty-limit instead of cpu throttle to make migration convergent. Enable dirty page limit if dirty_rate_high_cnt greater than 2 when dirty-limit capability enabled,

[PATCH v4 10/10] tests: Add migration dirty-limit capability test

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) Add migration dirty-limit capability test if kernel support dirty ring. Migration dirty-limit capability introduce dirty limit capability, two parameters: x-vcpu-dirty-limit-period and vcpu-dirty-limit are introduced to implement the live migration with dirty limit. The te

[PATCH v4 05/10] qapi/migration: Introduce vcpu-dirty-limit parameters

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) Introduce "vcpu-dirty-limit" migration parameter used to limit dirty page rate during live migration. "vcpu-dirty-limit" and "x-vcpu-dirty-limit-period" are two dirty-limit-related migration parameters, which can be set before and during live migration by qmp migrate-set-pa

[PATCH v4 09/10] migration: Extend query-migrate to provide dirty page limit info

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) Extend query-migrate to provide throttle time and estimated ring full time with dirty-limit capability enabled, through which we can observe if dirty limit take effect during live migration. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Markus Armbruster --- include/syse

[PATCH v4 03/10] kvm: dirty-ring: Fix race with vcpu creation

2023-02-16 Thread huangy81
From: Peter Xu It's possible that we want to reap a dirty ring on a vcpu that is during creation, because the vcpu is put onto list (CPU_FOREACH visible) before initialization of the structures. In this case: qemu_init_vcpu x86_cpu_realizefn cpu_exec_realizefn cpu_list_a

[PATCH v4 00/10] migration: introduce dirtylimit capability

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) v4: 1. Polish the docs and update the release version suggested by Markus 2. Rename the migrate exported info "dirty-limit-throttle-time-per-round" to "dirty-limit-throttle-time-per-full". The following 5 commits hasn't been acked or reviewed yet: kvm: dirty-ring: Fix

[PATCH v4 04/10] qapi/migration: Introduce x-vcpu-dirty-limit-period parameter

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) Introduce "x-vcpu-dirty-limit-period" migration experimental parameter, which is in the range of 1 to 1000ms and used to make dirtyrate calculation period configurable. Currently with the "x-vcpu-dirty-limit-period" varies, the total time of live migration changes, test res

[PATCH v4 07/10] migration: Refactor auto-converge capability logic

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) Check if block migration is running before throttling guest down in auto-converge way. Note that this modification is kind of like code clean, because block migration does not depend on auto-converge capability, so the order of checks can be adjusted. Signed-off-by: Hyman

[PATCH v4 01/10] dirtylimit: Fix overflow when computing MB

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) Coverity points out a overflow problem when computing MB, dirty_ring_size and TARGET_PAGE_SIZE are both 32 bits, multiplication will be done as a 32-bit operation, which could overflow. Simplify the formula. Meanwhile, fix spelling mistake of variable name. Reported-by: Pe

[PATCH v4 02/10] softmmu/dirtylimit: Add parameter check for hmp "set_vcpu_dirty_limit"

2023-02-16 Thread huangy81
From: Hyman Huang(黄勇) dirty_rate paraemter of hmp command "set_vcpu_dirty_limit" is invalid if less than 0, so add parameter check for it. Note that this patch also delete the unsolicited help message and clean up the code. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Markus Armbruster Revie

[PATCH v6 2/3] vhost-user: Refactor the chr_closed_bh

2022-12-21 Thread huangy81
From: Hyman Huang(黄勇) Use vhost_user_save_acked_features to implemente acked features saving. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- net/vhost-user.c | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/net/vhost-user.c b/net/vhost-user.c index f5cb095.

[PATCH v6 3/3] vhost-user: Fix the virtio features negotiation flaw

2022-12-21 Thread huangy81
From: Hyman Huang(黄勇) This patch aims to fix unexpected negotiation features for vhost-user netdev interface. When openvswitch reconnect Qemu after an unexpected disconnection and Qemu therefore start the vhost_dev, acked_features field in vhost_dev is initialized with value fetched from acked_f

[PATCH v6 1/3] vhost-user: Refactor vhost acked features saving

2022-12-21 Thread huangy81
From: Hyman Huang(黄勇) Abstract vhost acked features saving into vhost_user_save_acked_features, export it as util function. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- include/net/vhost-user.h | 1 + net/vhost-user.c | 21 +++-- 2 files changed, 16 inse

[PATCH v6 0/3] Fix the virtio features negotiation flaw

2022-12-21 Thread huangy81
From: Hyman Huang(黄勇) v6: -rebase on master -fix the compling issue vhost_user_save_acked_features symbol only exists when "vhost-user" be configured. Add MACRO statement before calling vhost_user_save_acked_features. Thanks Michael for pointing out that issue in time. Please review, Yong

[PATCH RESEND v5 3/3] vhost-user: Fix the virtio features negotiation flaw

2022-12-20 Thread huangy81
From: Hyman Huang(黄勇) This patch aims to fix unexpected negotiation features for vhost-user netdev interface. When openvswitch reconnect Qemu after an unexpected disconnection and Qemu therefore start the vhost_dev, acked_features field in vhost_dev is initialized with value fetched from acked_f

[PATCH RESEND v5 2/3] vhost-user: Refactor the chr_closed_bh

2022-12-20 Thread huangy81
From: Hyman Huang(黄勇) Use vhost_user_save_acked_features to implemente acked features saving. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- net/vhost-user.c | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/net/vhost-user.c b/net/vhost-user.c index f5cb095.

[PATCH RESEND v5 1/3] vhost-user: Refactor vhost acked features saving

2022-12-20 Thread huangy81
From: Hyman Huang(黄勇) Abstract vhost acked features saving into vhost_user_save_acked_features, export it as util function. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- include/net/vhost-user.h | 1 + net/vhost-user.c | 21 +++-- 2 files changed, 16 inse

[PATCH RESEND v5 0/3] Fix the virtio features negotiation flaw

2022-12-20 Thread huangy81
From: Hyman Huang(黄勇) v5(resend): -rebase on master v5: -fix the assert statement in [PATCH v4 3/3], reported by xiangdong. v4: -rebase on master -add stub function to fix build errors -code clean on [PATCH v2 1/2]: drop 'cleanup' parameter in vhost_user_save_acked_features. -code clean on [

[PATCH v5 3/3] vhost-user: Fix the virtio features negotiation flaw

2022-12-19 Thread huangy81
From: Hyman Huang(黄勇) This patch aims to fix unexpected negotiation features for vhost-user netdev interface. When openvswitch reconnect Qemu after an unexpected disconnection and Qemu therefore start the vhost_dev, acked_features field in vhost_dev is initialized with value fetched from acked_f

[PATCH v5 1/3] vhost-user: Refactor vhost acked features saving

2022-12-19 Thread huangy81
From: Hyman Huang(黄勇) Abstract vhost acked features saving into vhost_user_save_acked_features, export it as util function. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- include/net/vhost-user.h | 1 + net/vhost-user.c | 21 +++-- 2 files changed, 16 inse

[PATCH v5 2/3] vhost-user: Refactor the chr_closed_bh

2022-12-19 Thread huangy81
From: Hyman Huang(黄勇) Use vhost_user_save_acked_features to implemente acked features saving. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- net/vhost-user.c | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/net/vhost-user.c b/net/vhost-user.c index 40a2fe8.

[PATCH v5 0/3] Fix the virtio features negotiation flaw

2022-12-19 Thread huangy81
From: Hyman Huang(黄勇) v5: -fix the assert statement in [PATCH v4 3/3], reported by xiangdong. v4: -rebase on master -add stub function to fix build errors -code clean on [PATCH v2 1/2]: drop 'cleanup' parameter in vhost_user_save_acked_features. -code clean on [PATCH v2 2/2]: make refactor of

[PATCH RESEND v3 02/10] softmmu/dirtylimit: Add parameter check for hmp "set_vcpu_dirty_limit"

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) dirty_rate paraemter of hmp command "set_vcpu_dirty_limit" is invalid if less than 0, so add parameter check for it. Note that this patch also delete the unsolicited help message and clean up the code. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Markus Armbruster Revie

[PATCH RESEND v3 06/10] migration: Introduce dirty-limit capability

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Introduce migration dirty-limit capability, which can be turned on before live migration and limit dirty page rate durty live migration. Introduce migrate_dirty_limit function to help check if dirty-limit capability enabled during live migration. Meanwhile, refactor vcpu_d

[PATCH RESEND v3 09/10] migration: Export dirty-limit time info for observation

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Export dirty limit throttle time and estimated ring full time, through which we can observe if dirty limit take effect during live migration. Signed-off-by: Hyman Huang(黄勇) --- include/sysemu/dirtylimit.h | 2 ++ migration/migration.c | 10 ++ monitor/hmp-c

[PATCH RESEND v3 01/10] dirtylimit: Fix overflow when computing MB

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Coverity points out a overflow problem when computing MB, dirty_ring_size and TARGET_PAGE_SIZE are both 32 bits, multiplication will be done as a 32-bit operation, which could overflow. Simplify the formula. Meanwhile, fix spelling mistake of variable name. Reported-by: Pe

[PATCH RESEND v3 00/10] migration: introduce dirtylimit capability

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) v3(resend): - fix the syntax error of the topic. v3: This version make some modifications inspired by Peter and Markus as following: 1. Do the code clean up in [PATCH v2 02/11] suggested by Markus 2. Replace the [PATCH v2 03/11] with a much simpler patch posted by Peter

[PATCH RESEND v3 10/10] tests: Add migration dirty-limit capability test

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Add migration dirty-limit capability test if kernel support dirty ring. Migration dirty-limit capability introduce dirty limit capability, two parameters: x-vcpu-dirty-limit-period and vcpu-dirty-limit are introduced to implement the live migration with dirty limit. The te

[PATCH RESEND v3 07/10] migration: Refactor auto-converge capability logic

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Check if block migration is running before throttling guest down in auto-converge way. Note that this modification is kind of like code clean, because block migration does not depend on auto-converge capability, so the order of checks can be adjusted. Signed-off-by: Hyman

[PATCH RESEND v3 03/10] kvm: dirty-ring: Fix race with vcpu creation

2022-12-03 Thread huangy81
From: Peter Xu It's possible that we want to reap a dirty ring on a vcpu that is during creation, because the vcpu is put onto list (CPU_FOREACH visible) before initialization of the structures. In this case: qemu_init_vcpu x86_cpu_realizefn cpu_exec_realizefn cpu_list_a

[PATCH RESEND v3 05/10] qapi/migration: Introduce vcpu-dirty-limit parameters

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Introduce "vcpu-dirty-limit" migration parameter used to limit dirty page rate during live migration. "vcpu-dirty-limit" and "x-vcpu-dirty-limit-period" are two dirty-limit-related migration parameters, which can be set before and during live migration by qmp migrate-set-pa

[PATCH RESEND v3 08/10] migration: Implement dirty-limit convergence algo

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Implement dirty-limit convergence algo for live migration, which is kind of like auto-converge algo but using dirty-limit instead of cpu throttle to make migration convergent. Enable dirty page limit if dirty_rate_high_cnt greater than 2 when dirty-limit capability enabled,

[PATCH RESEND v3 04/10] qapi/migration: Introduce x-vcpu-dirty-limit-period parameter

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Introduce "x-vcpu-dirty-limit-period" migration experimental parameter, which is in the range of 1 to 1000ms and used to make dirtyrate calculation period configurable. Currently with the "x-vcpu-dirty-limit-period" varies, the total time of live migration changes, test res

[PATCH v3 03/10] kvm: dirty-ring: Fix race with vcpu creation

2022-12-03 Thread huangy81
From: Peter Xu It's possible that we want to reap a dirty ring on a vcpu that is during creation, because the vcpu is put onto list (CPU_FOREACH visible) before initialization of the structures. In this case: qemu_init_vcpu x86_cpu_realizefn cpu_exec_realizefn cpu_list_a

[PATCH v3 07/10] migration: Refactor auto-converge capability logic

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Check if block migration is running before throttling guest down in auto-converge way. Note that this modification is kind of like code clean, because block migration does not depend on auto-converge capability, so the order of checks can be adjusted. Signed-off-by: Hyman

[PATCH v3 09/10] migration: Export dirty-limit time info for observation

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Export dirty limit throttle time and estimated ring full time, through which we can observe if dirty limit take effect during live migration. Signed-off-by: Hyman Huang(黄勇) --- include/sysemu/dirtylimit.h | 2 ++ migration/migration.c | 10 ++ monitor/hmp-c

[PATCH v3 01/10] dirtylimit: Fix overflow when computing MB

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Coverity points out a overflow problem when computing MB, dirty_ring_size and TARGET_PAGE_SIZE are both 32 bits, multiplication will be done as a 32-bit operation, which could overflow. Simplify the formula. Meanwhile, fix spelling mistake of variable name. Reported-by: Pe

[PATCH v3 00/10] migration: introduce dirtylimit capabilit

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) v3: This version make some modifications inspired by Peter and Markus as following: 1. Do the code clean up in [PATCH v2 02/11] suggested by Markus 2. Replace the [PATCH v2 03/11] with a much simpler patch posted by Peter to fix the following bug: https://bugzilla.red

[PATCH v3 10/10] tests: Add migration dirty-limit capability test

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Add migration dirty-limit capability test if kernel support dirty ring. Migration dirty-limit capability introduce dirty limit capability, two parameters: x-vcpu-dirty-limit-period and vcpu-dirty-limit are introduced to implement the live migration with dirty limit. The te

[PATCH v3 04/10] qapi/migration: Introduce x-vcpu-dirty-limit-period parameter

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Introduce "x-vcpu-dirty-limit-period" migration experimental parameter, which is in the range of 1 to 1000ms and used to make dirtyrate calculation period configurable. Currently with the "x-vcpu-dirty-limit-period" varies, the total time of live migration changes, test res

[PATCH v3 06/10] migration: Introduce dirty-limit capability

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Introduce migration dirty-limit capability, which can be turned on before live migration and limit dirty page rate durty live migration. Introduce migrate_dirty_limit function to help check if dirty-limit capability enabled during live migration. Meanwhile, refactor vcpu_d

[PATCH v3 05/10] qapi/migration: Introduce vcpu-dirty-limit parameters

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Introduce "vcpu-dirty-limit" migration parameter used to limit dirty page rate during live migration. "vcpu-dirty-limit" and "x-vcpu-dirty-limit-period" are two dirty-limit-related migration parameters, which can be set before and during live migration by qmp migrate-set-pa

[PATCH v3 08/10] migration: Implement dirty-limit convergence algo

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) Implement dirty-limit convergence algo for live migration, which is kind of like auto-converge algo but using dirty-limit instead of cpu throttle to make migration convergent. Enable dirty page limit if dirty_rate_high_cnt greater than 2 when dirty-limit capability enabled,

[PATCH v3 02/10] softmmu/dirtylimit: Add parameter check for hmp "set_vcpu_dirty_limit"

2022-12-03 Thread huangy81
From: Hyman Huang(黄勇) dirty_rate paraemter of hmp command "set_vcpu_dirty_limit" is invalid if less than 0, so add parameter check for it. Note that this patch also delete the unsolicited help message and clean up the code. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Markus Armbruster Revie

[PATCH v2 08/11] migration: Export dirty-limit time info

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) Export dirty limit throttle time and estimated ring full time, through which we can observe the process of dirty limit during live migration. Signed-off-by: Hyman Huang(黄勇) --- include/sysemu/dirtylimit.h | 2 ++ migration/migration.c | 10 ++ monitor/hmp-c

[PATCH v2 07/11] migration: Implement dirty-limit convergence algo

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) Implement dirty-limit convergence algo for live migration, which is kind of like auto-converge algo but using dirty-limit instead of cpu throttle to make migration convergent. Enable dirty page limit if dirty_rate_high_cnt greater than 2 when dirty-limit capability enabled,

[PATCH v2 10/11] tests/migration: Introduce dirty-ring-size option into guestperf

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) Guestperf tool does not enable diry ring feature when test migration by default. To support dirty ring migration performance test, introduce dirty-ring-size option into guestperf tools, which ranges in [1024, 65536]. To set dirty ring size with 4096 during migration test:

[PATCH v2 03/11] kvm-all: Do not allow reap vcpu dirty ring buffer if not ready

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) When tested large vcpu size vm with dirtylimit feature, Qemu crashed due to the assertion in kvm_dirty_ring_reap_one, which assert that vcpu's kvm_dirty_gfns has been allocated and not NULL. Because dirty ring reaper thread races with Qemu main thread, reaper may reap vcpu'

[PATCH v2 05/11] qapi/migration: Introduce vcpu-dirty-limit parameters

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) Introduce "vcpu-dirty-limit" migration parameter used to limit dirty page rate during live migration. "vcpu-dirty-limit" and "x-vcpu-dirty-limit-period" are two dirty-limit-related migration parameters, which can be set before and during live migration by qmp migrate-set-pa

[PATCH v2 04/11] qapi/migration: Introduce x-vcpu-dirty-limit-period parameter

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) Introduce "x-vcpu-dirty-limit-period" migration experimental parameter, which is in the range of 1 to 1000ms and used to make dirtyrate calculation period configurable. Signed-off-by: Hyman Huang(黄勇) --- migration/migration.c | 26 ++ monitor/hmp-c

[PATCH v2 09/11] tests: Add migration dirty-limit capability test

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) Add migration dirty-limit capability test if kernel support dirty ring. Migration dirty-limit capability introduce dirty limit capability, two parameters: x-vcpu-dirty-limit-period and x-vcpu-dirty-limit are introduced to implement the live migration with dirty limit. The

[PATCH v2 11/11] tests/migration: Introduce dirty-limit into guestperf

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) Guestperf tool does not cover the dirty-limit migration currently, support this feature. To enable dirty-limit, setting x-vcpu-dirty-limit-period as 500ms and x-vcpu-dirty-limit as 10MB/s: $ ./tests/migration/guestperf.py \ --dirty-limit --x-vcpu-dirty-limit-period 500

[PATCH v2 06/11] migration: Introduce dirty-limit capability

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) Introduce migration dirty-limit capability, which can be turned on before live migration and limit dirty page rate durty live migration. Introduce migrate_dirty_limit function to help check if dirty-limit capability enabled during live migration. Meanwhile, refactor vcpu_d

[PATCH v2 00/11] migration: introduce dirtylimit capability

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) v2: This version make a little bit modifications comparing with version 1 as following: 1. fix the overflow issue reported by Peter Maydell 2. add parameter check for hmp "set_vcpu_dirty_limit" command 3. fix the racing issue between dirty ring reaper thread and Qemu mai

[PATCH v2 01/11] dirtylimit: Fix overflow when computing MB

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) overity points out a overflow problem when computing MB, dirty_ring_size and TARGET_PAGE_SIZE are both 32 bits, multiplication will be done as a 32-bit operation, which could overflow. Simplify the formula. Meanwhile, fix spelling mistake of variable name. Reported-by: Pet

[PATCH v2 02/11] softmmu/dirtylimit: Add parameter check for hmp "set_vcpu_dirty_limit"

2022-11-21 Thread huangy81
From: Hyman Huang(黄勇) dirty_rate paraemter of hmp command "set_vcpu_dirty_limit" is invalid if less than 0, so add parameter check for it. Signed-off-by: Hyman Huang(黄勇) --- softmmu/dirtylimit.c | 5 + 1 file changed, 5 insertions(+) diff --git a/softmmu/dirtylimit.c b/softmmu/dirtylimit.

[PATCH v4 2/3] vhost-user: Refactor the chr_closed_bh

2022-11-17 Thread huangy81
From: Hyman Huang(黄勇) Use vhost_user_save_acked_features to implemente acked features saving. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- net/vhost-user.c | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/net/vhost-user.c b/net/vhost-user.c index f5cb095.

[PATCH v4 0/3] Fix the virtio features negotiation flaw

2022-11-17 Thread huangy81
From: Hyman Huang(黄勇) v4: -rebase on master -add stub function to fix build errors -code clean on [PATCH v2 1/2]: drop 'cleanup' parameter in vhost_user_save_acked_features. -code clean on [PATCH v2 2/2]: make refactor of chr_closed_bh a standalone patch. Above changes are suggested by Michael

[PATCH v4 1/3] vhost-user: Refactor vhost acked features saving

2022-11-17 Thread huangy81
From: Hyman Huang(黄勇) Abstract vhost acked features saving into vhost_user_save_acked_features, export it as util function. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- include/net/vhost-user.h | 1 + net/vhost-user.c | 21 +++-- 2 files changed, 16 inse

[PATCH v4 3/3] vhost-user: Fix the virtio features negotiation flaw

2022-11-17 Thread huangy81
From: Hyman Huang(黄勇) This patch aims to fix unexpected negotiation features for vhost-user netdev interface. When openvswitch reconnect Qemu after an unexpected disconnection and Qemu therefore start the vhost_dev, acked_features field in vhost_dev is initialized with value fetched from acked_f

[PATCH RFC 2/4] hmp: Add "info netdev" cmd

2022-10-31 Thread huangy81
From: Hyman Huang(黄勇) Introduce "info netdev" command so developers can play with it easier. Signed-off-by: Hyman Huang(黄勇) --- hmp-commands-info.hx | 14 ++ include/monitor/hmp.h | 1 + net/net.c | 31 +++ 3 files changed, 46 insertions(+)

[PATCH RFC 1/4] net: Introduce qmp cmd "query-netdev"

2022-10-31 Thread huangy81
From: Hyman Huang(黄勇) For netdev device that can offload virtio-net dataplane to slave, such as vhost-net, vhost-user and vhost-vdpa, exporting it's capability information and acked features would be more friendly for developers. These infomation can be analyzed and compare to slave capability pr

[PATCH RFC 3/4] hmp: Add netdev information into output of hmp cmd "info network"

2022-10-31 Thread huangy81
From: Hyman Huang(黄勇) Add netdev information into output of hmp command hmp_info_network so developers can analyze interface capability more easily. Signed-off-by: Hyman Huang(黄勇) --- net/net.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/net/net.c b/net/net.c index c27

[PATCH RFC 4/4] vhost-user-test: Add negotiated features check

2022-10-31 Thread huangy81
From: Hyman Huang(黄勇) For vhost-user network device, Qemu backup the final features as acked_features internally after guest acknowledging features during virtio-net driver initialization, so the acked_features could be used as input of VHOST_USER_SET_FEATURES command when slave device restore fr

[PATCH RFC 0/4] Export netdev capabilities and information

2022-10-31 Thread huangy81
From: Hyman Huang(黄勇) This series is enlightened by Michael when we fixed a virtio features negotiation flaw, see the details here: https://lore.kernel.org/qemu-devel/cover.1667136717.git.huang...@chinatelecom.cn/ And a test is suggested to be added to test behavior of virtio-net features negoti

[PATCH v3 0/2] Fix the virtio features negotiation flaw

2022-10-30 Thread huangy81
From: Hyman Huang(黄勇) v3: -rebase on master -code clean on [PATCH v2 1/2]: keep the commit self-consistent and do not modify the logic of saving acked_features. Just abstract the util function. -modify the [PATCH v2 2/2] logic: change the behavior of saving acked_features in chr_closed_bh: sav

[PATCH v3 2/2] vhost-net: Fix the virtio features negotiation flaw

2022-10-30 Thread huangy81
From: Hyman Huang(黄勇) Save the acked_features once it be configured by guest virtio driver so it can't miss any features. Note that this patch also change the features saving logic in chr_closed_bh, which originally backup features no matter whether the features are 0 or not, but now do it only

[PATCH v3 1/2] vhost-user: Refactor vhost acked features saving

2022-10-30 Thread huangy81
From: Hyman Huang(黄勇) Abstract vhost acked features saving into vhost_user_save_acked_features, export it as util function. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- include/net/vhost-user.h | 2 ++ net/vhost-user.c | 29 ++--- 2 files changed

[PATCH v2 1/2] vhost-user: Refactor vhost acked features saving

2022-10-28 Thread huangy81
From: Hyman Huang(黄勇) Abstract vhost acked features saving into vhost_user_save_acked_features, export it as util function. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- include/net/vhost-user.h | 2 ++ net/vhost-user.c | 35 +++ 2 files c

[PATCH v2 2/2] vhost-net: Fix the virtio features negotiation flaw

2022-10-28 Thread huangy81
From: Hyman Huang(黄勇) Save the acked_features once it be configured by guest virtio driver so it can't miss any features. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- hw/net/vhost_net.c | 9 + hw/net/virtio-net.c | 5 + include/net/vhost_net.h | 2 ++ 3 file

[PATCH v2 0/2] Fix the virtio features negotiation flaw

2022-10-28 Thread huangy81
From: Hyman Huang(黄勇) v2: Fix the typo in subject of [PATCH v2 2/2] v1: This is the version 1 of the series and it is exactly the same as RFC version, but fixing a typo in subject, which is reported by Michael. As for test for the behavior suggested by Michael, IMHO, it could be post in anoth

[PATCH v1 2/2] vhost-net: Fix the virito features negotiation flaw

2022-10-28 Thread huangy81
From: Hyman Huang(黄勇) Save the acked_features once it be configured by guest virtio driver so it can't miss any features. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- hw/net/vhost_net.c | 9 + hw/net/virtio-net.c | 5 + include/net/vhost_net.h | 2 ++ 3 file

[PATCH v1 1/2] vhost-user: Refactor vhost acked features saving

2022-10-28 Thread huangy81
From: Hyman Huang(黄勇) Abstract vhost acked features saving into vhost_user_save_acked_features, export it as util function. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- include/net/vhost-user.h | 2 ++ net/vhost-user.c | 35 +++ 2 files c

[PATCH v1 0/2] Fix the virtio features negotiation flaw

2022-10-28 Thread huangy81
From: Hyman Huang(黄勇) v1: This is the version 1 of the series and it is exactly the same as RFC version, but fixing a typo in subject, which is reported by Michael. As for test for the behavior suggested by Michael, IMHO, it could be post in another series, since i found that testing the negoti

[PATCH 0/2] Fix the virito features negotiation flaw

2022-09-25 Thread huangy81
From: "Hyman Huang(黄勇)" This patchset aim to fix the unexpected negotiation features for vhost-user netdev interface. Steps to reproduce the issue: Prepare a vm (CentOS 8 in my work scenario) with vhost-user backend interface and configure qemu as server mode. So dpdk would connect qemu's unix

[PATCH 1/2] vhost-user: Refactor vhost acked features saving

2022-09-25 Thread huangy81
From: Hyman Huang(黄勇) Abstract vhost acked features saving into vhost_user_save_acked_features, export it as util function. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- include/net/vhost-user.h | 2 ++ net/vhost-user.c | 35 +++ 2 files c

[PATCH 2/2] vhost-net: Fix the virito features negotiation flaw

2022-09-25 Thread huangy81
From: Hyman Huang(黄勇) Save the acked_features once it be configured by guest virtio driver so it can't miss any features. Signed-off-by: Hyman Huang(黄勇) Signed-off-by: Guoyi Tu --- hw/net/vhost_net.c | 9 + hw/net/virtio-net.c | 5 + include/net/vhost_net.h | 2 ++ 3 file

[PATCH v1 0/8] migration: introduce dirtylimit capability

2022-09-01 Thread huangy81
From: Hyman Huang(黄勇) v1: - make parameter vcpu-dirty-limit experimental - switch dirty limit off when cancel migrate - add cancel logic in migration test Please review, thanks, Yong Abstract This series added a new migration capability called "dirtylimit". It can be enabled when

[PATCH v1 3/8] migration: Introduce dirty-limit capability

2022-09-01 Thread huangy81
From: Hyman Huang(黄勇) Introduce migration dirty-limit capability, which can be turned on before live migration and limit dirty page rate durty live migration. Introduce migrate_dirty_limit function to help check if dirty-limit capability enabled during live migration. Meanwhile, refactor vcpu_d

[PATCH v1 8/8] tests/migration: Introduce dirty-limit into guestperf

2022-09-01 Thread huangy81
From: Hyman Huang(黄勇) Guestperf tool does not cover the dirty-limit migration currently, support this feature. To enable dirty-limit, setting x-vcpu-dirty-limit-period as 500ms and x-vcpu-dirty-limit as 10MB/s: $ ./tests/migration/guestperf.py \ --dirty-limit --x-vcpu-dirty-limit-period 500

[PATCH v1 4/8] migration: Implement dirty-limit convergence algo

2022-09-01 Thread huangy81
From: Hyman Huang(黄勇) Implement dirty-limit convergence algo for live migration, which is kind of like auto-converge algo but using dirty-limit instead of cpu throttle to make migration convergent. Signed-off-by: Hyman Huang(黄勇) --- migration/migration.c | 1 + migration/ram.c| 53 ++

[PATCH v1 5/8] migration: Export dirty-limit time info

2022-09-01 Thread huangy81
From: Hyman Huang(黄勇) Export dirty limit throttle time and estimated ring full time, through which we can observe the process of dirty limit during live migration. Signed-off-by: Hyman Huang(黄勇) --- include/sysemu/dirtylimit.h | 2 ++ migration/migration.c | 10 ++ monitor/hmp-c

[PATCH v1 7/8] tests/migration: Introduce dirty-ring-size option into guestperf

2022-09-01 Thread huangy81
From: Hyman Huang(黄勇) Guestperf tool does not enable diry ring feature when test migration by default. To support dirty ring migration performance test, introduce dirty-ring-size option into guestperf tools, which ranges in [1024, 65536]. To set dirty ring size with 4096 during migration test:

[PATCH v1 2/8] qapi/migration: Introduce x-vcpu-dirty-limit parameters

2022-09-01 Thread huangy81
From: Hyman Huang(黄勇) Introduce "x-vcpu-dirty-limit" migration parameter used to limit dirty page rate during live migration. "x-vcpu-dirty-limit" and "x-vcpu-dirty-limit-period" are two dirty-limit-related migration parameters, which can be set before and during live migration by qmp migrate-se

[PATCH v1 6/8] tests: Add migration dirty-limit capability test

2022-09-01 Thread huangy81
From: Hyman Huang(黄勇) Add migration dirty-limit capability test if kernel support dirty ring. Migration dirty-limit capability introduce dirty limit capability, two parameters: x-vcpu-dirty-limit-period and x-vcpu-dirty-limit are introduced to implement the live migration with dirty limit. The

[PATCH v1 1/8] qapi/migration: Introduce x-vcpu-dirty-limit-period parameter

2022-09-01 Thread huangy81
From: Hyman Huang(黄勇) Introduce "x-vcpu-dirty-limit-period" migration experimental parameter, which is used to make dirtyrate calculation period configurable. Signed-off-by: Hyman Huang(黄勇) --- migration/migration.c | 16 monitor/hmp-cmds.c| 8 qapi/migration.jso

[PATCH v1] dirtylimit: Fix overflow when computing MB

2022-07-29 Thread huangy81
From: Hyman Huang(黄勇) Coverity points out a overflow problem when computing MB, dirty_ring_size and TARGET_PAGE_SIZE are both 32 bits, multiplication will be done as a 32-bit operation, which could overflow. Simplify the formula. Meanwhile, fix spelling mistake of variable name. Reported-by: Pe

[PATCH] dirtylimit: Fix overflow when computing MB

2022-07-29 Thread huangy81
From: Hyman Huang(黄勇) Coverity points out a overflow problem when computing MB, dirty_ring_size and TARGET_PAGE_SIZE are both 32 bits, multiplication will be done as a 32-bit operation, which could overflow. Simplify the formula. Meanwhile, fix spelling mistake of variable name. Reported-by: Pe

[PATCH 8/8] tests/migration: Introduce dirty-limit into guestperf

2022-07-23 Thread huangy81
From: Hyman Huang(黄勇) Guestperf tool does not cover the dirty-limit migration currently, support this feature. To enable dirty-limit, setting x-vcpu-dirty-limit-period as 500ms and vcpu-dirty-limit as 10MB/s: $ ./tests/migration/guestperf.py \ --dirty-limit --x-vcpu-dirty-limit-period 500 \

[PATCH 6/8] tests: Add migration dirty-limit capability test

2022-07-23 Thread huangy81
From: Hyman Huang(黄勇) Add migration dirty-limit capability test if kernel support dirty ring. Migration dirty-limit capability introduce dirty limit capability, two parameters: x-vcpu-dirty-limit-period and vcpu-dirty-limit are introduced to implement the live migration with dirty limit. The te

[PATCH 5/8] migration: Export dirty-limit time info

2022-07-23 Thread huangy81
From: Hyman Huang(黄勇) Export dirty limit throttle time and estimated ring full time, through which we can observe the process of dirty limit during live migration. Signed-off-by: Hyman Huang(黄勇) --- include/sysemu/dirtylimit.h | 2 ++ migration/migration.c | 10 ++ monitor/hmp-c

[PATCH 3/8] migration: Introduce dirty-limit capability

2022-07-23 Thread huangy81
From: Hyman Huang(黄勇) Introduce migration dirty-limit capability, which can be turned on before live migration and limit dirty page rate durty live migration. Introduce migrate_dirty_limit function to help check if dirty-limit capability enabled during live migration. Meanwhile, refactor vcpu_d

[PATCH 1/8] qapi/migration: Introduce x-vcpu-dirty-limit-period parameter

2022-07-23 Thread huangy81
From: Hyman Huang(黄勇) Introduce "x-vcpu-dirty-limit-period" migration experimental parameter, which is used to make dirtyrate calculation period configurable. Signed-off-by: Hyman Huang(黄勇) --- migration/migration.c | 16 monitor/hmp-cmds.c| 8 qapi/migration.jso

[PATCH 4/8] migration: Implement dirty-limit convergence algo

2022-07-23 Thread huangy81
From: Hyman Huang(黄勇) Implement dirty-limit convergence algo for live migration, which is kind of like auto-converge algo but using dirty-limit instead of cpu throttle to make migration convergent. Signed-off-by: Hyman Huang(黄勇) --- migration/ram.c| 53 +

[PATCH 7/8] tests/migration: Introduce dirty-ring-size option into guestperf

2022-07-23 Thread huangy81
From: Hyman Huang(黄勇) Guestperf tool does not enable diry ring feature when test migration by default. To support dirty ring migration performance test, introduce dirty-ring-size option into guestperf tools, which ranges in [1024, 65536]. To set dirty ring size with 4096 during migration test:

[PATCH 2/8] qapi/migration: Introduce vcpu-dirty-limit parameters

2022-07-23 Thread huangy81
From: Hyman Huang(黄勇) Introduce "vcpu-dirty-limit" migration parameter used to limit dirty page rate during live migration. "vcpu-dirty-limit" and "x-vcpu-dirty-limit-period" are two dirty-limit-related migration parameters, which can be set before and during live migration by qmp migrate-set-pa

[PATCH 0/8] migration: introduce dirtylimit capability

2022-07-23 Thread huangy81
From: Hyman Huang(黄勇) 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-deve

[PATCH v25 6/8] softmmu/dirtylimit: Implement virtual CPU throttle

2022-06-25 Thread huangy81
From: Hyman Huang(黄勇) Setup a negative feedback system when vCPU thread handling KVM_EXIT_DIRTY_RING_FULL exit by introducing throttle_us_per_full field in struct CPUState. Sleep throttle_us_per_full microseconds to throttle vCPU if dirtylimit is in service. Signed-off-by: Hyman Huang(黄勇) Revie

[PATCH v25 8/8] tests: Add dirty page rate limit test

2022-06-25 Thread huangy81
From: Hyman Huang(黄勇) Add dirty page rate limit test if kernel support dirty ring, The following qmp commands are covered by this test case: "calc-dirty-rate", "query-dirty-rate", "set-vcpu-dirty-limit", "cancel-vcpu-dirty-limit" and "query-vcpu-dirty-limit". Signed-off-by: Hyman Huang(黄勇) Ack

  1   2   3   4   5   >