Re: [PATCH v5 0/5] mm: introduce memfd_secret system call to create "secret" memory areas

2020-09-21 Thread Stephen Rothwell
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

2020-09-18 Thread Qian Cai
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

2020-09-17 Thread Qian Cai
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

2020-09-16 Thread Mike Rapoport
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

2020-09-16 Thread Mike Rapoport
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

2020-09-16 Thread Michael Kerrisk (man-pages)
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

2020-09-16 Thread Andrew Morton
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

2020-09-16 Thread Andy Lutomirski
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