[git pull] mm + drm vmwgfx coherent

From: Dave Airlie
Date: Thu Nov 28 2019 - 20:15:58 EST


Hi Linus,

This is just a separated pull for the mm pagewalking + drm/vmwgfx work
Thomas did and you were involved in, I've left it separate in case you
don't feel as comfortable with it as the other stuff.

It has mm acks/r-b in the right places from what I can see.

Dave.

drm-vmwgfx-coherent-2019-11-29:
mm + drm coherent memory support for vmwgfx
The following changes since commit acc61b8929365e63a3e8c8c8913177795aa45594:

Merge tag 'drm-next-5.5-2019-11-22' of
git://people.freedesktop.org/~agd5f/linux into drm-next (2019-11-26
08:40:23 +1000)

are available in the Git repository at:

git://anongit.freedesktop.org/drm/drm tags/drm-vmwgfx-coherent-2019-11-29

for you to fetch changes up to 0a6cad5df541108cfd3fbd79eef48eb824c89bdc:

Merge branch 'vmwgfx-coherent' of
git://people.freedesktop.org/~thomash/linux into drm-next (2019-11-28
14:33:01 +1000)

----------------------------------------------------------------
mm + drm coherent memory support for vmwgfx

----------------------------------------------------------------
Dave Airlie (1):
Merge branch 'vmwgfx-coherent' of
git://people.freedesktop.org/~thomash/linux into drm-next

Thomas Hellstrom (10):
drm/ttm: Remove explicit typecasts of vm_private_data
drm/ttm: Convert vm callbacks to helpers
mm: Remove BUG_ON mmap_sem not held from xxx_trans_huge_lock()
mm: pagewalk: Take the pagetable lock in walk_pte_range()
mm: Add a walk_page_mapping() function to the pagewalk code
mm: Add write-protect and clean utilities for address space ranges
drm/vmwgfx: Implement an infrastructure for write-coherent resources
drm/vmwgfx: Use an RBtree instead of linked list for MOB resources
drm/vmwgfx: Implement an infrastructure for read-coherent resources
drm/vmwgfx: Add surface dirty-tracking callbacks

drivers/gpu/drm/ttm/ttm_bo_vm.c | 174 +++++---
drivers/gpu/drm/vmwgfx/Kconfig | 1 +
drivers/gpu/drm/vmwgfx/Makefile | 2 +-
.../drm/vmwgfx/device_include/svga3d_surfacedefs.h | 233 +++++++++-
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 44 +-
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 1 -
drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c | 488 +++++++++++++++++++++
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 193 +++++++-
drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h | 13 +
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 395 ++++++++++++++++-
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c | 15 +-
drivers/gpu/drm/vmwgfx/vmwgfx_validation.c | 74 +++-
drivers/gpu/drm/vmwgfx/vmwgfx_validation.h | 16 +-
include/drm/ttm/ttm_bo_api.h | 14 +
include/linux/huge_mm.h | 2 -
include/linux/mm.h | 13 +-
include/linux/pagewalk.h | 9 +
include/uapi/drm/vmwgfx_drm.h | 4 +-
mm/Kconfig | 3 +
mm/Makefile | 1 +
mm/mapping_dirty_helpers.c | 315 +++++++++++++
mm/pagewalk.c | 99 ++++-
23 files changed, 1996 insertions(+), 123 deletions(-)
create mode 100644 drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c
create mode 100644 mm/mapping_dirty_helpers.c