On Sun, 2026-08-23 at 13:36 +0000, Shivank Garg wrote: > The xAPIC IPI test uses MPOL_F_MEMS_ALLOWED to get the memory nodes > available to the current process. Move the query to numaif.h as > get_numa_mem_nodes() so other KVM selftests can use it. > > Call get_mempolicy() directly instead of using the assert-on-failure > kvm_get_mempolicy() wrapper. The xAPIC test already asserts its two > node requirement. > > Signed-off-by: Shivank Garg <[email protected]> > --- > tools/testing/selftests/kvm/include/numaif.h | 12 ++++++++++++ > tools/testing/selftests/kvm/x86/xapic_ipi_test.c | 6 ++---- > 2 files changed, 14 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/kvm/include/numaif.h > b/tools/testing/selftests/kvm/include/numaif.h > index 29572a6d789c..55124e2330ab 100644 > --- a/tools/testing/selftests/kvm/include/numaif.h > +++ b/tools/testing/selftests/kvm/include/numaif.h > @@ -75,6 +75,18 @@ static bool is_numa_available(void) > (errno != ENOSYS && errno != EPERM); > } > > +static inline unsigned long get_numa_mem_nodes(void) > +{ > + unsigned long nodemask = 0; > + > + /* Get set of first 64 numa nodes available */ > + if (get_mempolicy(NULL, &nodemask, BITS_PER_TYPE(nodemask), NULL, > + MPOL_F_MEMS_ALLOWED)) > + return 0; > + > + return nodemask; > +} > + > static inline bool is_multi_numa_node_system(void) > { > return is_numa_available() && get_max_numa_node() >= 1; > diff --git a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c > b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c > index 769d8d95ab2c..66dcf36398aa 100644 > --- a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c > +++ b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c > @@ -251,7 +251,7 @@ void do_migrations(struct test_data_page *data, int > run_secs, int delay_usecs, > u64 *pipis_rcvd) > { > long pages_not_moved; > - unsigned long nodemask = 0; > + unsigned long nodemask; > unsigned long nodemasks[BITS_PER_TYPE(nodemask)]; > int nodes = 0; > time_t start_time, last_update, now; > @@ -266,9 +266,7 @@ void do_migrations(struct test_data_page *data, int > run_secs, int delay_usecs, > fprintf(stderr, "Calling migrate_pages every %d microseconds\n", > delay_usecs); > > - /* Get set of first 64 numa nodes available */ > - kvm_get_mempolicy(NULL, &nodemask, BITS_PER_TYPE(nodemask), > - 0, MPOL_F_MEMS_ALLOWED); > + nodemask = get_numa_mem_nodes(); > > fprintf(stderr, "Numa nodes found amongst first %lu possible nodes " > "(each 1-bit indicates node is present): %#lx\n", >
From fd118b48e046c87d9b645b4ce7fc4ac5c0656431 Mon Sep 17 00:00:00 2001 From: Shivank Garg <[email protected]> Date: Sun, 23 Aug 2026 14:11:42 +0000 Subject: [PATCH] Fix potential compilation issues Sashiko reported that numaif.h does not include header that defines BITS_PER_TYPE. If a test includes numaif.h without previously including the header defining this macro, it might fail to compile due to a missing definition, breaking header self-containment. Link: https://lore.kernel.org/kvm/[email protected] Signed-off-by: Shivank Garg <[email protected]> --- tools/testing/selftests/kvm/include/numaif.h | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/kvm/include/numaif.h b/tools/testing/selftests/kvm/include/numaif.h index 4bbbf314e9d7..b89559b6ea3c 100644 --- a/tools/testing/selftests/kvm/include/numaif.h +++ b/tools/testing/selftests/kvm/include/numaif.h @@ -4,6 +4,7 @@ #ifndef SELFTEST_KVM_NUMAIF_H #define SELFTEST_KVM_NUMAIF_H +#include <linux/bits.h> #include <linux/mempolicy.h> #include "kvm_syscalls.h" -- 2.43.0

