mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Garg, Shivank" <shivankg@amd.com>
To: Sean Christopherson <seanjc@google.com>,
	Miguel Ojeda <ojeda@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Oliver Upton <oliver.upton@linux.dev>,
	Paolo Bonzini <pbonzini@redhat.com>
Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Ackerley Tng <ackerleytng@google.com>,
	David Hildenbrand <david@redhat.com>,
	Fuad Tabba <tabba@google.com>,
	Ashish Kalra <ashish.kalra@amd.com>,
	Vlastimil Babka <vbabka@suse.cz>
Subject: Re: [PATCH v13 08/12] KVM: selftests: Add additional equivalents to libnuma APIs in KVM's numaif.h
Date: Fri, 17 Oct 2025 15:42:58 +0530	[thread overview]
Message-ID: <12e97af8-d2c1-43ac-aa7f-a5416ee48201@amd.com> (raw)
In-Reply-To: <20251016172853.52451-9-seanjc@google.com>



On 10/16/2025 10:58 PM, Sean Christopherson wrote:
> Add APIs for all syscalls defined in the kernel's mm/mempolicy.c to match
> those that would be provided by linking to libnuma.  Opportunistically use
> the recently inroduced KVM_SYSCALL_DEFINE() builders to take care of the
> boilerplate, and to fix a flaw where the two existing wrappers would
> generate multiple symbols if numaif.h were to be included multiple times.
> 
> Reviewed-by: Ackerley Tng <ackerleytng@google.com>
> Tested-by: Ackerley Tng <ackerleytng@google.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
>  tools/testing/selftests/kvm/include/numaif.h  | 36 +++++++++++--------
>  .../selftests/kvm/x86/xapic_ipi_test.c        |  5 ++-
>  2 files changed, 23 insertions(+), 18 deletions(-)
> 
> diff --git a/tools/testing/selftests/kvm/include/numaif.h b/tools/testing/selftests/kvm/include/numaif.h
> index b020547403fd..aaa4ac174890 100644
> --- a/tools/testing/selftests/kvm/include/numaif.h
> +++ b/tools/testing/selftests/kvm/include/numaif.h
> @@ -13,23 +13,29 @@
>  #ifndef SELFTEST_KVM_NUMAIF_H
>  #define SELFTEST_KVM_NUMAIF_H
>  
> -#define __NR_get_mempolicy 239
> -#define __NR_migrate_pages 256
> +#include <linux/mempolicy.h>
>  
> -/* System calls */
> -long get_mempolicy(int *policy, const unsigned long *nmask,
> -		   unsigned long maxnode, void *addr, int flags)
> -{
> -	return syscall(__NR_get_mempolicy, policy, nmask,
> -		       maxnode, addr, flags);
> -}
> +#include "kvm_syscalls.h"
>  
> -long migrate_pages(int pid, unsigned long maxnode,
> -		   const unsigned long *frommask,
> -		   const unsigned long *tomask)
> -{
> -	return syscall(__NR_migrate_pages, pid, maxnode, frommask, tomask);
> -}
> +KVM_SYSCALL_DEFINE(get_mempolicy, 5, int *, policy, const unsigned long *, nmask,
> +		   unsigned long, maxnode, void *, addr, int, flags);
> +
> +KVM_SYSCALL_DEFINE(set_mempolicy, 3, int, mode, const unsigned long *, nmask,
> +		   unsigned long, maxnode);
> +
> +KVM_SYSCALL_DEFINE(set_mempolicy_home_node, 4, unsigned long, start,
> +		   unsigned long, len, unsigned long, home_node,
> +		   unsigned long, flags);

set_mempolicy_home_node() has no user in this series,
but adding it for API completeness (or future use) looks reasonable to me.

Reviewed-by: Shivank Garg <shivankg@amd.com>
Tested-by: Shivank Garg <shivankg@amd.com>

