Displaying 3 results from an estimated 3 matches for "2884a3d11a1f".
2020 Mar 17
2
[PATCH 3/4] mm: simplify device private page handling in hmm_range_fault
On Tue, Mar 17, 2020 at 09:15:36AM -0300, Jason Gunthorpe wrote:
> > Getting rid of HMM_PFN_DEVICE_PRIVATE seems reasonable to me since a driver can
> > look at the struct page but what if a driver needs to fault in a page from
> > another device's private memory? Should it call handle_mm_fault()?
>
> Isn't that what this series basically does?
>
> The
2020 Mar 17
0
[PATCH 3/4] mm: simplify device private page handling in hmm_range_fault
...>
> No, with this series (and all actual callers before this series)
> we never fault in device private pages.
IFF we want to fault it in we'd need something like this. But I'd
really prefer to see test cases for that first.
diff --git a/mm/hmm.c b/mm/hmm.c
index b75b3750e03d..2884a3d11a1f 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -276,7 +276,7 @@ static int hmm_vma_handle_pte(struct mm_walk *walk, unsigned long addr,
if (!fault && !write_fault)
return 0;
- if (!non_swap_entry(entry))
+ if (!non_swap_entry(entry) || is_device_private_entry(entry))
goto fault;...
2020 Mar 17
3
[PATCH 3/4] mm: simplify device private page handling in hmm_range_fault
...rd failure, and
generates faults. AFAIK, GUP will fault in this case?
I need this for making ODP use this API. ODP is the one that is highly
likely to see other driver's device_private pages and must have them
always fault to CPU.
> diff --git a/mm/hmm.c b/mm/hmm.c
> index b75b3750e03d..2884a3d11a1f 100644
> +++ b/mm/hmm.c
> @@ -276,7 +276,7 @@ static int hmm_vma_handle_pte(struct mm_walk *walk, unsigned long addr,
> if (!fault && !write_fault)
> return 0;
>
> - if (!non_swap_entry(entry))
> + if (!non_swap_entry(entry) || is_device_private_entry(entry))...