[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 4/6] migration/dirtyrate: adjust order of registering thread
From: |
huangy81 |
Subject: |
[PATCH v4 4/6] migration/dirtyrate: adjust order of registering thread |
Date: |
Wed, 16 Jun 2021 09:12:30 +0800 |
From: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
registering get_dirtyrate thread in advance so that both
page-sampling and dirty-ring mode can be covered.
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
---
migration/dirtyrate.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c
index 14ffac9..b97f6a5 100644
--- a/migration/dirtyrate.c
+++ b/migration/dirtyrate.c
@@ -351,7 +351,6 @@ static void calculate_dirtyrate(struct DirtyRateConfig
config)
int64_t msec = 0;
int64_t initial_time;
- rcu_register_thread();
rcu_read_lock();
initial_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
if (!record_ramblock_hash_info(&block_dinfo, config, &block_count)) {
@@ -374,7 +373,6 @@ static void calculate_dirtyrate(struct DirtyRateConfig
config)
out:
rcu_read_unlock();
free_ramblock_dirty_info(block_dinfo, block_count);
- rcu_unregister_thread();
}
void *get_dirtyrate_thread(void *arg)
@@ -382,6 +380,7 @@ void *get_dirtyrate_thread(void *arg)
struct DirtyRateConfig config = *(struct DirtyRateConfig *)arg;
int ret;
int64_t start_time;
+ rcu_register_thread();
ret = dirtyrate_set_state(&CalculatingState, DIRTY_RATE_STATUS_UNSTARTED,
DIRTY_RATE_STATUS_MEASURING);
@@ -400,6 +399,8 @@ void *get_dirtyrate_thread(void *arg)
if (ret == -1) {
error_report("change dirtyrate state failed.");
}
+
+ rcu_unregister_thread();
return NULL;
}
--
1.8.3.1
- [PATCH v4 0/6] support dirtyrate at the granualrity of vcpu, huangy81, 2021/06/15
- [PATCH v4 1/6] KVM: introduce dirty_pages and kvm_dirty_ring_enabled, huangy81, 2021/06/15
- [PATCH v4 2/6] memory: make global_dirty_log a bitmask, huangy81, 2021/06/15
- [PATCH v4 4/6] migration/dirtyrate: adjust order of registering thread,
huangy81 <=
- [PATCH v4 3/6] migration/dirtyrate: introduce struct and adjust DirtyRateStat, huangy81, 2021/06/15
- [PATCH v4 5/6] migration/dirtyrate: move init step of calculation to main thread, huangy81, 2021/06/15
- [PATCH v4 6/6] migration/dirtyrate: implement dirty-ring dirtyrate calculation, huangy81, 2021/06/15