From 2fa72ba79bc84bd44385af260dbacc223f7a6181 Mon Sep 17 00:00:00 2001 From: Fabiano Rosas Date: Wed, 27 Nov 2024 15:28:52 -0300 Subject: [PATCH] tests/qtest/migration: Move kvm_dirty_ring_supported to utils Move kvm_dirty_ring_supported() to migration-util.c. Similarly to ufd_version_check(), this function is used during test definition so put it in the utils file. Reviewed-by: Peter Xu Signed-off-by: Fabiano Rosas --- tests/qtest/migration-test.c | 29 -------------------------- tests/qtest/migration/migration-util.c | 29 ++++++++++++++++++++++++++ tests/qtest/migration/migration-util.h | 1 + 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index f1c1ca309a3..ab7cbb82519 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -32,12 +32,6 @@ # endif /* CONFIG_TASN1 */ #endif /* CONFIG_GNUTLS */ -/* For dirty ring test; so far only x86_64 is supported */ -#if defined(__linux__) && defined(HOST_X86_64) -#include "linux/kvm.h" -#include -#endif - unsigned start_address; unsigned end_address; static bool uffd_feature_thread_id; @@ -3435,29 +3429,6 @@ static void test_dirty_limit(void) migrate_end(from, to, true); } -static bool kvm_dirty_ring_supported(void) -{ -#if defined(__linux__) && defined(HOST_X86_64) - int ret, kvm_fd = open("/dev/kvm", O_RDONLY); - - if (kvm_fd < 0) { - return false; - } - - ret = ioctl(kvm_fd, KVM_CHECK_EXTENSION, KVM_CAP_DIRTY_LOG_RING); - close(kvm_fd); - - /* We test with 4096 slots */ - if (ret < 4096) { - return false; - } - - return true; -#else - return false; -#endif -} - int main(int argc, char **argv) { bool has_kvm, has_tcg; diff --git a/tests/qtest/migration/migration-util.c b/tests/qtest/migration/migration-util.c index 2ff8870fd5f..525bf1eed42 100644 --- a/tests/qtest/migration/migration-util.c +++ b/tests/qtest/migration/migration-util.c @@ -28,6 +28,12 @@ #include "qemu/userfaultfd.h" #endif +/* For dirty ring test; so far only x86_64 is supported */ +#if defined(__linux__) && defined(HOST_X86_64) +#include "linux/kvm.h" +#include +#endif + static char *SocketAddress_to_str(SocketAddress *addr) { @@ -331,3 +337,26 @@ bool ufd_version_check(bool *uffd_feature_thread_id) return false; } #endif + +bool kvm_dirty_ring_supported(void) +{ +#if defined(__linux__) && defined(HOST_X86_64) + int ret, kvm_fd = open("/dev/kvm", O_RDONLY); + + if (kvm_fd < 0) { + return false; + } + + ret = ioctl(kvm_fd, KVM_CHECK_EXTENSION, KVM_CAP_DIRTY_LOG_RING); + close(kvm_fd); + + /* We test with 4096 slots */ + if (ret < 4096) { + return false; + } + + return true; +#else + return false; +#endif +} diff --git a/tests/qtest/migration/migration-util.h b/tests/qtest/migration/migration-util.h index 2ab22e3fd57..f5f2e4650e7 100644 --- a/tests/qtest/migration/migration-util.h +++ b/tests/qtest/migration/migration-util.h @@ -49,6 +49,7 @@ static inline bool probe_o_direct_support(const char *tmpfs) #endif bool ufd_version_check(bool *uffd_feature_thread_id); +bool kvm_dirty_ring_supported(void); void migration_test_add(const char *path, void (*fn)(void)); char *migrate_get_connect_uri(QTestState *who); void migrate_set_ports(QTestState *to, QList *channel_list); -- 2.39.5