On 20/06/2025 16:21, Peter Xu wrote:
Hi, Nikita,
On Fri, Jun 20, 2025 at 01:00:24PM +0100, Nikita Kalyazin wrote:
Thanks for explaining that. I played a bit with it myself and it appears to
be working for the MISSING mode for both shmem and guest_memfd. Attaching
[1]
my sketch below
On 11/06/2025 13:56, Peter Xu wrote:
On Wed, Jun 11, 2025 at 01:09:32PM +0100, Nikita Kalyazin wrote:
On 10/06/2025 23:22, Peter Xu wrote:
On Fri, Apr 04, 2025 at 03:43:47PM +, Nikita Kalyazin wrote:
Remove shmem-specific code from UFFDIO_CONTINUE implementation for
non-huge pages by
On 10/06/2025 23:25, Peter Xu wrote:
On Fri, Apr 04, 2025 at 03:43:50PM +, Nikita Kalyazin wrote:
Add support for sending a pagefault event if userfaultfd is registered.
Only page minor event is currently supported.
Signed-off-by: Nikita Kalyazin
---
virt/kvm/guest_memfd.c | 10
On 10/06/2025 23:22, Peter Xu wrote:
On Fri, Apr 04, 2025 at 03:43:47PM +, Nikita Kalyazin wrote:
Remove shmem-specific code from UFFDIO_CONTINUE implementation for
non-huge pages by calling vm_ops->fault(). A new VMF flag,
FAULT_FLAG_USERFAULT_CONTINUE, is introduced to avoid recurs
On 07/04/2025 14:40, Liam R. Howlett wrote:
* Nikita Kalyazin [250407 07:04]:
On 04/04/2025 18:12, Liam R. Howlett wrote:
+To authors of v7 series referenced in [1]
* Nikita Kalyazin [250404 11:44]:
This series is built on top of the Fuad's v7 "mapping guest_memfd backed
mem
On 04/04/2025 18:12, Liam R. Howlett wrote:
+To authors of v7 series referenced in [1]
* Nikita Kalyazin [250404 11:44]:
This series is built on top of the Fuad's v7 "mapping guest_memfd backed
memory at the host" [1].
I didn't see their addresses in the to/cc, s
Signed-off-by: Nikita Kalyazin
---
include/linux/userfaultfd_k.h | 13 -
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/include/linux/userfaultfd_k.h b/include/linux/userfaultfd_k.h
index 75342022d144..bc184edfbb85 100644
--- a/include/linux/userfaultfd_k.h
+++ b
Add support for sending a pagefault event if userfaultfd is registered.
Only page minor event is currently supported.
Signed-off-by: Nikita Kalyazin
---
virt/kvm/guest_memfd.c | 10 ++
1 file changed, 10 insertions(+)
diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
index
It will be used to distinguish the vma type in userfaultfd code.
Signed-off-by: Nikita Kalyazin
---
virt/kvm/guest_memfd.c | 5 +
virt/kvm/kvm_mm.h | 1 +
2 files changed, 6 insertions(+)
diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
index fbf89e643add..26b1734b9623
Add support for sending a pagefault event if userfaultfd is registered.
Only page minor event is currently supported.
Signed-off-by: Nikita Kalyazin
---
virt/kvm/guest_memfd.c | 10 ++
1 file changed, 10 insertions(+)
diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
index
On 04/04/2025 17:33, Lorenzo Stoakes wrote:
On Fri, Apr 04, 2025 at 03:43:46PM +, Nikita Kalyazin wrote:
This series is built on top of the Fuad's v7 "mapping guest_memfd backed
memory at the host" [1].
Hm if this is based on an unmerged series this seems quite specula
calls when checking for __VM_UFFD_FLAGS.
Signed-off-by: Nikita Kalyazin
---
include/linux/mm.h | 5 +
mm/hugetlb.c | 7 +++
mm/shmem.c | 8
3 files changed, 20 insertions(+)
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 8483e09aeb2c..488d721d8542 100644
---
Signed-off-by: Nikita Kalyazin
---
fs/userfaultfd.c | 3 ++-
include/uapi/linux/userfaultfd.h | 8 +++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
index 97c4d71115d8..32152bfa462a 100644
--- a/fs/userfaultfd.c
+++ b/fs
The test demonstrates that a minor userfaultfd event in guest_memfd can
be resolved via a memcpy followed by a UFFDIO_CONTINUE ioctl.
Signed-off-by: Nikita Kalyazin
---
.../testing/selftests/kvm/guest_memfd_test.c | 99 +++
1 file changed, 99 insertions(+)
diff --git a/tools
Signed-off-by: Nikita Kalyazin
---
include/linux/userfaultfd_k.h | 13 ++---
mm/userfaultfd.c | 10 +++---
2 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/include/linux/userfaultfd_k.h b/include/linux/userfaultfd_k.h
index 75342022d144..64551e8a55fb
Remove shmem-specific code from UFFDIO_CONTINUE implementation for
non-huge pages by calling vm_ops->fault(). A new VMF flag,
FAULT_FLAG_USERFAULT_CONTINUE, is introduced to avoid recursive call to
handle_userfault().
Suggested-by: James Houghton
Signed-off-by: Nikita Kalyazin
---
incl
TxOrAosPOk/edit?tab=t.0#heading=h.w1126rgli5e3
[4] https://lore.kernel.org/kvm/20250402160721.97596-1-kalya...@amazon.com/T/
Nikita Kalyazin (6):
mm: userfaultfd: generic continue for non hugetlbfs
mm: provide can_userfault vma operation
mm: userfaultfd: use can_userfault vma operation
KVM: guest
On 02/04/2025 22:25, James Houghton wrote:
On Wed, Apr 2, 2025 at 9:08 AM Nikita Kalyazin wrote:
Signed-off-by: Nikita Kalyazin
---
include/linux/userfaultfd_k.h | 13 -
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/include/linux/userfaultfd_k.h b/include
On 02/04/2025 20:04, James Houghton wrote:
On Wed, Apr 2, 2025 at 9:07 AM Nikita Kalyazin wrote:
Remove shmem-specific code from UFFDIO_CONTINUE implementation for
non-huge pages by calling vm_ops->fault(). A new VMF flag,
FAULT_FLAG_NO_USERFAULT_MINOR, is introduced to avoid recurs
On 02/04/2025 22:10, James Houghton wrote:
On Wed, Apr 2, 2025 at 9:08 AM Nikita Kalyazin wrote:
The test demonstrates that a minor userfaultfd event in guest_memfd can
be resolved via a memcpy followed by a UFFDIO_CONTINUE ioctl.
Signed-off-by: Nikita Kalyazin
---
.../testing
The test demonstrates that a minor userfaultfd event in guest_memfd can
be resolved via a memcpy followed by a UFFDIO_CONTINUE ioctl.
Signed-off-by: Nikita Kalyazin
---
.../testing/selftests/kvm/guest_memfd_test.c | 94 +++
1 file changed, 94 insertions(+)
diff --git a/tools
Remove shmem-specific code from UFFDIO_CONTINUE implementation for
non-huge pages by calling vm_ops->fault(). A new VMF flag,
FAULT_FLAG_NO_USERFAULT_MINOR, is introduced to avoid recursive call to
handle_userfault().
Signed-off-by: Nikita Kalyazin
---
include/linux/mm_types.h | 3 +++
.@amazon.com/T/
[5]
https://lore.kernel.org/kvm/20250318161823.4005529-1-ta...@google.com/T/#Z2e.:..:20250318161823.4005529-3-tabba::40google.com:1mm:swap.c
[6]
https://lore.kernel.org/kvm/20250303133011.44095-1-kalya...@amazon.com/T/#m8695dc24d2cc633a6a486a8990e3f7d50d4efb79
Nikita Kalyazin (5):
mm: userfau
On 13/03/2025 22:38, Peter Xu wrote:
On Thu, Mar 13, 2025 at 10:13:23PM +, Nikita Kalyazin wrote:
Yes, that's right, mmap() + memcpy() is functionally sufficient. write() is
an optimisation. Most of the pages in guest_memfd are only ever accessed by
the vCPU (not userspace) vi
On 13/03/2025 19:12, Peter Xu wrote:
On Thu, Mar 13, 2025 at 03:25:16PM +, Nikita Kalyazin wrote:
On 12/03/2025 19:32, Peter Xu wrote:
On Wed, Mar 12, 2025 at 05:07:25PM +, Nikita Kalyazin wrote:
However if MISSING is not registered, the kernel will auto-populate with a
clear
On 12/03/2025 19:32, Peter Xu wrote:
On Wed, Mar 12, 2025 at 05:07:25PM +, Nikita Kalyazin wrote:
However if MISSING is not registered, the kernel will auto-populate with a
clear page, ie there is no way to inject custom content from userspace. To
explain my use case a bit more, the
On 12/03/2025 15:45, Peter Xu wrote:
On Tue, Mar 11, 2025 at 04:56:47PM +, Nikita Kalyazin wrote:
On 10/03/2025 19:57, Peter Xu wrote:
On Mon, Mar 10, 2025 at 06:12:22PM +, Nikita Kalyazin wrote:
On 05/03/2025 20:29, Peter Xu wrote:
On Wed, Mar 05, 2025 at 11:35:27AM -0800
On 05/03/2025 20:29, Peter Xu wrote:
On Wed, Mar 05, 2025 at 11:35:27AM -0800, James Houghton wrote:
I think it might be useful to implement an fs-generic MINOR mode. The
fault handler is already easy enough to do generically (though it
would become more difficult to determine if the "MINOR"
On 10/03/2025 19:57, Peter Xu wrote:
On Mon, Mar 10, 2025 at 06:12:22PM +, Nikita Kalyazin wrote:
On 05/03/2025 20:29, Peter Xu wrote:
On Wed, Mar 05, 2025 at 11:35:27AM -0800, James Houghton wrote:
I think it might be useful to implement an fs-generic MINOR mode. The
fault handler
The test demonstrates how a page missing event can be resolved via write
syscall followed by UFFDIO_CONTINUE ioctl.
Signed-off-by: Nikita Kalyazin
---
.../testing/selftests/kvm/guest_memfd_test.c | 88 +++
1 file changed, 88 insertions(+)
diff --git a/tools/testing/selftests
When userspace receives a page missing event, it is supposed to populate
the missing page in guest_memfd pagecache via the write syscall and
unblock the faulting process via UFFDIO_CONTINUE.
Signed-off-by: Nikita Kalyazin
---
mm/userfaultfd.c | 23 ++-
1 file changed, 22
Signed-off-by: Nikita Kalyazin
---
include/linux/userfaultfd_k.h | 9 +
1 file changed, 9 insertions(+)
diff --git a/include/linux/userfaultfd_k.h b/include/linux/userfaultfd_k.h
index 75342022d144..440d38903359 100644
--- a/include/linux/userfaultfd_k.h
+++ b/include/linux
Add support for sending a pagefault event if userfaultfd is registered.
Only page missing event is currently supported.
Signed-off-by: Nikita Kalyazin
---
virt/kvm/guest_memfd.c | 12 +++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/virt/kvm/guest_memfd.c b/virt/kvm
It will be used to distinguish the vma type in userfaultfd code.
This likely needs to be done in the guestmem library.
Signed-off-by: Nikita Kalyazin
---
virt/kvm/guest_memfd.c | 5 +
virt/kvm/kvm_mm.h | 1 +
2 files changed, 6 insertions(+)
diff --git a/virt/kvm/guest_memfd.c b/virt
@amazon.co.uk/T/#ma130b29c130dbdc894aa08d8d56c16ec383f36dd
[5]
https://lore.kernel.org/kvm/20241122-guestmem-library-v5-2-450e92951...@quicinc.com/T/
Nikita Kalyazin (5):
KVM: guest_memfd: add kvm_gmem_vma_is_gmem
KVM: guest_memfd: add support for uffd missing
mm: userfaultfd: allow to register userfaultfd for g
This is to reflect that the write syscall is now implemented for
guest_memfd.
Signed-off-by: Nikita Kalyazin
---
.../testing/selftests/kvm/guest_memfd_test.c | 85 +--
1 file changed, 79 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/kvm/guest_memfd_test.c
are allowed
- if the memory is already allocated, the call will successfully
populate it
- if the memory is not allocated, the call will both allocate and
populate
- if the memory is already populated, the call will not repopulate it
Signed-off-by: Nikita Kalyazin
---
virt/kvm
quire setting up page tables.
Nikita
[1] https://lore.kernel.org/kvm/20250218172500.807733-4-ta...@google.com/T/
[2] https://lore.kernel.org/kvm/20241129123929.64790-1-kalya...@amazon.com/T/
Nikita Kalyazin (2):
KVM: guest_memfd: add generic population via write
KVM: selftests: update guest_
This is to reflect that the write syscall is now implemented for
guest_memfd.
Signed-off-by: Nikita Kalyazin
---
.../testing/selftests/kvm/guest_memfd_test.c | 85 +--
1 file changed, 79 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/kvm/guest_memfd_test.c
are allowed
- if the memory is already allocated, the call will successfully
populate it
- if the memory is not allocated, the call will both allocate and
populate
- if the memory is already populated, the call will not repopulate it
Signed-off-by: Nikita Kalyazin
---
virt/kvm
with the write. I did not do that in this series yet to
keep it clear what the write would do and get feedback on whether
write's behaviour is sensible.
Nikita
[1]: https://lore.kernel.org/kvm/20241024095429.54052-1-kalya...@amazon.com/T/
Nikita Kalyazin (2):
KVM: guest_memfd: add ge
41 matches
Mail list logo