All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Brauner <brauner@kernel.org>
To: Ackerley Tng <ackerleytng@google.com>
Cc: kvm@vger.kernel.org, linux-api@vger.kernel.org,
	linux-arch@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, qemu-devel@nongnu.org, aarcange@redhat.com,
	ak@linux.intel.com, akpm@linux-foundation.org, arnd@arndb.de,
	bfields@fieldses.org, bp@alien8.de, chao.p.peng@linux.intel.com,
	corbet@lwn.net, dave.hansen@intel.com, david@redhat.com,
	ddutile@redhat.com, dhildenb@redhat.com, hpa@zytor.com,
	hughd@google.com, jlayton@kernel.org, jmattson@google.com,
	joro@8bytes.org, jun.nakajima@intel.com,
	kirill.shutemov@linux.intel.com, linmiaohe@huawei.com,
	luto@kernel.org, mail@maciej.szmigiero.name, mhocko@suse.com,
	michael.roth@amd.com, mingo@redhat.com, naoya.horiguchi@nec.com,
	pbonzini@redhat.com, qperret@google.com, rppt@kernel.org,
	seanjc@google.com, shuah@kernel.org, steven.price@arm.com,
	tabba@google.com, tglx@linutronix.de, vannapurve@google.com,
	vbabka@suse.cz, vkuznets@redhat.com, wanpengli@tencent.com,
	wei.w.wang@intel.com, x86@kernel.org, yu.c.zhang@linux.intel.com
Subject: Re: [RFC PATCH v3 1/2] mm: restrictedmem: Allow userspace to specify mount for memfd_restricted
Date: Tue, 4 Apr 2023 15:53:13 +0200	[thread overview]
Message-ID: <20230404-amnesty-untying-01de932d4945@brauner> (raw)
In-Reply-To: <592ebd9e33a906ba026d56dc68f42d691706f865.1680306489.git.ackerleytng@google.com>

