Re: [PATCH v3 1/6] mm: userfaultfd: generic continue for non hugetlbfs

2025-06-20 Thread Nikita Kalyazin
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

Re: [PATCH v3 1/6] mm: userfaultfd: generic continue for non hugetlbfs

2025-06-20 Thread Nikita Kalyazin
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

Re: [PATCH v3 4/6] KVM: guest_memfd: add support for userfaultfd minor

2025-06-11 Thread Nikita Kalyazin
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

Re: [PATCH v3 1/6] mm: userfaultfd: generic continue for non hugetlbfs

2025-06-11 Thread Nikita Kalyazin
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

Re: [PATCH v3 0/6] KVM: guest_memfd: support for uffd minor

2025-04-07 Thread Nikita Kalyazin
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

Re: [PATCH v3 0/6] KVM: guest_memfd: support for uffd minor

2025-04-07 Thread Nikita Kalyazin
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

[PATCH v2 3/5] mm: userfaultfd: allow to register continue for guest_memfd

2025-04-05 Thread Nikita Kalyazin
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

[PATCH v2 4/5] KVM: guest_memfd: add support for userfaultfd minor

2025-04-05 Thread Nikita Kalyazin
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

[PATCH v2 2/5] KVM: guest_memfd: add kvm_gmem_vma_is_gmem

2025-04-04 Thread Nikita Kalyazin
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

[PATCH v3 4/6] KVM: guest_memfd: add support for userfaultfd minor

2025-04-04 Thread Nikita Kalyazin
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

Re: [PATCH v3 0/6] KVM: guest_memfd: support for uffd minor

2025-04-04 Thread Nikita Kalyazin
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

[PATCH v3 2/6] mm: provide can_userfault vma operation

2025-04-04 Thread Nikita Kalyazin
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 ---

[PATCH v3 5/6] mm: userfaultfd: add UFFD_FEATURE_MINOR_GUEST_MEMFD

2025-04-04 Thread Nikita Kalyazin
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

[PATCH v3 6/6] KVM: selftests: test userfaultfd minor for guest_memfd

2025-04-04 Thread Nikita Kalyazin
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

[PATCH v3 3/6] mm: userfaultfd: use can_userfault vma operation

2025-04-04 Thread Nikita Kalyazin
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

[PATCH v3 1/6] mm: userfaultfd: generic continue for non hugetlbfs

2025-04-04 Thread Nikita Kalyazin
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

[PATCH v3 0/6] KVM: guest_memfd: support for uffd minor

2025-04-04 Thread Nikita Kalyazin
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

Re: [PATCH v2 3/5] mm: userfaultfd: allow to register continue for guest_memfd

2025-04-03 Thread Nikita Kalyazin
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

Re: [PATCH v2 1/5] mm: userfaultfd: generic continue for non hugetlbfs

2025-04-03 Thread Nikita Kalyazin
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

Re: [PATCH v2 5/5] KVM: selftests: test userfaultfd minor for guest_memfd

2025-04-03 Thread Nikita Kalyazin
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

[PATCH v2 5/5] KVM: selftests: test userfaultfd minor for guest_memfd

2025-04-02 Thread Nikita Kalyazin
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

[PATCH v2 1/5] mm: userfaultfd: generic continue for non hugetlbfs

2025-04-02 Thread Nikita Kalyazin
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 +++

[PATCH v2 0/5] KVM: guest_memfd: support for uffd minor

2025-04-02 Thread Nikita Kalyazin
.@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

Re: [RFC PATCH 0/5] KVM: guest_memfd: support for uffd missing

2025-03-14 Thread Nikita Kalyazin
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

Re: [RFC PATCH 0/5] KVM: guest_memfd: support for uffd missing

2025-03-13 Thread Nikita Kalyazin
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

Re: [RFC PATCH 0/5] KVM: guest_memfd: support for uffd missing

2025-03-13 Thread Nikita Kalyazin
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

Re: [RFC PATCH 0/5] KVM: guest_memfd: support for uffd missing

2025-03-12 Thread Nikita Kalyazin
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

Re: [RFC PATCH 0/5] KVM: guest_memfd: support for uffd missing

2025-03-11 Thread Nikita Kalyazin
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"

Re: [RFC PATCH 0/5] KVM: guest_memfd: support for uffd missing

2025-03-11 Thread Nikita Kalyazin
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

[RFC PATCH 5/5] KVM: selftests: add uffd missing test for guest_memfd

2025-03-03 Thread Nikita Kalyazin
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

[RFC PATCH 4/5] mm: userfaultfd: support continue for guest_memfd

2025-03-03 Thread Nikita Kalyazin
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

[RFC PATCH 3/5] mm: userfaultfd: allow to register userfaultfd for guest_memfd

2025-03-03 Thread Nikita Kalyazin
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

[RFC PATCH 2/5] KVM: guest_memfd: add support for uffd missing

2025-03-03 Thread Nikita Kalyazin
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

[RFC PATCH 1/5] KVM: guest_memfd: add kvm_gmem_vma_is_gmem

2025-03-03 Thread Nikita Kalyazin
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

[RFC PATCH 0/5] KVM: guest_memfd: support for uffd missing

2025-03-03 Thread Nikita Kalyazin
@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

[v3 PATCH 2/2] KVM: selftests: update guest_memfd write tests

2025-03-03 Thread Nikita Kalyazin
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

[v3 PATCH 1/2] KVM: guest_memfd: add generic population via write

2025-03-03 Thread Nikita Kalyazin
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

[v3 PATCH 0/2] KVM: guest_memfd: use write for population

2025-03-03 Thread Nikita Kalyazin
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_

[RFC PATCH v2 2/2] KVM: selftests: update guest_memfd write tests

2024-11-29 Thread Nikita Kalyazin
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

[RFC PATCH v2 1/2] KVM: guest_memfd: add generic population via write

2024-11-29 Thread Nikita Kalyazin
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

[RFC PATCH v2 0/2] KVM: guest_memfd: use write for population

2024-11-29 Thread Nikita Kalyazin
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