From: "Arnd Bergmann" <arnd@arndb.de>
To: "Gregory Price" <gourry.memverge@gmail.com>, linux-mm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
Linux-Arch <linux-arch@vger.kernel.org>,
linux-api@vger.kernel.org, linux-cxl@vger.kernel.org,
"Andy Lutomirski" <luto@kernel.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Ingo Molnar" <mingo@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
x86@kernel.org, "Gregory Price" <gregory.price@memverge.com>
Subject: Re: [RFC PATCH 3/3] mm/migrate: Create move_phys_pages syscall
Date: Sat, 09 Sep 2023 10:03:33 +0200 [thread overview]
Message-ID: <f73d0495-f575-4b97-bc74-a57bd427df98@app.fastmail.com> (raw)
In-Reply-To: <20230907075453.350554-4-gregory.price@memverge.com>
On Thu, Sep 7, 2023, at 09:54, Gregory Price wrote:
> diff --git a/arch/x86/entry/syscalls/syscall_32.tbl
> b/arch/x86/entry/syscalls/syscall_32.tbl
> index 2d0b1bd866ea..25db6d71af0c 100644
> --- a/arch/x86/entry/syscalls/syscall_32.tbl
> +++ b/arch/x86/entry/syscalls/syscall_32.tbl
> @@ -457,3 +457,4 @@
> 450 i386 set_mempolicy_home_node sys_set_mempolicy_home_node
> 451 i386 cachestat sys_cachestat
> 452 i386 fchmodat2 sys_fchmodat2
> +454 i386 move_phys_pages sys_move_phys_pages
> diff --git a/arch/x86/entry/syscalls/syscall_64.tbl
> b/arch/x86/entry/syscalls/syscall_64.tbl
> index 1d6eee30eceb..9676f2e7698c 100644
> --- a/arch/x86/entry/syscalls/syscall_64.tbl
> +++ b/arch/x86/entry/syscalls/syscall_64.tbl
> @@ -375,6 +375,7 @@
> 451 common cachestat sys_cachestat
> 452 common fchmodat2 sys_fchmodat2
> 453 64 map_shadow_stack sys_map_shadow_stack
> +454 common move_phys_pages sys_move_phys_pages
Doing only x86 is fine for review purposes, but note that
once there is consensus on actually merging it and the syscall
number, you should do the same for all architectures. I think
most commonly we do one patch to add the code and another
patch to hook it up to all the syscall.tbl files and the
include/uapi/asm-generic/unistd.h file.
> diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
> index 22bc6bc147f8..6860675a942f 100644
> --- a/include/linux/syscalls.h
> +++ b/include/linux/syscalls.h
> @@ -821,6 +821,11 @@ asmlinkage long sys_move_pages(pid_t pid, unsigned
> long nr_pages,
> const int __user *nodes,
> int __user *status,
> int flags);
> +asmlinkage long sys_move_phys_pages(unsigned long nr_pages,
> + const void __user * __user *pages,
> + const int __user *nodes,
> + int __user *status,
> + int flags);
The prototype looks good from a portability point of view,
i.e. I made sure this is portable across CONFIG_COMPAT
architectures etc.
What I'm not sure about is whether the representation of physical
memory pages as a 'void *' is a good choice, I can see potential
problems with this:
- it's not really a pointer, but instead a shifted PFN number
in the implementation
- physical addresses may be wider than pointers on 32-bit
architectures with CONFIG_PHYS_ADDR_T_64BIT
I'm also not sure where the user space caller gets the
physical addresses from, are those not intentionally kept
hidden from userspace?
Arnd
next prev parent reply other threads:[~2023-09-09 8:10 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-07 7:54 [RFC 0/3] sys_move_phy_pages system call Gregory Price
2023-09-07 7:54 ` [RFC PATCH 1/3] mm/migrate: remove unused mm argument from do_move_pages_to_node Gregory Price
2023-09-07 7:54 ` [RFC PATCH 2/3] mm/migrate: refactor add_page_for_migration for code re-use Gregory Price
2023-09-07 7:54 ` [RFC PATCH 3/3] mm/migrate: Create move_phys_pages syscall Gregory Price
2023-09-09 8:03 ` Arnd Bergmann [this message]
2023-09-08 7:46 ` Gregory Price
2023-09-09 15:18 ` Arnd Bergmann
2023-09-10 12:52 ` Gregory Price
2023-09-11 17:26 ` Arnd Bergmann
2023-09-10 15:01 ` Gregory Price
2023-09-10 20:36 ` Jonathan Corbet
2023-09-10 11:49 ` Gregory Price
2023-09-19 3:34 ` Andy Lutomirski
2023-09-19 16:31 ` Gregory Price
2023-09-19 17:59 ` Andy Lutomirski
2023-09-19 18:20 ` Gregory Price
2023-09-19 18:52 ` Andy Lutomirski
2023-09-19 19:59 ` Gregory Price
2023-09-19 0:17 ` Thomas Gleixner
2023-09-19 15:57 ` Gregory Price
2023-09-19 16:37 ` Gregory Price
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=f73d0495-f575-4b97-bc74-a57bd427df98@app.fastmail.com \
--to=arnd@arndb.de \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=gourry.memverge@gmail.com \
--cc=gregory.price@memverge.com \
--cc=hpa@zytor.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/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).