linux/drivers/gpu/drm/i915/gem
Linus Torvalds b25d1dc947 Merge branch 'simplify-do_wp_page'
Merge emailed patches from Peter Xu:
 "This is a small series that I picked up from Linus's suggestion to
  simplify cow handling (and also make it more strict) by checking
  against page refcounts rather than mapcounts.

  This makes uffd-wp work again (verified by running upmapsort)"

Note: this is horrendously bad timing, and making this kind of
fundamental vm change after -rc3 is not at all how things should work.
The saving grace is that it really is a a nice simplification:

 8 files changed, 29 insertions(+), 120 deletions(-)

The reason for the bad timing is that it turns out that commit
17839856fd ("gup: document and work around 'COW can break either way'
issue" broke not just UFFD functionality (as Peter noticed), but Mikulas
Patocka also reports that it caused issues for strace when running in a
DAX environment with ext4 on a persistent memory setup.

And we can't just revert that commit without re-introducing the original
issue that is a potential security hole, so making COW stricter (and in
the process much simpler) is a step to then undoing the forced COW that
broke other uses.

Link: https://lore.kernel.org/lkml/alpine.LRH.2.02.2009031328040.6929@file01.intranet.prod.int.rdu2.redhat.com/

* emailed patches from Peter Xu <peterx@redhat.com>:
  mm: Add PGREUSE counter
  mm/gup: Remove enfornced COW mechanism
  mm/ksm: Remove reuse_ksm_page()
  mm: do_wp_page() simplification
2020-09-04 09:31:54 -07:00
..
selftests drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
i915_gem_busy.c drm/i915: Align engine->uabi_class/instance with i915_drm.h 2020-01-20 09:13:01 +00:00
i915_gem_clflush.c drm/i915: Replace the hardcoded I915_FENCE_TIMEOUT 2020-05-09 12:57:57 +01:00
i915_gem_clflush.h
i915_gem_client_blt.c drm/i915: Export ppgtt_bind_vma 2020-07-03 15:14:35 +01:00
i915_gem_client_blt.h
i915_gem_context_types.h drm/i915/gem: Split the context's obj:vma lut into its own mutex 2020-07-03 10:13:13 +01:00
i915_gem_context.c drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
i915_gem_context.h drm/i915/sseu: Move sseu_info under gt_info 2020-07-08 21:13:09 +01:00
i915_gem_dmabuf.c drm/i915/gem: Give each object class a friendly name 2020-05-29 23:38:29 +01:00
i915_gem_domain.c drm/i915/gem: Remove object_is_locked assertion from unpin_from_display_plane 2020-05-06 15:37:31 -07:00
i915_gem_execbuffer.c drm/i915: Move the engine mask to intel_gt_info 2020-07-08 21:07:11 +01:00
i915_gem_fence.c drm/i915: Replace the hardcoded I915_FENCE_TIMEOUT 2020-05-09 12:57:57 +01:00
i915_gem_internal.c drm/i915/gem: Give each object class a friendly name 2020-05-29 23:38:29 +01:00
i915_gem_ioctls.h
i915_gem_lmem.c drm/i915/gem: Give each object class a friendly name 2020-05-29 23:38:29 +01:00
i915_gem_lmem.h drm/i915/gem: Support discontiguous lmem object maps 2020-01-03 11:26:01 +00:00
i915_gem_mman.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
i915_gem_mman.h drm/i915/gem: Only revoke mmap handlers if active 2020-07-02 20:46:08 +01:00
i915_gem_object_blt.c drm/i915: Remove redundant i915_request_await_object in blit clears 2020-06-16 21:53:56 +01:00
i915_gem_object_blt.h drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
i915_gem_object_types.h drm/i915/gem: Move obj->lut_list under its own lock 2020-07-01 11:58:49 +01:00
i915_gem_object.c drm/i915/gem: Split the context's obj:vma lut into its own mutex 2020-07-03 10:13:13 +01:00
i915_gem_object.h drm/i915: Remove i915_gem_object_get_dirty_page() 2020-07-08 22:05:51 +01:00
i915_gem_pages.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
i915_gem_phys.c Merge drm/drm-next into drm-intel-next-queued 2020-06-25 18:05:03 +03:00
i915_gem_pm.c drm/i915/gem: Make WARN* drm specific where drm_priv ptr is available 2020-01-22 17:52:39 +02:00
i915_gem_pm.h
i915_gem_region.c drm/i915/gem: Single page objects are naturally contiguous 2020-01-02 21:21:17 +00:00
i915_gem_region.h
i915_gem_shmem.c drm/i915/gem: Give each object class a friendly name 2020-05-29 23:38:29 +01:00
i915_gem_shrinker.c drm/i915/gem: Unpin idle contexts from kswapd reclaim 2020-07-08 22:05:49 +01:00
i915_gem_shrinker.h
i915_gem_stolen.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
i915_gem_stolen.h drm/i915/display: Be explicit in handling the preallocated vma 2020-02-05 09:20:39 +00:00
i915_gem_throttle.c
i915_gem_tiling.c drm/i915/gem: Only revoke the GGTT mmappings on aperture detiling changes 2020-07-02 20:46:08 +01:00
i915_gem_userptr.c Merge branch 'simplify-do_wp_page' 2020-09-04 09:31:54 -07:00
i915_gem_wait.c
i915_gemfs.c
i915_gemfs.h