On 3/20/20 9:48 AM, Jason Gunthorpe wrote:
From: Jason Gunthorpe jgg@mellanox.com
I've had these in my work queue for a bit, nothing profound here, just some small edits for clarity.
Ralph's hmm tester will need a small diff to work after this - which illustrates how setting default_flags == 0 is the same as what was called SNAPSHOT:
diff --git a/lib/test_hmm.c b/lib/test_hmm.c index 6ca953926dc13f..5f31f5b3e64cb9 100644 --- a/lib/test_hmm.c +++ b/lib/test_hmm.c @@ -300,7 +300,7 @@ static int dmirror_range_fault(struct dmirror *dmirror,
range->notifier_seq = mmu_interval_read_begin(range->notifier); down_read(&mm->mmap_sem);
count = hmm_range_fault(range, 0);
up_read(&mm->mmap_sem); if (count <= 0) { if (count == 0 || count == -EBUSY)count = hmm_range_fault(range);
@@ -337,8 +337,7 @@ static int dmirror_fault(struct dmirror *dmirror, unsigned long start, .flags = dmirror_hmm_flags, .values = dmirror_hmm_values, .pfn_shift = DPT_SHIFT,
.pfn_flags_mask = ~(dmirror_hmm_flags[HMM_PFN_VALID] |
dmirror_hmm_flags[HMM_PFN_WRITE]),
.default_flags = dmirror_hmm_flags[HMM_PFN_VALID] | (write ? dmirror_hmm_flags[HMM_PFN_WRITE] : 0), .dev_private_owner = dmirror->mdevice,.pfn_flags_mask = 0,
@@ -872,7 +871,7 @@ static int dmirror_range_snapshot(struct dmirror *dmirror, range->notifier_seq = mmu_interval_read_begin(range->notifier);
down_read(&mm->mmap_sem);
count = hmm_range_fault(range, HMM_FAULT_SNAPSHOT);
up_read(&mm->mmap_sem); if (count <= 0) { if (count == 0 || count == -EBUSY)count = hmm_range_fault(range);
@@ -916,7 +915,7 @@ static int dmirror_snapshot(struct dmirror *dmirror, .flags = dmirror_hmm_flags, .values = dmirror_hmm_values, .pfn_shift = DPT_SHIFT,
.pfn_flags_mask = ~0ULL,
.dev_private_owner = dmirror->mdevice, }; int ret = 0;.pfn_flags_mask = 0,
Jason Gunthorpe (6): mm/hmm: remove pgmap checking for devmap pages mm/hmm: return the fault type from hmm_pte_need_fault() mm/hmm: remove unused code and tidy comments mm/hmm: remove HMM_FAULT_SNAPSHOT mm/hmm: remove the CONFIG_TRANSPARENT_HUGEPAGE #ifdef mm/hmm: use device_private_entry_to_pfn()
Documentation/vm/hmm.rst | 12 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- drivers/gpu/drm/nouveau/nouveau_svm.c | 2 +- include/linux/hmm.h | 55 +----- mm/hmm.c | 238 +++++++++--------------- 5 files changed, 98 insertions(+), 211 deletions(-)
The series looks good to me so, Reviewed-by: Ralph Campbell rcampbell@nvidia.com