From: Peter Xu <peterx@redhat.com>
To: qemu-devel@nongnu.org
Cc: Fabiano Rosas <farosas@suse.de>,
Peter Maydell <peter.maydell@linaro.org>,
Hyman Huang <yong.huang@smartx.com>, Peter Xu <peterx@redhat.com>
Subject: [PULL 06/18] migration: Move cpu-throttole.c from system to migration
Date: Wed, 30 Oct 2024 11:57:22 -0400 [thread overview]
Message-ID: <20241030155734.2141398-7-peterx@redhat.com> (raw)
In-Reply-To: <20241030155734.2141398-1-peterx@redhat.com>
From: Hyman Huang <yong.huang@smartx.com>
Move cpu-throttle.c from system to migration since it's
only used for migration; this makes us avoid exporting the
util functions and variables in misc.h but export them in
migration.h when implementing the periodic ramblock dirty
sync feature in the upcoming commits.
Since CPU throttle timers are only used in migration, move
their registry to migration_object_init.
Signed-off-by: Hyman Huang <yong.huang@smartx.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/c1b3efaa0cb49e03d422e9da97bdb65cc3d234d1.1729146786.git.yong.huang@smartx.com
Signed-off-by: Peter Xu <peterx@redhat.com>
---
{include/sysemu => migration}/cpu-throttle.h | 0
{system => migration}/cpu-throttle.c | 2 +-
migration/migration.c | 5 ++++-
migration/ram.c | 2 +-
system/cpu-timers.c | 3 ---
migration/meson.build | 1 +
migration/trace-events | 3 +++
system/meson.build | 1 -
system/trace-events | 3 ---
9 files changed, 10 insertions(+), 10 deletions(-)
rename {include/sysemu => migration}/cpu-throttle.h (100%)
rename {system => migration}/cpu-throttle.c (99%)
diff --git a/include/sysemu/cpu-throttle.h b/migration/cpu-throttle.h
similarity index 100%
rename from include/sysemu/cpu-throttle.h
rename to migration/cpu-throttle.h
diff --git a/system/cpu-throttle.c b/migration/cpu-throttle.c
similarity index 99%
rename from system/cpu-throttle.c
rename to migration/cpu-throttle.c
index 7632dc6143..fa47ee2e21 100644
--- a/system/cpu-throttle.c
+++ b/migration/cpu-throttle.c
@@ -27,7 +27,7 @@
#include "hw/core/cpu.h"
#include "qemu/main-loop.h"
#include "sysemu/cpus.h"
-#include "sysemu/cpu-throttle.h"
+#include "cpu-throttle.h"
#include "trace.h"
/* vcpu throttling controls */
diff --git a/migration/migration.c b/migration/migration.c
index e81c70b9d2..05c8cd50b4 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -24,7 +24,7 @@
#include "socket.h"
#include "sysemu/runstate.h"
#include "sysemu/sysemu.h"
-#include "sysemu/cpu-throttle.h"
+#include "cpu-throttle.h"
#include "rdma.h"
#include "ram.h"
#include "migration/global_state.h"
@@ -263,6 +263,9 @@ void migration_object_init(void)
ram_mig_init();
dirty_bitmap_mig_init();
+
+ /* Initialize cpu throttle timers */
+ cpu_throttle_init();
}
typedef struct {
diff --git a/migration/ram.c b/migration/ram.c
index 326ce7eb79..54d352b152 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -52,7 +52,7 @@
#include "exec/target_page.h"
#include "qemu/rcu_queue.h"
#include "migration/colo.h"
-#include "sysemu/cpu-throttle.h"
+#include "cpu-throttle.h"
#include "savevm.h"
#include "qemu/iov.h"
#include "multifd.h"
diff --git a/system/cpu-timers.c b/system/cpu-timers.c
index 0b31c9a1b6..856e502e34 100644
--- a/system/cpu-timers.c
+++ b/system/cpu-timers.c
@@ -35,7 +35,6 @@
#include "sysemu/runstate.h"
#include "hw/core/cpu.h"
#include "sysemu/cpu-timers.h"
-#include "sysemu/cpu-throttle.h"
#include "sysemu/cpu-timers-internal.h"
/* clock and ticks */
@@ -272,6 +271,4 @@ void cpu_timers_init(void)
seqlock_init(&timers_state.vm_clock_seqlock);
qemu_spin_init(&timers_state.vm_clock_lock);
vmstate_register(NULL, 0, &vmstate_timers, &timers_state);
-
- cpu_throttle_init();
}
diff --git a/migration/meson.build b/migration/meson.build
index 66d3de86f0..d53cf3417a 100644
--- a/migration/meson.build
+++ b/migration/meson.build
@@ -13,6 +13,7 @@ system_ss.add(files(
'block-dirty-bitmap.c',
'channel.c',
'channel-block.c',
+ 'cpu-throttle.c',
'dirtyrate.c',
'exec.c',
'fd.c',
diff --git a/migration/trace-events b/migration/trace-events
index c65902f042..9a19599804 100644
--- a/migration/trace-events
+++ b/migration/trace-events
@@ -378,3 +378,6 @@ migration_block_progression(unsigned percent) "Completed %u%%"
# page_cache.c
migration_pagecache_init(int64_t max_num_items) "Setting cache buckets to %" PRId64
migration_pagecache_insert(void) "Error allocating page"
+
+# cpu-throttle.c
+cpu_throttle_set(int new_throttle_pct) "set guest CPU throttled by %d%%"
diff --git a/system/meson.build b/system/meson.build
index a296270cb0..4952f4b2c7 100644
--- a/system/meson.build
+++ b/system/meson.build
@@ -10,7 +10,6 @@ system_ss.add(files(
'balloon.c',
'bootdevice.c',
'cpus.c',
- 'cpu-throttle.c',
'cpu-timers.c',
'datadir.c',
'dirtylimit.c',
diff --git a/system/trace-events b/system/trace-events
index 074d001e90..2ed1d59b1f 100644
--- a/system/trace-events
+++ b/system/trace-events
@@ -44,6 +44,3 @@ dirtylimit_state_finalize(void)
dirtylimit_throttle_pct(int cpu_index, uint64_t pct, int64_t time_us) "CPU[%d] throttle percent: %" PRIu64 ", throttle adjust time %"PRIi64 " us"
dirtylimit_set_vcpu(int cpu_index, uint64_t quota) "CPU[%d] set dirty page rate limit %"PRIu64
dirtylimit_vcpu_execute(int cpu_index, int64_t sleep_time_us) "CPU[%d] sleep %"PRIi64 " us"
-
-# cpu-throttle.c
-cpu_throttle_set(int new_throttle_pct) "set guest CPU throttled by %d%%"
--
2.45.0
next prev parent reply other threads:[~2024-10-30 16:00 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-30 15:57 [PULL 00/18] Migration 20241030 patches Peter Xu
2024-10-30 15:57 ` [PULL 01/18] migration: Cleanup migrate_fd_cleanup() on accessing to_dst_file Peter Xu
2024-10-30 15:57 ` [PULL 02/18] migration: Put thread names together with macros Peter Xu
2024-10-30 15:57 ` [PULL 03/18] migration: Ensure vmstate_save() sets errp Peter Xu
2024-10-30 15:57 ` [PULL 04/18] accel/tcg/icount-common: Remove the reference to the unused header file Peter Xu
2024-10-30 15:57 ` [PULL 05/18] migration: Stop CPU throttling conditionally Peter Xu
2024-10-30 15:57 ` Peter Xu [this message]
2024-10-30 15:57 ` [PULL 07/18] migration: Remove "rs" parameter in migration_bitmap_sync_precopy Peter Xu
2024-10-30 15:57 ` [PULL 08/18] migration: Support periodic RAMBlock dirty bitmap sync Peter Xu
2024-10-30 15:57 ` [PULL 09/18] tests/migration: Add case for periodic ramblock dirty sync Peter Xu
2024-10-30 15:57 ` [PULL 10/18] migration/dirtyrate: Silence warning about strcpy() on OpenBSD Peter Xu
2024-10-30 15:57 ` [PULL 11/18] migration: Deprecate query-migrationthreads command Peter Xu
2024-10-30 15:57 ` [PULL 12/18] migration: Take migration object refcount earlier for threads Peter Xu
2024-10-30 15:57 ` [PULL 13/18] migration: Unexport dirty_bitmap_mig_init() Peter Xu
2024-10-30 15:57 ` [PULL 14/18] migration: Unexport ram_mig_init() Peter Xu
2024-10-30 15:57 ` [PULL 15/18] migration: Drop migration_is_setup_or_active() Peter Xu
2024-10-30 15:57 ` [PULL 16/18] migration: Drop migration_is_idle() Peter Xu
2024-10-30 15:57 ` [PULL 17/18] migration/ram: Add load start trace event Peter Xu
2024-10-30 15:57 ` [PULL 18/18] migration/multifd: Zero p->flags before starting filling a packet Peter Xu
2024-10-31 13:28 ` [PULL 00/18] Migration 20241030 patches Peter Maydell
2024-10-31 14:50 ` Peter Xu
2024-10-31 14:52 ` Peter Maydell
2024-10-31 15:14 ` Peter Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241030155734.2141398-7-peterx@redhat.com \
--to=peterx@redhat.com \
--cc=farosas@suse.de \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=yong.huang@smartx.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).