On Thu, Jun 10, 2021 at 08:01:44PM +0100, Dr. David Alan Gilbert wrote: > > +#include <linux/kvm.h> > > Does that get you the system headers, which may or may not have > KVM_CAP_DIRTY_LOG_RING if you're on an old host, or does it get you > qemu's linux-headers which definitely does?
I tested it and it's using the linux-headers/ file even if I also got the other /usr/include one. So I think the qemu one just has higher priority in the "-I" paths. Btw, IIUC quotting with <> or "" should be the same here for headers, so I'm thinking maybe I should switch to "" like the rest headers. > > What happens on a BSD or the like? Ah, good point.. How about I squash this into the patch? ---8<--- diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index cc6e396d1a2..9ef6b471353 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -12,7 +12,6 @@ #include "qemu/osdep.h" -#include <linux/kvm.h> #include "libqos/libqtest.h" #include "qapi/error.h" #include "qapi/qmp/qdict.h" @@ -28,6 +27,10 @@ #include "migration-helpers.h" #include "tests/migration/migration-test.h" +#if defined(__linux__) +#include "linux/kvm.h" +#endif + /* TODO actually test the results and get rid of this */ #define qtest_qmp_discard_response(...) qobject_unref(qtest_qmp(__VA_ARGS__)) @@ -1392,6 +1395,7 @@ static void test_multifd_tcp_cancel(void) static bool kvm_dirty_ring_supported(void) { +#if defined(__linux__) int ret, kvm_fd = open("/dev/kvm", O_RDONLY); if (kvm_fd < 0) { @@ -1407,6 +1411,9 @@ static bool kvm_dirty_ring_supported(void) } return true; +#else + return false; +#endif } int main(int argc, char **argv) ---8<--- Thanks! -- Peter Xu