Re: [PATCH v5 0/5] mm: introduce memfd_secret system call to create "secret" memory areas
Hi all, On Fri, 18 Sep 2020 14:25:15 -0400 Qian Cai wrote: > > On Thu, 2020-09-17 at 09:27 -0400, Qian Cai wrote: > > On Wed, 2020-09-16 at 10:35 +0300, Mike Rapoport wrote: > > > From: Mike Rapoport > > > > > > This is an implementation of "secret" mappings backed by a file > > > descriptor. > > > I've dropped the boot time reservation patch for now as it is not strictly > > > required for the basic usage and can be easily added later either with or > > > without CMA. > > > > On powerpc: https://gitlab.com/cailca/linux-mm/-/blob/master/powerpc.config > > > > There is a compiling warning from the today's linux-next: > > > > :1532:2: warning: #warning syscall memfd_secret not implemented > > [-Wcpp] > > This should silence the warning: > > diff --git a/scripts/checksyscalls.sh b/scripts/checksyscalls.sh > index a18b47695f55..b7609958ee36 100755 > --- a/scripts/checksyscalls.sh > +++ b/scripts/checksyscalls.sh > @@ -40,6 +40,10 @@ cat << EOF > #define __IGNORE_setrlimit /* setrlimit */ > #endif > > +#ifndef __ARCH_WANT_MEMFD_SECRET > +#define __IGNORE_memfd_secret > +#endif > + > /* Missing flags argument */ > #define __IGNORE_renameat/* renameat2 */ > Added to linux-next today. -- Cheers, Stephen Rothwell pgpPjBWQnK7wT.pgp Description: OpenPGP digital signature
Re: [PATCH v5 0/5] mm: introduce memfd_secret system call to create "secret" memory areas
On Thu, 2020-09-17 at 09:27 -0400, Qian Cai wrote: > On Wed, 2020-09-16 at 10:35 +0300, Mike Rapoport wrote: > > From: Mike Rapoport > > > > Hi, > > > > This is an implementation of "secret" mappings backed by a file descriptor. > > I've dropped the boot time reservation patch for now as it is not strictly > > required for the basic usage and can be easily added later either with or > > without CMA. > > On powerpc: https://gitlab.com/cailca/linux-mm/-/blob/master/powerpc.config > > There is a compiling warning from the today's linux-next: > > :1532:2: warning: #warning syscall memfd_secret not implemented [-Wcpp] This should silence the warning: diff --git a/scripts/checksyscalls.sh b/scripts/checksyscalls.sh index a18b47695f55..b7609958ee36 100755 --- a/scripts/checksyscalls.sh +++ b/scripts/checksyscalls.sh @@ -40,6 +40,10 @@ cat << EOF #define __IGNORE_setrlimit /* setrlimit */ #endif +#ifndef __ARCH_WANT_MEMFD_SECRET +#define __IGNORE_memfd_secret +#endif + /* Missing flags argument */ #define __IGNORE_renameat /* renameat2 */
Re: [PATCH v5 0/5] mm: introduce memfd_secret system call to create "secret" memory areas
On Wed, 2020-09-16 at 10:35 +0300, Mike Rapoport wrote: > From: Mike Rapoport > > Hi, > > This is an implementation of "secret" mappings backed by a file descriptor. > I've dropped the boot time reservation patch for now as it is not strictly > required for the basic usage and can be easily added later either with or > without CMA. On powerpc: https://gitlab.com/cailca/linux-mm/-/blob/master/powerpc.config There is a compiling warning from the today's linux-next: :1532:2: warning: #warning syscall memfd_secret not implemented [-Wcpp]
Re: [PATCH v5 0/5] mm: introduce memfd_secret system call to create "secret" memory areas
On Wed, Sep 16, 2020 at 04:20:20PM -0700, Andrew Morton wrote: > On Wed, 16 Sep 2020 10:35:34 +0300 Mike Rapoport wrote: > > > This is an implementation of "secret" mappings backed by a file descriptor. > > I've dropped the boot time reservation patch for now as it is not strictly > > required for the basic usage and can be easily added later either with or > > without CMA. > > It seems early days for this, especially as regards reviewer buyin. > But I'll toss it in there to get it some additional testing. Thanks! > A test suite in tools/testging/selftests/ would be helpful, especially > for arch maintainers. I'll look into it. > I assume that user-facing manpage alterations are planned? Of course. -- Sincerely yours, Mike.
Re: [PATCH v5 0/5] mm: introduce memfd_secret system call to create "secret" memory areas
On Thu, Sep 17, 2020 at 07:46:12AM +0200, Michael Kerrisk (man-pages) wrote: > On Thu, 17 Sep 2020 at 01:20, Andrew Morton wrote: > > > > On Wed, 16 Sep 2020 10:35:34 +0300 Mike Rapoport wrote: > > > > > This is an implementation of "secret" mappings backed by a file > > > descriptor. > > > I've dropped the boot time reservation patch for now as it is not strictly > > > required for the basic usage and can be easily added later either with or > > > without CMA. > > > > It seems early days for this, especially as regards reviewer buyin. > > But I'll toss it in there to get it some additional testing. > > > > A test suite in tools/testging/selftests/ would be helpful, especially > > for arch maintainers. > > > > I assume that user-facing manpage alterations are planned? > I was just about to write a mail into this thread when I saw this :-). > > So far, I don't think I saw a manual page patch. Mike, how about it? It is planned :) I have a draft, but I'm waiting for consensus about the uncached mappings before sending it out. -- Sincerely yours, Mike.
Re: [PATCH v5 0/5] mm: introduce memfd_secret system call to create "secret" memory areas
On Thu, 17 Sep 2020 at 01:20, Andrew Morton wrote: > > On Wed, 16 Sep 2020 10:35:34 +0300 Mike Rapoport wrote: > > > This is an implementation of "secret" mappings backed by a file descriptor. > > I've dropped the boot time reservation patch for now as it is not strictly > > required for the basic usage and can be easily added later either with or > > without CMA. > > It seems early days for this, especially as regards reviewer buyin. > But I'll toss it in there to get it some additional testing. > > A test suite in tools/testging/selftests/ would be helpful, especially > for arch maintainers. > > I assume that user-facing manpage alterations are planned? I was just about to write a mail into this thread when I saw this :-). So far, I don't think I saw a manual page patch. Mike, how about it? Thanks, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/
Re: [PATCH v5 0/5] mm: introduce memfd_secret system call to create "secret" memory areas
On Wed, 16 Sep 2020 10:35:34 +0300 Mike Rapoport wrote: > This is an implementation of "secret" mappings backed by a file descriptor. > I've dropped the boot time reservation patch for now as it is not strictly > required for the basic usage and can be easily added later either with or > without CMA. It seems early days for this, especially as regards reviewer buyin. But I'll toss it in there to get it some additional testing. A test suite in tools/testging/selftests/ would be helpful, especially for arch maintainers. I assume that user-facing manpage alterations are planned?
Re: [PATCH v5 0/5] mm: introduce memfd_secret system call to create "secret" memory areas
On Wed, Sep 16, 2020 at 12:28 AM Mike Rapoport wrote: > > From: Mike Rapoport > > Hi, > > This is an implementation of "secret" mappings backed by a file descriptor. > I've dropped the boot time reservation patch for now as it is not strictly > required for the basic usage and can be easily added later either with or > without CMA. > > v5 changes: > * rebase on v5.9-rc5 > * drop boot time memory reservation patch > > v4 changes: > * rebase on v5.9-rc1 > * Do not redefine PMD_PAGE_ORDER in fs/dax.c, thanks Kirill > * Make secret mappings exclusive by default and only require flags to > memfd_secret() system call for uncached mappings, thanks again Kirill :) > > v3 changes: > * Squash kernel-parameters.txt update into the commit that added the > command line option. > * Make uncached mode explicitly selectable by architectures. For now enable > it only on x86. > > v2 changes: > * Follow Michael's suggestion and name the new system call 'memfd_secret' > * Add kernel-parameters documentation about the boot option > * Fix i386-tinyconfig regression reported by the kbuild bot. > CONFIG_SECRETMEM now depends on !EMBEDDED to disable it on small systems > from one side and still make it available unconditionally on > architectures that support SET_DIRECT_MAP. > > The file descriptor backing secret memory mappings is created using a > dedicated memfd_secret system call The desired protection mode for the > memory is configured using flags parameter of the system call. The mmap() > of the file descriptor created with memfd_secret() will create a "secret" > memory mapping. The pages in that mapping will be marked as not present in > the direct map and will have desired protection bits set in the user page > table. For instance, current implementation allows uncached mappings. I still have serious concerns with uncached mappings. I'm not saying I can't be convinced, but I'm not currently convinced that we should allow user code to create UC mappings on x86. --Andy