On Fri, Mar 31, 2023 at 11:50:39PM +0000, Ackerley Tng wrote:
> By default, the backing shmem file for a restrictedmem fd is created
> on shmem's kernel space mount.
> 
> With this patch, an optional tmpfs mount can be specified via an fd,
> which will be used as the mountpoint for backing the shmem file
> associated with a restrictedmem fd.
> 
> This will help restrictedmem fds inherit the properties of the
> provided tmpfs mounts, for example, hugepage allocation hints, NUMA
> binding hints, etc.
> 
> Permissions for the fd passed to memfd_restricted() is modeled after
> the openat() syscall, since both of these allow creation of a file
> upon a mount/directory.
> 
> Permission to reference the mount the fd represents is checked upon fd
> creation by other syscalls (e.g. fsmount(), open(), or open_tree(),
> etc) and any process that can present memfd_restricted() with a valid
> fd is expected to have obtained permission to use the mount
> represented by the fd. This behavior is intended to parallel that of
> the openat() syscall.
> 
> memfd_restricted() will check that the tmpfs superblock is
> writable, and that the mount is also writable, before attempting to
> create a restrictedmem file on the mount.
> 
> Signed-off-by: Ackerley Tng <ackerleytng@google.com>
> ---
>  include/linux/syscalls.h           |  2 +-
>  include/uapi/linux/restrictedmem.h |  8 ++++
>  mm/restrictedmem.c                 | 74 +++++++++++++++++++++++++++---
>  3 files changed, 77 insertions(+), 7 deletions(-)
>  create mode 100644 include/uapi/linux/restrictedmem.h
> 
> diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
> index f9e9e0c820c5..a23c4c385cd3 100644
> --- a/include/linux/syscalls.h
> +++ b/include/linux/syscalls.h
> @@ -1056,7 +1056,7 @@ asmlinkage long sys_memfd_secret(unsigned int flags);
>  asmlinkage long sys_set_mempolicy_home_node(unsigned long start, unsigned long len,
>  					    unsigned long home_node,
>  					    unsigned long flags);
> -asmlinkage long sys_memfd_restricted(unsigned int flags);
> +asmlinkage long sys_memfd_restricted(unsigned int flags, int mount_fd);
> 
>  /*
>   * Architecture-specific system calls
> diff --git a/include/uapi/linux/restrictedmem.h b/include/uapi/linux/restrictedmem.h
> new file mode 100644
> index 000000000000..22d6f2285f6d
> --- /dev/null
> +++ b/include/uapi/linux/restrictedmem.h
> @@ -0,0 +1,8 @@
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> +#ifndef _UAPI_LINUX_RESTRICTEDMEM_H
> +#define _UAPI_LINUX_RESTRICTEDMEM_H
> +
> +/* flags for memfd_restricted */
> +#define RMFD_USERMNT		0x0001U
> +
> +#endif /* _UAPI_LINUX_RESTRICTEDMEM_H */
> diff --git a/mm/restrictedmem.c b/mm/restrictedmem.c
> index c5d869d8c2d8..f7b62364a31a 100644
> --- a/mm/restrictedmem.c
> +++ b/mm/restrictedmem.c
> @@ -1,11 +1,12 @@
>  // SPDX-License-Identifier: GPL-2.0
> -#include "linux/sbitmap.h"
> +#include <linux/namei.h>
>  #include <linux/pagemap.h>
>  #include <linux/pseudo_fs.h>
>  #include <linux/shmem_fs.h>
>  #include <linux/syscalls.h>
>  #include <uapi/linux/falloc.h>
>  #include <uapi/linux/magic.h>
> +#include <uapi/linux/restrictedmem.h>
>  #include <linux/restrictedmem.h>
> 
>  struct restrictedmem {
> @@ -189,19 +190,20 @@ static struct file *restrictedmem_file_create(struct file *memfd)
>  	return file;
>  }
> 
> -SYSCALL_DEFINE1(memfd_restricted, unsigned int, flags)
> +static int restrictedmem_create(struct vfsmount *mount)
>  {
>  	struct file *file, *restricted_file;
>  	int fd, err;
> 
> -	if (flags)
> -		return -EINVAL;
> -
>  	fd = get_unused_fd_flags(0);

Any reasons the file descriptors aren't O_CLOEXEC by default? I don't
see any reasons why we should introduce new fdtypes that aren't
O_CLOEXEC by default. The "don't mix-and-match" train has already left
the station anyway as we do have seccomp noitifer fds and pidfds both of
which are O_CLOEXEC by default.

>  	if (fd < 0)
>  		return fd;
> 
> -	file = shmem_file_setup("memfd:restrictedmem", 0, VM_NORESERVE);
> +	if (mount)
> +		file = shmem_file_setup_with_mnt(mount, "memfd:restrictedmem", 0, VM_NORESERVE);
> +	else
> +		file = shmem_file_setup("memfd:restrictedmem", 0, VM_NORESERVE);
> +
>  	if (IS_ERR(file)) {
>  		err = PTR_ERR(file);
>  		goto err_fd;
> @@ -223,6 +225,66 @@ SYSCALL_DEFINE1(memfd_restricted, unsigned int, flags)
>  	return err;
>  }
> 
> +static bool is_shmem_mount(struct vfsmount *mnt)
> +{
> +	return mnt && mnt->mnt_sb && mnt->mnt_sb->s_magic == TMPFS_MAGIC;

This can just be if (mnt->mnt_sb->s_magic == TMPFS_MAGIC).

> +}
> +
> +static bool is_mount_root(struct file *file)
> +{
> +	return file->f_path.dentry == file->f_path.mnt->mnt_root;

mount -t tmpfs tmpfs /mnt
touch /mnt/bla
touch /mnt/ble
mount --bind /mnt/bla /mnt/ble
fd = open("/mnt/ble")
fd_restricted = memfd_restricted(fd)

IOW, this doesn't restrict it to the tmpfs root. It only restricts it to
paths that refer to the root of any tmpfs mount. To exclude bind-mounts
that aren't bind-mounts of the whole filesystem you want:

path->dentry == path->mnt->mnt_root && 
path->mnt->mnt_root == path->mnt->mnt_sb->s_root

> +}
> +
> +static int restrictedmem_create_on_user_mount(int mount_fd)
> +{
> +	int ret;
> +	struct fd f;
> +	struct vfsmount *mnt;
> +
> +	f = fdget_raw(mount_fd);
> +	if (!f.file)
> +		return -EBADF;
> +
> +	ret = -EINVAL;
> +	if (!is_mount_root(f.file))
> +		goto out;
> +
> +	mnt = f.file->f_path.mnt;
> +	if (!is_shmem_mount(mnt))
> +		goto out;
> +
> +	ret = file_permission(f.file, MAY_WRITE | MAY_EXEC);

With the current semantics you're asking whether you have write
permissions on the /mnt/ble file in order to get answer to the question
whether you're allowed to create an unlinked restricted memory file.
That doesn't make much sense afaict.

> +	if (ret)
> +		goto out;
> +
> +	ret = mnt_want_write(mnt);
> +	if (unlikely(ret))
> +		goto out;
> +
> +	ret = restrictedmem_create(mnt);
> +
> +	mnt_drop_write(mnt);
> +out:
> +	fdput(f);
> +
> +	return ret;
> +}
> +
> +SYSCALL_DEFINE2(memfd_restricted, unsigned int, flags, int, mount_fd)
> +{
> +	if (flags & ~RMFD_USERMNT)
> +		return -EINVAL;
> +
> +	if (flags == RMFD_USERMNT) {

Why do you even need this flag? It seems that @mount_fd being < 0 is
sufficient to indicate that a new restricted memory fd is supposed to be
created in the system instance.

> +		if (mount_fd < 0)
> +			return -EINVAL;
> +
> +		return restrictedmem_create_on_user_mount(mount_fd);
> +	} else {
> +		return restrictedmem_create(NULL);
> +	}
> +}

I have to say that I'm very confused by all of this the more I look at it.

Effectively memfd restricted functions as a wrapper filesystem around
the tmpfs filesystem. This is basically a weird overlay filesystem.
You're allocating tmpfs files that you stash in restrictedmem files. 
I have to say that this seems very hacky. I didn't get this at all at
first.

So what does the caller get if they call statx() on a restricted memfd?
Do they get the device number of the tmpfs mount and the inode numbers
of the tmpfs mount? Because it looks like they would:

static int restrictedmem_getattr(struct user_namespace *mnt_userns,
				 const struct path *path, struct kstat *stat,
				 u32 request_mask, unsigned int query_flags)
{
	struct inode *inode = d_inode(path->dentry);
	struct restrictedmem *rm = inode->i_mapping->private_data;
	struct file *memfd = rm->memfd;

	return memfd->f_inode->i_op->getattr(mnt_userns, path, stat,
					     request_mask, query_flags);

That @memfd would be a struct file allocated in a tmpfs instance, no? So
you'd be calling the inode operation of the tmpfs file meaning that
struct kstat will be filled up with the info from the tmpfs instance.

But then if I call statfs() and check the fstype I would get
RESTRICTEDMEM_MAGIC, no? This is... unorthodox?

I'm honestly puzzled and this sounds really strange. There must be a
better way to implement all of this.

Shouldn't you try and make this a part of tmpfs proper? Make a really
separate filesystem and add a memfs library that both tmpfs and
restrictedmemfs can use? Add a mount option to tmpfs that makes it a
restricted tmpfs?

  parent reply	other threads:[~2023-04-04 13:53 UTC|newest]

Thread overview: 399+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-31 23:50 [RFC PATCH v3 0/2] Providing mount in memfd_restricted() syscall Ackerley Tng
2023-03-31 23:50 ` [RFC PATCH v3 1/2] mm: restrictedmem: Allow userspace to specify mount for memfd_restricted Ackerley Tng
2023-04-03  8:21   ` David Hildenbrand
2023-04-05 22:29     ` Ackerley Tng
2023-04-04  8:25   ` Kirill A. Shutemov
2023-04-05 22:32     ` Ackerley Tng
2023-04-04 13:53   ` Christian Brauner [this message]
2023-04-04 14:58     ` Christian Brauner
2023-04-05 21:58       ` Ackerley Tng
2023-04-12  9:59         ` Christian Brauner
2023-04-13 22:53           ` Ackerley Tng
2023-04-13 23:07             ` Sean Christopherson
2023-03-31 23:50 ` [RFC PATCH v3 2/2] selftests: restrictedmem: Check hugepage-ness of shmem file backing restrictedmem fd Ackerley Tng
2023-04-03  8:24   ` David Hildenbrand
2023-04-11  1:35     ` Ackerley Tng
  -- strict thread matches above, loose matches on Subject: below --
2022-12-02  6:13 [PATCH v10 0/9] KVM: mm: fd-based approach for supporting KVM Chao Peng
2022-12-02  6:13 ` [PATCH v10 1/9] mm: Introduce memfd_restricted system call to create restricted user memory Chao Peng
2022-12-06 14:57   ` Fuad Tabba
2022-12-07 13:50     ` Chao Peng
2022-12-13 23:49   ` Huang, Kai
2022-12-19  7:53     ` Chao Peng
2022-12-19  8:48       ` Huang, Kai
2022-12-20  7:22         ` Chao Peng
2022-12-20  8:33           ` Huang, Kai
2022-12-21 13:39             ` Chao Peng
2022-12-22  0:37               ` Huang, Kai
2022-12-23  8:20                 ` Chao Peng
2023-01-23 14:03                 ` Vlastimil Babka
2023-01-23 15:18                   ` Kirill A. Shutemov
2023-02-13 14:23                     ` Vlastimil Babka
2023-01-23 23:01                   ` Huang, Kai
2023-01-23 23:38                     ` Sean Christopherson
2023-01-24  7:51                       ` Vlastimil Babka
2022-12-22 18:15               ` Sean Christopherson
2022-12-23  0:50                 ` Huang, Kai
2022-12-23  0:50                   ` Huang, Kai
2022-12-23  8:24                 ` Chao Peng
2023-01-23 15:43                 ` Kirill A. Shutemov
2023-02-13 11:43                   ` Vlastimil Babka
2023-02-13 13:10                   ` Michael Roth
2023-01-13 21:54   ` Sean Christopherson
2023-01-17 12:41     ` Chao Peng
2023-01-17 16:34       ` Sean Christopherson
2023-01-18  8:16         ` Chao Peng
2023-01-18 10:17           ` Isaku Yamahata
2023-02-22  2:07     ` Alexey Kardashevskiy
2023-02-24  5:42       ` Chao Peng
2023-01-30  5:26   ` Ackerley Tng
2023-01-30  6:04     ` Wang, Wei W
2023-02-16  9:51   ` Nikunj A. Dadhania
2023-03-20 19:08     ` Michael Roth
2023-04-13 15:25   ` [PATCH v7 00/14] KVM: mm: fd-based approach for supporting KVM guest private memory Christian Brauner
2023-04-13 22:28     ` Sean Christopherson
2023-04-14 22:38       ` Ackerley Tng
2023-04-14 23:26         ` Sean Christopherson
2023-04-15  0:06           ` Sean Christopherson
2023-04-19  8:29       ` Christian Brauner
2023-04-20  0:49         ` Sean Christopherson
2023-04-20  8:35           ` Christian Brauner
2023-04-13 17:22   ` [PATCH v10 1/9] mm: Introduce memfd_restricted system call to create restricted user memory Ackerley Tng
2022-12-02  6:13 ` [PATCH v10 2/9] KVM: Introduce per-page memory attributes Chao Peng
2022-12-06 13:34   ` Fabiano Rosas
2022-12-07 14:31     ` Chao Peng
2022-12-06 15:07   ` Fuad Tabba
2022-12-07 14:51     ` Chao Peng
2022-12-16 15:09   ` Borislav Petkov
2022-12-19  8:15     ` Chao Peng
2022-12-19 10:17       ` Borislav Petkov
2022-12-20  7:24         ` Chao Peng
2022-12-28  8:28   ` Chenyi Qiang
2023-01-03  1:39     ` Chao Peng
2023-01-03  3:32       ` Wang, Wei W
2023-01-03 23:06         ` Sean Christopherson
2023-01-05  4:39           ` Chao Peng
2023-01-13 22:02   ` Sean Christopherson
2023-01-17  3:21   ` Binbin Wu
2023-01-17 13:30     ` Chao Peng
2023-01-17 17:25       ` Sean Christopherson
2023-02-09  7:25   ` Isaku Yamahata
2023-02-10  0:35     ` Sean Christopherson
2023-02-13 23:53       ` Isaku Yamahata
2023-02-14 18:07         ` Sean Christopherson
2023-05-19 17:32   ` Nicolas Saenz Julienne
2023-05-19 18:23     ` Sean Christopherson
2023-05-19 19:49       ` Nicolas Saenz Julienne
2023-05-19 19:57         ` Sean Christopherson
2023-05-23 18:59       ` Nicolas Saenz Julienne
2022-12-02  6:13 ` [PATCH v10 3/9] KVM: Extend the memslot to support fd-based private memory Chao Peng
2022-12-05  9:03   ` Fuad Tabba
2022-12-06 11:53     ` Chao Peng
2022-12-06 12:39       ` Fuad Tabba
2022-12-07 15:10         ` Chao Peng
2022-12-08  8:37   ` Xiaoyao Li
2022-12-08 11:30     ` Chao Peng
2022-12-13 12:04       ` Xiaoyao Li
2022-12-19  7:50         ` Chao Peng
2022-12-19 14:36   ` Borislav Petkov
2022-12-20  7:43     ` Chao Peng
2022-12-20  9:55       ` Borislav Petkov
2022-12-21 13:42         ` Chao Peng
2023-01-05 11:23   ` Jarkko Sakkinen
2023-01-06  9:40     ` Chao Peng
2023-01-09 19:32       ` Sean Christopherson
2023-01-10  9:14         ` Chao Peng
2023-01-10 22:51           ` Vishal Annapurve
2023-01-13 22:37           ` Sean Christopherson
2023-01-17 12:42             ` Chao Peng
2023-01-20 23:42           ` Jarkko Sakkinen
2023-01-20 23:28         ` Jarkko Sakkinen
2022-12-02  6:13 ` [PATCH v10 4/9] KVM: Add KVM_EXIT_MEMORY_FAULT exit Chao Peng
2022-12-06 15:47   ` Fuad Tabba
2022-12-07 15:11     ` Chao Peng
2023-01-13 23:13   ` Sean Christopherson
2022-12-02  6:13 ` [PATCH v10 5/9] KVM: Use gfn instead of hva for mmu_notifier_retry Chao Peng
2022-12-05  9:23   ` Fuad Tabba
2022-12-06 11:56     ` Chao Peng
2022-12-06 15:48       ` Fuad Tabba
2022-12-09  6:24         ` Chao Peng
2022-12-07  6:34       ` Isaku Yamahata
2022-12-07 15:14         ` Chao Peng
2022-12-02  6:13 ` [PATCH v10 6/9] KVM: Unmap existing mappings when change the memory attributes Chao Peng
2022-12-07  8:13   ` Yuan Yao
2022-12-08 11:20     ` Chao Peng
2022-12-09  5:43       ` Yuan Yao
2022-12-07 17:16   ` Fuad Tabba
2022-12-08 11:13     ` Chao Peng
2022-12-09  8:57       ` Fuad Tabba
2022-12-12  7:22         ` Chao Peng
2022-12-13 23:51   ` Huang, Kai
2022-12-19  7:54     ` Chao Peng
2023-01-13 22:50   ` Sean Christopherson
2022-12-02  6:13 ` [PATCH v10 7/9] KVM: Update lpage info when private/shared memory are mixed Chao Peng
2022-12-05 22:49   ` Isaku Yamahata
2022-12-06 12:02     ` Chao Peng
2022-12-07  6:42       ` Isaku Yamahata
2022-12-08 11:17         ` Chao Peng
2023-01-13 23:12   ` Sean Christopherson
2023-01-13 23:16   ` Sean Christopherson
2023-01-28 13:54     ` Chao Peng
2022-12-02  6:13 ` [PATCH v10 8/9] KVM: Handle page fault for private memory Chao Peng
2022-12-08  2:29   ` Yuan Yao
2022-12-08 11:23     ` Chao Peng
2022-12-09  5:45       ` Yuan Yao
2022-12-09  9:01   ` Fuad Tabba
2022-12-12  7:23     ` Chao Peng
2023-01-13 23:29   ` Sean Christopherson
2022-12-02  6:13 ` [PATCH v10 9/9] KVM: Enable and expose KVM_MEM_PRIVATE Chao Peng
2022-12-09  9:11   ` Fuad Tabba
2023-01-05 20:38   ` Vishal Annapurve
2023-01-06  4:13     ` Chao Peng
2023-01-14  0:01   ` Sean Christopherson
2023-01-17 13:12     ` Chao Peng
2023-01-17 19:35       ` Sean Christopherson
2023-01-18  8:23         ` Chao Peng
2023-01-28 14:00     ` Chao Peng
2023-03-08  0:13       ` Ackerley Tng
2023-03-08  7:40         ` Chao Peng
2023-03-23  0:41           ` Isaku Yamahata
2023-03-24  2:10             ` Chao Peng
2023-03-24  2:29               ` Xiaoyao Li
2023-03-28 10:41                 ` Chao Peng
2023-04-14 21:08                   ` Sean Christopherson
2023-04-18 23:38                     ` Ackerley Tng
2023-04-25 23:01                       ` Sean Christopherson
2023-03-07 19:14   ` Ackerley Tng
2023-03-07 20:27     ` Sean Christopherson
2023-01-14  0:37 ` [PATCH v10 0/9] KVM: mm: fd-based approach for supporting KVM Sean Christopherson
2023-01-16 13:48   ` Kirill A. Shutemov
2023-01-17 13:19   ` Chao Peng
2023-01-17 14:32   ` Fuad Tabba
2023-01-19 11:13   ` Isaku Yamahata
2023-01-19 15:25     ` Sean Christopherson
2023-01-19 22:37       ` Isaku Yamahata
2023-01-24  1:27         ` Sean Christopherson
2023-02-08 12:24           ` Isaku Yamahata
2023-02-13 13:01           ` Michael Roth
2023-02-21 12:11             ` Chao Peng
2023-03-23  1:27               ` Michael Roth
2023-03-24  2:13                 ` Chao Peng
2023-04-12 22:01                 ` Sean Christopherson
2023-04-17 14:37           ` Chao Peng
2023-04-17 15:01             ` Sean Christopherson
2023-01-24 16:08   ` Liam Merwick
2023-01-25  0:20     ` Sean Christopherson
2023-01-25 12:53       ` Kirill A. Shutemov
2023-01-25 16:01         ` Liam Merwick
2023-04-13  1:07         ` Sean Christopherson
2023-04-13 16:04           ` Kirill A. Shutemov
2023-02-16  5:13 ` Mike Rapoport
2023-02-16  9:41   ` David Hildenbrand
2023-02-22 21:53     ` Sean Christopherson
2023-04-17 15:40 ` Rename restrictedmem => guardedmem? (was: Re: [PATCH v10 0/9] KVM: mm: fd-based approach for supporting KVM) Sean Christopherson
2023-04-17 15:48   ` David Hildenbrand
2023-04-17 16:40     ` Sean Christopherson
2023-04-17 17:09       ` David Hildenbrand
2023-04-17 19:16         ` Sean Christopherson
2023-04-18  8:53           ` Fuad Tabba
2023-04-18  9:10           ` David Hildenbrand
2023-04-19  0:47             ` Sean Christopherson
2023-04-19  7:21               ` David Hildenbrand
2023-04-19 15:17                 ` Sean Christopherson
2023-04-19 15:27                   ` David Hildenbrand
2023-04-22  1:33                 ` Sean Christopherson
2023-05-05 19:39                   ` Ackerley Tng
2023-05-06  0:55                     ` Sean Christopherson
2023-05-06  1:17                       ` Vishal Annapurve
2023-05-15 23:46                       ` Sean Christopherson
2023-07-13 22:46                       ` Ackerley Tng
2023-07-14 19:29                         ` Sean Christopherson
2023-07-14 23:09                           ` Vishal Annapurve
2023-07-15  0:30                             ` Sean Christopherson
2023-05-09 12:44                     ` Chao Peng
2023-05-10 17:26                   ` Vishal Annapurve
2023-05-10 20:23                     ` Vishal Annapurve
2023-05-10 21:39                     ` Sean Christopherson
2023-05-10 23:03                       ` Vishal Annapurve
2023-05-11 20:22                         ` Sean Christopherson
2023-05-19  1:07                           ` Vishal Annapurve
2023-05-12  0:21                   ` Michael Roth
2023-05-12 18:01                     ` Sean Christopherson
2023-05-22 13:50                       ` Michael Roth
2023-05-22 17:09                         ` Sean Christopherson
2023-05-22 23:58                           ` Michael Roth
2023-05-23  0:21                             ` Sean Christopherson
2023-06-06 19:14                   ` Ackerley Tng
2023-06-06 23:25                     ` Sean Christopherson
2023-06-08 17:13                       ` Ackerley Tng
2023-04-17 17:11       ` Ackerley Tng
2023-04-17 18:17         ` Sean Christopherson
2023-04-18 17:01       ` Ackerley Tng
2023-04-23 13:28     ` Jarkko Sakkinen
2023-05-05 20:00       ` David Hildenbrand
2023-05-06  7:44         ` Vlastimil Babka
2023-05-06  9:16           ` David Hildenbrand
2023-04-23 13:14   ` Jarkko Sakkinen
2022-07-06  8:20 [PATCH v7 00/14] KVM: mm: fd-based approach for supporting KVM guest private memory Chao Peng
2022-07-06  8:20 ` [PATCH v7 01/14] mm: Add F_SEAL_AUTO_ALLOCATE seal to memfd Chao Peng
2022-07-21  9:44   ` David Hildenbrand
2022-07-21  9:50     ` David Hildenbrand
2022-07-21 15:05       ` Sean Christopherson
2022-07-25 13:46         ` Chao Peng
2022-07-21 10:27     ` Gupta, Pankaj
2022-07-25 13:54       ` Chao Peng
2022-07-25 14:49         ` Gupta, Pankaj
2022-07-25 13:42     ` Chao Peng
2022-08-05 17:55     ` Paolo Bonzini
2022-08-05 18:06       ` David Hildenbrand
2022-08-10  9:40         ` Chao Peng
2022-08-10  9:38       ` Chao Peng
2022-08-17 23:41       ` Kirill A. Shutemov
2022-08-18  9:09         ` Paolo Bonzini
2022-08-23  7:36         ` David Hildenbrand
2022-08-24 10:20           ` Chao Peng
2022-08-26 15:19   ` Fuad Tabba
2022-08-29 15:18     ` Chao Peng
2022-07-06  8:20 ` [PATCH v7 02/14] selftests/memfd: Add tests for F_SEAL_AUTO_ALLOCATE Chao Peng
2022-08-05 13:11   ` David Hildenbrand
2022-07-06  8:20 ` [PATCH v7 03/14] mm: Introduce memfile_notifier Chao Peng
2022-08-05 13:22   ` David Hildenbrand
2022-08-10  9:22     ` Chao Peng
2022-08-10 10:05       ` David Hildenbrand
2022-08-10 14:38         ` Sean Christopherson
2022-08-11 12:27           ` Quentin Perret
2022-08-11 13:39             ` Chao Peng
2022-07-06  8:20 ` [PATCH v7 04/14] mm/shmem: Support memfile_notifier Chao Peng
2022-07-12 18:02   ` Gupta, Pankaj
2022-07-13  7:44     ` Chao Peng
2022-07-13 10:01       ` Gupta, Pankaj
2022-07-13 23:49         ` Chao Peng
2022-07-14  4:15           ` Gupta, Pankaj
2022-08-05 13:26   ` David Hildenbrand
2022-08-10  9:25     ` Chao Peng
2022-07-06  8:20 ` [PATCH v7 05/14] mm/memfd: Introduce MFD_INACCESSIBLE flag Chao Peng
2022-08-05 13:28   ` David Hildenbrand
2022-08-10  9:37     ` Chao Peng
2022-08-10  9:55       ` David Hildenbrand
2022-08-11 13:17         ` Chao Peng
2022-09-07 16:18     ` Kirill A. Shutemov
2022-07-06  8:20 ` [PATCH v7 06/14] KVM: Rename KVM_PRIVATE_MEM_SLOTS to KVM_INTERNAL_MEM_SLOTS Chao Peng
2022-07-06  8:20 ` [PATCH v7 07/14] KVM: Use gfn instead of hva for mmu_notifier_retry Chao Peng
2022-07-15 11:36   ` Gupta, Pankaj
2022-07-18 13:29     ` Chao Peng
2022-07-18 15:26       ` Sean Christopherson
2022-07-19 14:02         ` Chao Peng
2022-08-04  7:10   ` Isaku Yamahata
2022-08-10  8:19     ` Chao Peng
2022-07-06  8:20 ` [PATCH v7 08/14] KVM: Rename mmu_notifier_* Chao Peng
2022-07-29 19:02   ` Sean Christopherson
2022-08-03 10:13     ` Chao Peng
2022-08-05 19:54     ` Paolo Bonzini
2022-08-10  8:09       ` Chao Peng
2023-05-23  7:19   ` Kautuk Consul
2023-05-23 14:19     ` Sean Christopherson
2023-05-24  6:12       ` Kautuk Consul
2023-05-24 20:16         ` Sean Christopherson
2023-05-24 20:33           ` Peter Zijlstra
2023-05-24 21:39             ` Sean Christopherson
2023-05-25  8:54               ` Peter Zijlstra
2023-05-25  3:52             ` Kautuk Consul
2023-05-24 20:28         ` Peter Zijlstra
2022-07-06  8:20 ` [PATCH v7 09/14] KVM: Extend the memslot to support fd-based private memory Chao Peng
2022-07-29 19:51   ` Sean Christopherson
2022-08-03 10:08     ` Chao Peng
2022-08-03 14:42       ` Sean Christopherson
2022-07-06  8:20 ` [PATCH v7 10/14] KVM: Add KVM_EXIT_MEMORY_FAULT exit Chao Peng
2022-07-06  8:20 ` [PATCH v7 11/14] KVM: Register/unregister the guest private memory regions Chao Peng
2022-07-19  8:00   ` Gupta, Pankaj
2022-07-19 14:08     ` Chao Peng
2022-07-19 14:23       ` Gupta, Pankaj
2022-07-20 15:07         ` Chao Peng
2022-07-20 15:31           ` Gupta, Pankaj
2022-07-20 16:21             ` Sean Christopherson
2022-07-20 17:41               ` Gupta, Pankaj
2022-07-21  7:34               ` Wei Wang
2022-07-21  9:29                 ` Chao Peng
2022-07-21 17:58                   ` Sean Christopherson
2022-07-25 13:04                     ` Chao Peng
2022-07-29 19:54                       ` Sean Christopherson
2022-08-02  0:49                         ` Sean Christopherson
2022-08-02 16:38                           ` Sean Christopherson
2022-08-03  9:48                             ` Chao Peng
2022-08-03 15:51                               ` Sean Christopherson
2022-08-04  7:58                                 ` Chao Peng
2022-07-20 16:44   ` Sean Christopherson
2022-07-21  9:37     ` Chao Peng
2022-08-19 19:37   ` Vishal Annapurve
2022-08-24 10:37     ` Chao Peng
2022-08-26 15:19   ` Fuad Tabba
2022-08-29 15:21     ` Chao Peng
2022-07-06  8:20 ` [PATCH v7 12/14] KVM: Handle page fault for private memory Chao Peng
2022-07-29 20:58   ` Sean Christopherson
2022-08-03  9:52     ` Chao Peng
2022-07-06  8:20 ` [PATCH v7 13/14] KVM: Enable and expose KVM_MEM_PRIVATE Chao Peng
2022-07-19  9:55   ` Gupta, Pankaj
2022-07-19 14:12     ` Chao Peng
2022-07-06  8:20 ` [PATCH v7 14/14] memfd_create.2: Describe MFD_INACCESSIBLE flag Chao Peng
2022-08-01 14:40   ` Dave Hansen
2022-08-03  9:53     ` Chao Peng
2022-07-13  3:58 ` [PATCH v7 00/14] KVM: mm: fd-based approach for supporting KVM guest private memory Gupta, Pankaj
2022-07-13  7:57   ` Chao Peng
2022-07-13 10:35     ` Gupta, Pankaj
2022-07-13 23:59       ` Chao Peng
2022-07-14  4:39         ` Gupta, Pankaj
2022-07-14  5:06           ` Gupta, Pankaj
2022-07-14  4:29       ` Andy Lutomirski
2022-07-14  5:13         ` Gupta, Pankaj
2022-08-11 10:02 ` Nikunj A. Dadhania
2022-08-11 11:30   ` Gupta, Pankaj
2022-08-11 13:32     ` Chao Peng
2022-08-11 17:28       ` Nikunj A. Dadhania
2022-08-12  3:22       ` Nikunj A. Dadhania
2022-08-11 17:18     ` Nikunj A. Dadhania
2022-08-11 23:02       ` Gupta, Pankaj
2022-08-12  6:02         ` Gupta, Pankaj
2022-08-12  7:18           ` Gupta, Pankaj
2022-08-12  8:48             ` Nikunj A. Dadhania
2022-08-12  9:33               ` Gupta, Pankaj
2022-08-15 13:04               ` Chao Peng
2022-08-16  4:28                 ` Nikunj A. Dadhania
2022-08-16 11:33                 ` Gupta, Pankaj
2022-08-16 12:24                   ` Kirill A . Shutemov
2022-08-16 13:03                     ` Gupta, Pankaj
2022-08-16 15:38                       ` Sean Christopherson
2022-08-17 15:27                         ` Michael Roth
2022-08-23  1:25                           ` Isaku Yamahata
2022-08-23 17:41                         ` Gupta, Pankaj
2022-08-18  5:40 ` Hugh Dickins
2022-08-18 13:24   ` Kirill A . Shutemov
2022-08-19  0:20     ` Sean Christopherson
2022-08-19  3:38       ` Hugh Dickins
2022-08-19 22:53         ` Sean Christopherson
2022-08-23  7:55         ` David Hildenbrand
2022-08-23 16:05           ` Sean Christopherson
2022-08-24  9:41             ` Chao Peng
2022-09-09  4:55               ` Andy Lutomirski
2022-08-19  3:00     ` Hugh Dickins
2022-08-20  0:27       ` Kirill A. Shutemov
2022-08-21  5:15         ` Hugh Dickins
2022-08-31 14:24           ` Kirill A . Shutemov
2022-09-02 10:27             ` Chao Peng
2022-09-02 12:30               ` Kirill A . Shutemov
2022-09-08  1:10             ` Kirill A. Shutemov
2022-09-13  9:44               ` Sean Christopherson
2022-09-13 13:28                 ` Kirill A. Shutemov
2022-09-13 14:53                   ` Sean Christopherson
2022-09-13 16:00                     ` Kirill A. Shutemov
2022-09-13 16:12                       ` Sean Christopherson
2022-09-09  4:48         ` Andy Lutomirski
2022-09-09 14:32           ` Kirill A . Shutemov
2022-09-09 19:11             ` Andy Lutomirski
2022-09-09 23:02               ` Kirill A . Shutemov
2022-08-21 10:27       ` Matthew Wilcox
2022-08-24 10:27         ` Chao Peng
2022-09-09  4:44     ` Andy Lutomirski
2022-08-26 15:19 ` Fuad Tabba
2022-08-29 15:17   ` Chao Peng
2022-08-31  9:12     ` Fuad Tabba
2022-09-02 10:19       ` Chao Peng
2022-09-09 15:35 ` Michael Roth

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=20230404-amnesty-untying-01de932d4945@brauner \
    --to=brauner@kernel.org \
    --cc=aarcange@redhat.com \
    --cc=ackerleytng@google.com \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=bfields@fieldses.org \
    --cc=bp@alien8.de \
    --cc=chao.p.peng@linux.intel.com \
    --cc=corbet@lwn.net \
    --cc=dave.hansen@intel.com \
    --cc=david@redhat.com \
    --cc=ddutile@redhat.com \
    --cc=dhildenb@redhat.com \
    --cc=hpa@zytor.com \
    --cc=hughd@google.com \
    --cc=jlayton@kernel.org \
    --cc=jmattson@google.com \
    --cc=joro@8bytes.org \
    --cc=jun.nakajima@intel.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linmiaohe@huawei.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=luto@kernel.org \
    --cc=mail@maciej.szmigiero.name \
    --cc=mhocko@suse.com \
    --cc=michael.roth@amd.com \
    --cc=mingo@redhat.com \
    --cc=naoya.horiguchi@nec.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qperret@google.com \
    --cc=rppt@kernel.org \
    --cc=seanjc@google.com \
    --cc=shuah@kernel.org \
    --cc=steven.price@arm.com \
    --cc=tabba@google.com \
    --cc=tglx@linutronix.de \
    --cc=vannapurve@google.com \
    --cc=vbabka@suse.cz \
    --cc=vkuznets@redhat.com \
    --cc=wanpengli@tencent.com \
    --cc=wei.w.wang@intel.com \
    --cc=x86@kernel.org \
    --cc=yu.c.zhang@linux.intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.