> +
> +KVM_SYSCALL_DEFINE(migrate_pages, 4, int, pid, unsigned long, maxnode,
> +		   const unsigned long *, frommask, const unsigned long *, tomask);
> +
> +KVM_SYSCALL_DEFINE(move_pages, 6, int, pid, unsigned long, count, void *, pages,
> +		   const int *, nodes, int *, status, int, flags);
> +
> +KVM_SYSCALL_DEFINE(mbind, 6, void *, addr, unsigned long, size, int, mode,
> +		   const unsigned long *, nodemask, unsigned long, maxnode,
> +		   unsigned int, flags);
>  
>  /* Policies */
>  #define MPOL_DEFAULT	 0
> diff --git a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c
> index 35cb9de54a82..ae4a4b6c05ca 100644
> --- a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c
> +++ b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c
> @@ -256,7 +256,7 @@ void do_migrations(struct test_data_page *data, int run_secs, int delay_usecs,
>  	int nodes = 0;
>  	time_t start_time, last_update, now;
>  	time_t interval_secs = 1;
> -	int i, r;
> +	int i;
>  	int from, to;
>  	unsigned long bit;
>  	uint64_t hlt_count;
> @@ -267,9 +267,8 @@ void do_migrations(struct test_data_page *data, int run_secs, int delay_usecs,
>  		delay_usecs);
>  
>  	/* Get set of first 64 numa nodes available */
> -	r = get_mempolicy(NULL, &nodemask, sizeof(nodemask) * 8,
> +	kvm_get_mempolicy(NULL, &nodemask, sizeof(nodemask) * 8,
>  			  0, MPOL_F_MEMS_ALLOWED);
> -	TEST_ASSERT(r == 0, "get_mempolicy failed errno=%d", errno);
>  
>  	fprintf(stderr, "Numa nodes found amongst first %lu possible nodes "
>  		"(each 1-bit indicates node is present): %#lx\n",


  reply	other threads:[~2025-10-17 10:13 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-16 17:28 [PATCH v13 00/12] KVM: guest_memfd: Add NUMA mempolicy support Sean Christopherson
2025-10-16 17:28 ` [PATCH v13 01/12] KVM: guest_memfd: Rename "struct kvm_gmem" to "struct gmem_file" Sean Christopherson
2025-10-17  9:31   ` Garg, Shivank
2025-10-16 17:28 ` [PATCH v13 02/12] KVM: guest_memfd: Add macro to iterate over gmem_files for a mapping/inode Sean Christopherson
2025-10-17  9:34   ` Garg, Shivank
2025-10-16 17:28 ` [PATCH v13 03/12] KVM: guest_memfd: Use guest mem inodes instead of anonymous inodes Sean Christopherson
2025-10-16 17:28 ` [PATCH v13 04/12] KVM: guest_memfd: Add slab-allocated inode cache Sean Christopherson
2025-10-27 11:06   ` Vlastimil Babka
2025-10-27 12:25     ` Garg, Shivank
2025-10-16 17:28 ` [PATCH v13 05/12] KVM: guest_memfd: Enforce NUMA mempolicy using shared policy Sean Christopherson
2025-10-16 17:28 ` [PATCH v13 06/12] KVM: selftests: Define wrappers for common syscalls to assert success Sean Christopherson
2025-10-17  9:51   ` Garg, Shivank
2025-10-16 17:28 ` [PATCH v13 07/12] KVM: selftests: Report stacktraces SIGBUS, SIGSEGV, SIGILL, and SIGFPE by default Sean Christopherson
2025-10-17  9:53   ` Garg, Shivank
2025-10-16 17:28 ` [PATCH v13 08/12] KVM: selftests: Add additional equivalents to libnuma APIs in KVM's numaif.h Sean Christopherson
2025-10-17 10:12   ` Garg, Shivank [this message]
2025-10-16 17:28 ` [PATCH v13 09/12] KVM: selftests: Use proper uAPI headers to pick up mempolicy.h definitions Sean Christopherson
2025-10-17 10:35   ` Garg, Shivank
2025-10-17 16:18     ` Sean Christopherson
2025-10-16 17:28 ` [PATCH v13 10/12] KVM: selftests: Add helpers to probe for NUMA support, and multi-node systems Sean Christopherson
2025-10-16 17:28 ` [PATCH v13 11/12] KVM: selftests: Add guest_memfd tests for mmap and NUMA policy support Sean Christopherson
2025-10-16 17:28 ` [PATCH v13 12/12] KVM: guest_memfd: Add gmem_inode.flags field instead of using i_private Sean Christopherson
2025-10-17 11:01   ` Garg, Shivank
2025-10-16 18:08 ` [PATCH v13 00/12] KVM: guest_memfd: Add NUMA mempolicy support Miguel Ojeda
2025-10-16 20:28   ` Sean Christopherson
2025-10-16 21:07     ` Miguel Ojeda
2025-10-16 23:57       ` Ackerley Tng
2025-10-17  0:09         ` Miguel Ojeda
2025-10-17 16:49           ` Sean Christopherson
2025-10-20 16:33 ` Sean Christopherson
2025-10-21  5:59   ` Garg, Shivank

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=12e97af8-d2c1-43ac-aa7f-a5416ee48201@amd.com \
    --to=shivankg@amd.com \
    --cc=ackerleytng@google.com \
    --cc=ashish.kalra@amd.com \
    --cc=david@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=ojeda@kernel.org \
    --cc=oliver.upton@linux.dev \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=tabba@google.com \
    --cc=vbabka@suse.cz \
    /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

all inboxes | Powered by JetHome®