All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Clean up TTM mmap offsets
@ 2019-02-07  8:59 Thomas Zimmermann
  2019-02-07  8:59 ` [PATCH 4/5] drm/ttm: Quick-test mmap offset in ttm_bo_mmap() Thomas Zimmermann
                   ` (5 more replies)
  0 siblings, 6 replies; 20+ messages in thread
From: Thomas Zimmermann @ 2019-02-07  8:59 UTC (permalink / raw)
  To: alexander.deucher-5C7GfCeVMHo, christian.koenig-5C7GfCeVMHo,
	David1.Zhou-5C7GfCeVMHo, airlied-H+wXaHxf7aLQT0dZR+AlfA,
	kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	thellstrom-pghWNbHTmq7QT0dZR+AlfA,
	linux-graphics-maintainer-pghWNbHTmq7QT0dZR+AlfA,
	daniel-/w4YWyX8dFk, hdegoede-H+wXaHxf7aLQT0dZR+AlfA,
	arnd-r2nGTMty4D4, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	ray.huang-5C7GfCeVMHo, Jerry.Zhang-5C7GfCeVMHo
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Thomas Zimmermann,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

Almost all TTM-based drivers use the same values for the mmap-able
range of BO addresses. Each driver therefore duplicates the 
DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
configurable by drivers.

This patch set replaces driver-specific configuration with a single
setup. All code is located within TTM. TTM and GEM share the same
range for mmap-able BOs.

Thomas Zimmermann (5):
  staging/vboxvideo: Use same BO mmap offset as other drivers
  drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
  drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
  drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
  drm: Use the same mmap-range offset and size for GEM and TTM

 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 12 ++----------
 drivers/gpu/drm/ast/ast_drv.h               |  2 --
 drivers/gpu/drm/ast/ast_ttm.c               | 10 ++--------
 drivers/gpu/drm/bochs/bochs.h               |  2 --
 drivers/gpu/drm/bochs/bochs_mm.c            | 10 ++--------
 drivers/gpu/drm/cirrus/cirrus_drv.h         |  1 -
 drivers/gpu/drm/cirrus/cirrus_ttm.c         | 10 ++--------
 drivers/gpu/drm/drm_gem.c                   | 17 -----------------
 drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 12 ++----------
 drivers/gpu/drm/mgag200/mgag200_drv.h       |  1 -
 drivers/gpu/drm/mgag200/mgag200_ttm.c       | 10 ++--------
 drivers/gpu/drm/nouveau/nouveau_drv.h       |  2 --
 drivers/gpu/drm/nouveau/nouveau_ttm.c       |  4 ----
 drivers/gpu/drm/qxl/qxl_drv.h               |  3 ---
 drivers/gpu/drm/qxl/qxl_ttm.c               | 11 +++--------
 drivers/gpu/drm/radeon/radeon_ttm.c         | 13 ++-----------
 drivers/gpu/drm/ttm/ttm_bo.c                |  6 +++---
 drivers/gpu/drm/ttm/ttm_bo_vm.c             |  3 +++
 drivers/gpu/drm/virtio/virtgpu_ttm.c        |  4 +---
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         |  1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         |  1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 11 ++---------
 drivers/staging/vboxvideo/vbox_drv.h        |  2 --
 drivers/staging/vboxvideo/vbox_ttm.c        | 12 +++---------
 include/drm/drm_vma_manager.h               | 12 ++++++++++++
 include/drm/ttm/ttm_bo_driver.h             |  2 +-
 26 files changed, 42 insertions(+), 132 deletions(-)

-- 
2.20.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 1/5] staging/vboxvideo: Use same BO mmap offset as other drivers
       [not found] ` <20190207085931.29569-1-tzimmermann-l3A5Bk7waGM@public.gmane.org>
@ 2019-02-07  8:59   ` Thomas Zimmermann
  2019-02-07  8:59   ` [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant Thomas Zimmermann
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 20+ messages in thread
From: Thomas Zimmermann @ 2019-02-07  8:59 UTC (permalink / raw)
  To: alexander.deucher-5C7GfCeVMHo, christian.koenig-5C7GfCeVMHo,
	David1.Zhou-5C7GfCeVMHo, airlied-H+wXaHxf7aLQT0dZR+AlfA,
	kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	thellstrom-pghWNbHTmq7QT0dZR+AlfA,
	linux-graphics-maintainer-pghWNbHTmq7QT0dZR+AlfA,
	daniel-/w4YWyX8dFk, hdegoede-H+wXaHxf7aLQT0dZR+AlfA,
	arnd-r2nGTMty4D4, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	ray.huang-5C7GfCeVMHo, Jerry.Zhang-5C7GfCeVMHo
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Thomas Zimmermann,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

The vboxvideo driver mmaps BOs at 0x10000000 or higher. Changing the
offset to 0x100000000 aligns the driver with all other DRM drivers.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/staging/vboxvideo/vbox_drv.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/vboxvideo/vbox_drv.h b/drivers/staging/vboxvideo/vbox_drv.h
index aa40e5cc2861..eba5a8bc9cea 100644
--- a/drivers/staging/vboxvideo/vbox_drv.h
+++ b/drivers/staging/vboxvideo/vbox_drv.h
@@ -209,7 +209,7 @@ int vbox_dumb_mmap_offset(struct drm_file *file,
 			  struct drm_device *dev,
 			  u32 handle, u64 *offset);
 
-#define DRM_FILE_PAGE_OFFSET (0x10000000ULL >> PAGE_SHIFT)
+#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
 
 int vbox_mm_init(struct vbox_private *vbox);
 void vbox_mm_fini(struct vbox_private *vbox);
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
       [not found] ` <20190207085931.29569-1-tzimmermann-l3A5Bk7waGM@public.gmane.org>
  2019-02-07  8:59   ` [PATCH 1/5] staging/vboxvideo: Use same BO mmap offset as other drivers Thomas Zimmermann
@ 2019-02-07  8:59   ` Thomas Zimmermann
  2019-02-07  9:49     ` Thomas Zimmermann
                       ` (2 more replies)
  2019-02-07  8:59   ` [PATCH 3/5] drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init() Thomas Zimmermann
                     ` (2 subsequent siblings)
  4 siblings, 3 replies; 20+ messages in thread
From: Thomas Zimmermann @ 2019-02-07  8:59 UTC (permalink / raw)
  To: alexander.deucher-5C7GfCeVMHo, christian.koenig-5C7GfCeVMHo,
	David1.Zhou-5C7GfCeVMHo, airlied-H+wXaHxf7aLQT0dZR+AlfA,
	kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	thellstrom-pghWNbHTmq7QT0dZR+AlfA,
	linux-graphics-maintainer-pghWNbHTmq7QT0dZR+AlfA,
	daniel-/w4YWyX8dFk, hdegoede-H+wXaHxf7aLQT0dZR+AlfA,
	arnd-r2nGTMty4D4, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	ray.huang-5C7GfCeVMHo, Jerry.Zhang-5C7GfCeVMHo
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Thomas Zimmermann,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

Most TTM drivers define the constant DRM_FILE_PAGE_OFFSET of the same
value. The only exception is vboxvideo, which is being converted to the
new offset by this patch. Unifying the constants in a single place
simplifies the driver code.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 2 --
 drivers/gpu/drm/ast/ast_drv.h               | 2 --
 drivers/gpu/drm/bochs/bochs.h               | 2 --
 drivers/gpu/drm/cirrus/cirrus_drv.h         | 1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 2 --
 drivers/gpu/drm/mgag200/mgag200_drv.h       | 1 -
 drivers/gpu/drm/nouveau/nouveau_drv.h       | 2 --
 drivers/gpu/drm/qxl/qxl_drv.h               | 3 ---
 drivers/gpu/drm/radeon/radeon_ttm.c         | 2 --
 drivers/gpu/drm/virtio/virtgpu_ttm.c        | 2 --
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         | 1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 2 +-
 drivers/staging/vboxvideo/vbox_drv.h        | 2 --
 include/drm/ttm/ttm_bo_driver.h             | 2 ++
 15 files changed, 4 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index b852abb9db0f..447960b3334a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -50,8 +50,6 @@
 #include "amdgpu_sdma.h"
 #include "bif/bif_4_1_d.h"
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static int amdgpu_map_buffer(struct ttm_buffer_object *bo,
 			     struct ttm_mem_reg *mem, unsigned num_pages,
 			     uint64_t offset, unsigned window,
diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
index bfc65040dfcb..c43b927f73af 100644
--- a/drivers/gpu/drm/ast/ast_drv.h
+++ b/drivers/gpu/drm/ast/ast_drv.h
@@ -353,8 +353,6 @@ extern int ast_dumb_mmap_offset(struct drm_file *file,
 				uint32_t handle,
 				uint64_t *offset);
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 int ast_mm_init(struct ast_private *ast);
 void ast_mm_fini(struct ast_private *ast);
 
diff --git a/drivers/gpu/drm/bochs/bochs.h b/drivers/gpu/drm/bochs/bochs.h
index 03711394f1ed..7425d083b944 100644
--- a/drivers/gpu/drm/bochs/bochs.h
+++ b/drivers/gpu/drm/bochs/bochs.h
@@ -101,8 +101,6 @@ static inline struct bochs_bo *gem_to_bochs_bo(struct drm_gem_object *gem)
 	return container_of(gem, struct bochs_bo, gem);
 }
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static inline u64 bochs_bo_mmap_offset(struct bochs_bo *bo)
 {
 	return drm_vma_node_offset_addr(&bo->bo.vma_node);
diff --git a/drivers/gpu/drm/cirrus/cirrus_drv.h b/drivers/gpu/drm/cirrus/cirrus_drv.h
index f2b2e0d169fa..ba77507e9bad 100644
--- a/drivers/gpu/drm/cirrus/cirrus_drv.h
+++ b/drivers/gpu/drm/cirrus/cirrus_drv.h
@@ -169,7 +169,6 @@ cirrus_bo(struct ttm_buffer_object *bo)
 
 
 #define to_cirrus_obj(x) container_of(x, struct cirrus_gem_object, base)
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
 
 				/* cirrus_main.c */
 int cirrus_device_init(struct cirrus_device *cdev,
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
index dd383267884c..a06725c2bbfa 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
@@ -21,8 +21,6 @@
 
 #include "hibmc_drm_drv.h"
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static inline struct hibmc_drm_private *
 hibmc_bdev(struct ttm_bo_device *bd)
 {
diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h
index 0aaedc554879..706c902aad2d 100644
--- a/drivers/gpu/drm/mgag200/mgag200_drv.h
+++ b/drivers/gpu/drm/mgag200/mgag200_drv.h
@@ -269,7 +269,6 @@ mgag200_dumb_mmap_offset(struct drm_file *file,
 struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev);
 void mgag200_i2c_destroy(struct mga_i2c_chan *i2c);
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
 void mgag200_ttm_placement(struct mgag200_bo *bo, int domain);
 
 static inline int mgag200_bo_reserve(struct mgag200_bo *bo, bool no_wait)
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
index d20b9ba4b1c1..c144bc79e872 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -60,8 +60,6 @@
 struct nouveau_channel;
 struct platform_device;
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 #include "nouveau_fence.h"
 #include "nouveau_bios.h"
 #include "nouveau_vmm.h"
diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
index 4a0331b3ff7d..2896bb6fdbf4 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.h
+++ b/drivers/gpu/drm/qxl/qxl_drv.h
@@ -65,9 +65,6 @@
 extern int qxl_num_crtc;
 extern int qxl_max_ioctls;
 
-#define DRM_FILE_OFFSET 0x100000000ULL
-#define DRM_FILE_PAGE_OFFSET (DRM_FILE_OFFSET >> PAGE_SHIFT)
-
 #define QXL_INTERRUPT_MASK (\
 	QXL_INTERRUPT_DISPLAY |\
 	QXL_INTERRUPT_CURSOR |\
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index 9920a6fc11bf..071a872e5b02 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -45,8 +45,6 @@
 #include "radeon_reg.h"
 #include "radeon.h"
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static int radeon_ttm_debugfs_init(struct radeon_device *rdev);
 static void radeon_ttm_debugfs_fini(struct radeon_device *rdev);
 
diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c
index 4bfbf25fabff..64f5b8dec3e9 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
@@ -37,8 +37,6 @@
 
 #include <linux/delay.h>
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static struct
 virtio_gpu_device *virtio_gpu_get_vgdev(struct ttm_bo_device *bdev)
 {
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 4638f6791cda..e72edc68255d 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -868,7 +868,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
 	ret = ttm_bo_device_init(&dev_priv->bdev,
 				 &vmw_bo_driver,
 				 dev->anon_inode->i_mapping,
-				 VMWGFX_FILE_PAGE_OFFSET,
+				 DRM_FILE_PAGE_OFFSET,
 				 false);
 	if (unlikely(ret != 0)) {
 		DRM_ERROR("Failed initializing TTM buffer object driver.\n");
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
index accb2fafe2f1..6302c12c2298 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
@@ -48,7 +48,6 @@
 #define VMWGFX_DRIVER_MAJOR 2
 #define VMWGFX_DRIVER_MINOR 15
 #define VMWGFX_DRIVER_PATCHLEVEL 0
-#define VMWGFX_FILE_PAGE_OFFSET 0x00100000
 #define VMWGFX_FIFO_STATIC_SIZE (1024*1024)
 #define VMWGFX_MAX_RELOCATIONS 2048
 #define VMWGFX_MAX_VALIDATIONS 2048
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c
index e6d75e377dd8..ec5b4b237f2c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c
@@ -33,7 +33,7 @@ int vmw_mmap(struct file *filp, struct vm_area_struct *vma)
 	struct drm_file *file_priv;
 	struct vmw_private *dev_priv;
 
-	if (unlikely(vma->vm_pgoff < VMWGFX_FILE_PAGE_OFFSET)) {
+	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET)) {
 		DRM_ERROR("Illegal attempt to mmap old fifo space.\n");
 		return -EINVAL;
 	}
diff --git a/drivers/staging/vboxvideo/vbox_drv.h b/drivers/staging/vboxvideo/vbox_drv.h
index eba5a8bc9cea..77f2a4e9000e 100644
--- a/drivers/staging/vboxvideo/vbox_drv.h
+++ b/drivers/staging/vboxvideo/vbox_drv.h
@@ -209,8 +209,6 @@ int vbox_dumb_mmap_offset(struct drm_file *file,
 			  struct drm_device *dev,
 			  u32 handle, u64 *offset);
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 int vbox_mm_init(struct vbox_private *vbox);
 void vbox_mm_fini(struct vbox_private *vbox);
 
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index cbf3180cb612..c0bed72492f3 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -49,6 +49,8 @@
 #define TTM_MEMTYPE_FLAG_MAPPABLE      (1 << 1)	/* Memory mappable */
 #define TTM_MEMTYPE_FLAG_CMA           (1 << 3)	/* Can't map aperture */
 
+#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
+
 struct ttm_mem_type_manager;
 
 struct ttm_mem_type_manager_func {
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 3/5] drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
       [not found] ` <20190207085931.29569-1-tzimmermann-l3A5Bk7waGM@public.gmane.org>
  2019-02-07  8:59   ` [PATCH 1/5] staging/vboxvideo: Use same BO mmap offset as other drivers Thomas Zimmermann
  2019-02-07  8:59   ` [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant Thomas Zimmermann
@ 2019-02-07  8:59   ` Thomas Zimmermann
  2019-02-07  8:59   ` [PATCH 5/5] drm: Use the same mmap-range offset and size for GEM and TTM Thomas Zimmermann
  2019-02-07  9:36   ` [PATCH 0/5] Clean up TTM mmap offsets Koenig, Christian
  4 siblings, 0 replies; 20+ messages in thread
From: Thomas Zimmermann @ 2019-02-07  8:59 UTC (permalink / raw)
  To: alexander.deucher-5C7GfCeVMHo, christian.koenig-5C7GfCeVMHo,
	David1.Zhou-5C7GfCeVMHo, airlied-H+wXaHxf7aLQT0dZR+AlfA,
	kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	thellstrom-pghWNbHTmq7QT0dZR+AlfA,
	linux-graphics-maintainer-pghWNbHTmq7QT0dZR+AlfA,
	daniel-/w4YWyX8dFk, hdegoede-H+wXaHxf7aLQT0dZR+AlfA,
	arnd-r2nGTMty4D4, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	ray.huang-5C7GfCeVMHo, Jerry.Zhang-5C7GfCeVMHo
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Thomas Zimmermann,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

The parameter file_page_offset is a constant shared by all drivers. Just
replace it with the constant itself.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 1 -
 drivers/gpu/drm/ast/ast_ttm.c               | 1 -
 drivers/gpu/drm/bochs/bochs_mm.c            | 1 -
 drivers/gpu/drm/cirrus/cirrus_ttm.c         | 1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 1 -
 drivers/gpu/drm/mgag200/mgag200_ttm.c       | 1 -
 drivers/gpu/drm/nouveau/nouveau_ttm.c       | 1 -
 drivers/gpu/drm/qxl/qxl_ttm.c               | 2 +-
 drivers/gpu/drm/radeon/radeon_ttm.c         | 1 -
 drivers/gpu/drm/ttm/ttm_bo.c                | 4 ++--
 drivers/gpu/drm/virtio/virtgpu_ttm.c        | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         | 1 -
 drivers/staging/vboxvideo/vbox_ttm.c        | 2 +-
 include/drm/ttm/ttm_bo_driver.h             | 2 +-
 14 files changed, 6 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 447960b3334a..5755ac428fd0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1669,7 +1669,6 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
 	r = ttm_bo_device_init(&adev->mman.bdev,
 			       &amdgpu_bo_driver,
 			       adev->ddev->anon_inode->i_mapping,
-			       DRM_FILE_PAGE_OFFSET,
 			       adev->need_dma32);
 	if (r) {
 		DRM_ERROR("failed initializing buffer object driver(%d).\n", r);
diff --git a/drivers/gpu/drm/ast/ast_ttm.c b/drivers/gpu/drm/ast/ast_ttm.c
index c168d62fe8f9..c410804a5e2c 100644
--- a/drivers/gpu/drm/ast/ast_ttm.c
+++ b/drivers/gpu/drm/ast/ast_ttm.c
@@ -178,7 +178,6 @@ int ast_mm_init(struct ast_private *ast)
 	ret = ttm_bo_device_init(&ast->ttm.bdev,
 				 &ast_bo_driver,
 				 dev->anon_inode->i_mapping,
-				 DRM_FILE_PAGE_OFFSET,
 				 true);
 	if (ret) {
 		DRM_ERROR("Error initialising bo driver; %d\n", ret);
diff --git a/drivers/gpu/drm/bochs/bochs_mm.c b/drivers/gpu/drm/bochs/bochs_mm.c
index 49463348a07a..ebc9dbd94923 100644
--- a/drivers/gpu/drm/bochs/bochs_mm.c
+++ b/drivers/gpu/drm/bochs/bochs_mm.c
@@ -156,7 +156,6 @@ int bochs_mm_init(struct bochs_device *bochs)
 	ret = ttm_bo_device_init(&bochs->ttm.bdev,
 				 &bochs_bo_driver,
 				 bochs->dev->anon_inode->i_mapping,
-				 DRM_FILE_PAGE_OFFSET,
 				 true);
 	if (ret) {
 		DRM_ERROR("Error initialising bo driver; %d\n", ret);
diff --git a/drivers/gpu/drm/cirrus/cirrus_ttm.c b/drivers/gpu/drm/cirrus/cirrus_ttm.c
index e075810b4bd4..223a75ba77a8 100644
--- a/drivers/gpu/drm/cirrus/cirrus_ttm.c
+++ b/drivers/gpu/drm/cirrus/cirrus_ttm.c
@@ -178,7 +178,6 @@ int cirrus_mm_init(struct cirrus_device *cirrus)
 	ret = ttm_bo_device_init(&cirrus->ttm.bdev,
 				 &cirrus_bo_driver,
 				 dev->anon_inode->i_mapping,
-				 DRM_FILE_PAGE_OFFSET,
 				 true);
 	if (ret) {
 		DRM_ERROR("Error initialising bo driver; %d\n", ret);
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
index a06725c2bbfa..845488922865 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
@@ -189,7 +189,6 @@ int hibmc_mm_init(struct hibmc_drm_private *hibmc)
 	ret = ttm_bo_device_init(&hibmc->bdev,
 				 &hibmc_bo_driver,
 				 dev->anon_inode->i_mapping,
-				 DRM_FILE_PAGE_OFFSET,
 				 true);
 	if (ret) {
 		DRM_ERROR("error initializing bo driver: %d\n", ret);
diff --git a/drivers/gpu/drm/mgag200/mgag200_ttm.c b/drivers/gpu/drm/mgag200/mgag200_ttm.c
index d96a9b32455e..ce739da5161d 100644
--- a/drivers/gpu/drm/mgag200/mgag200_ttm.c
+++ b/drivers/gpu/drm/mgag200/mgag200_ttm.c
@@ -178,7 +178,6 @@ int mgag200_mm_init(struct mga_device *mdev)
 	ret = ttm_bo_device_init(&mdev->ttm.bdev,
 				 &mgag200_bo_driver,
 				 dev->anon_inode->i_mapping,
-				 DRM_FILE_PAGE_OFFSET,
 				 true);
 	if (ret) {
 		DRM_ERROR("Error initialising bo driver; %d\n", ret);
diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
index 1543c2f8d3d3..c66467232604 100644
--- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
@@ -239,7 +239,6 @@ nouveau_ttm_init(struct nouveau_drm *drm)
 	ret = ttm_bo_device_init(&drm->ttm.bdev,
 				  &nouveau_bo_driver,
 				  dev->anon_inode->i_mapping,
-				  DRM_FILE_PAGE_OFFSET,
 				  drm->client.mmu.dmabits <= 32 ? true : false);
 	if (ret) {
 		NV_ERROR(drm, "error initialising bo driver, %d\n", ret);
diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
index 92f5db5b296f..6b3b92d1f17f 100644
--- a/drivers/gpu/drm/qxl/qxl_ttm.c
+++ b/drivers/gpu/drm/qxl/qxl_ttm.c
@@ -328,7 +328,7 @@ int qxl_ttm_init(struct qxl_device *qdev)
 	r = ttm_bo_device_init(&qdev->mman.bdev,
 			       &qxl_bo_driver,
 			       qdev->ddev.anon_inode->i_mapping,
-			       DRM_FILE_PAGE_OFFSET, 0);
+			       false);
 	if (r) {
 		DRM_ERROR("failed initializing buffer object driver(%d).\n", r);
 		return r;
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index 071a872e5b02..7c10e1560780 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -790,7 +790,6 @@ int radeon_ttm_init(struct radeon_device *rdev)
 	r = ttm_bo_device_init(&rdev->mman.bdev,
 			       &radeon_bo_driver,
 			       rdev->ddev->anon_inode->i_mapping,
-			       DRM_FILE_PAGE_OFFSET,
 			       rdev->need_dma32);
 	if (r) {
 		DRM_ERROR("failed initializing buffer object driver(%d).\n", r);
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 3f56647cdb35..e1b65775f3ee 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -1624,7 +1624,6 @@ EXPORT_SYMBOL(ttm_bo_device_release);
 int ttm_bo_device_init(struct ttm_bo_device *bdev,
 		       struct ttm_bo_driver *driver,
 		       struct address_space *mapping,
-		       uint64_t file_page_offset,
 		       bool need_dma32)
 {
 	struct ttm_bo_global *glob = &ttm_bo_glob;
@@ -1646,7 +1645,8 @@ int ttm_bo_device_init(struct ttm_bo_device *bdev,
 	if (unlikely(ret != 0))
 		goto out_no_sys;
 
-	drm_vma_offset_manager_init(&bdev->vma_manager, file_page_offset,
+	drm_vma_offset_manager_init(&bdev->vma_manager,
+				    DRM_FILE_PAGE_OFFSET,
 				    0x10000000);
 	INIT_DELAYED_WORK(&bdev->wq, ttm_bo_delayed_workqueue);
 	INIT_LIST_HEAD(&bdev->ddestroy);
diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c
index 64f5b8dec3e9..d6225ba20b30 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
@@ -328,7 +328,7 @@ int virtio_gpu_ttm_init(struct virtio_gpu_device *vgdev)
 	r = ttm_bo_device_init(&vgdev->mman.bdev,
 			       &virtio_gpu_bo_driver,
 			       vgdev->ddev->anon_inode->i_mapping,
-			       DRM_FILE_PAGE_OFFSET, 0);
+			       false);
 	if (r) {
 		DRM_ERROR("failed initializing buffer object driver(%d).\n", r);
 		goto err_dev_init;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index e72edc68255d..b41faf061678 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -868,7 +868,6 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
 	ret = ttm_bo_device_init(&dev_priv->bdev,
 				 &vmw_bo_driver,
 				 dev->anon_inode->i_mapping,
-				 DRM_FILE_PAGE_OFFSET,
 				 false);
 	if (unlikely(ret != 0)) {
 		DRM_ERROR("Failed initializing TTM buffer object driver.\n");
diff --git a/drivers/staging/vboxvideo/vbox_ttm.c b/drivers/staging/vboxvideo/vbox_ttm.c
index 30f270027acf..b7db7a7952d4 100644
--- a/drivers/staging/vboxvideo/vbox_ttm.c
+++ b/drivers/staging/vboxvideo/vbox_ttm.c
@@ -156,7 +156,7 @@ int vbox_mm_init(struct vbox_private *vbox)
 	ret = ttm_bo_device_init(&vbox->ttm.bdev,
 				 &vbox_bo_driver,
 				 dev->anon_inode->i_mapping,
-				 DRM_FILE_PAGE_OFFSET, true);
+				 true);
 	if (ret) {
 		DRM_ERROR("Error initialising bo driver; %d\n", ret);
 		return ret;
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index c0bed72492f3..ff0ec43fce7f 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -599,7 +599,7 @@ int ttm_bo_device_release(struct ttm_bo_device *bdev);
 int ttm_bo_device_init(struct ttm_bo_device *bdev,
 		       struct ttm_bo_driver *driver,
 		       struct address_space *mapping,
-		       uint64_t file_page_offset, bool need_dma32);
+		       bool need_dma32);
 
 /**
  * ttm_bo_unmap_virtual
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 4/5] drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
  2019-02-07  8:59 [PATCH 0/5] Clean up TTM mmap offsets Thomas Zimmermann
@ 2019-02-07  8:59 ` Thomas Zimmermann
  2019-02-07  9:36 ` [PATCH 0/5] Clean up TTM mmap offsets Koenig, Christian
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 20+ messages in thread
From: Thomas Zimmermann @ 2019-02-07  8:59 UTC (permalink / raw)
  To: alexander.deucher, christian.koenig, David1.Zhou, airlied,
	kraxel, z.liuxinliang, zourongrong, kong.kongxinwei, puck.chen,
	bskeggs, thellstrom, linux-graphics-maintainer, daniel, hdegoede,
	arnd, gregkh, ray.huang, Jerry.Zhang
  Cc: spice-devel, Thomas Zimmermann, amd-gfx, dri-devel, virtualization

A BO's address has to be at least the minimum offset. Sharing this
test in ttm_bo_mmap() removes code from drivers. A full buffer-address
validation is still done within drm_vma_offset_lockup_locked().

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     |  9 ++-------
 drivers/gpu/drm/ast/ast_ttm.c               |  9 ++-------
 drivers/gpu/drm/bochs/bochs_mm.c            |  9 ++-------
 drivers/gpu/drm/cirrus/cirrus_ttm.c         |  9 ++-------
 drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c |  9 ++-------
 drivers/gpu/drm/mgag200/mgag200_ttm.c       |  9 ++-------
 drivers/gpu/drm/nouveau/nouveau_ttm.c       |  3 ---
 drivers/gpu/drm/qxl/qxl_ttm.c               |  9 ++-------
 drivers/gpu/drm/radeon/radeon_ttm.c         | 10 ++--------
 drivers/gpu/drm/ttm/ttm_bo_vm.c             |  3 +++
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 11 ++---------
 drivers/staging/vboxvideo/vbox_ttm.c        | 10 ++--------
 12 files changed, 23 insertions(+), 77 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 5755ac428fd0..a8cd1e0ae4b3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1874,14 +1874,9 @@ void amdgpu_ttm_set_buffer_funcs_status(struct amdgpu_device *adev, bool enable)
 
 int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct amdgpu_device *adev;
-
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
-		return -EINVAL;
+	struct drm_file *file_priv = filp->private_data;
+	struct amdgpu_device *adev = file_priv->minor->dev->dev_private;
 
-	file_priv = filp->private_data;
-	adev = file_priv->minor->dev->dev_private;
 	if (adev == NULL)
 		return -EINVAL;
 
diff --git a/drivers/gpu/drm/ast/ast_ttm.c b/drivers/gpu/drm/ast/ast_ttm.c
index c410804a5e2c..75d477b37854 100644
--- a/drivers/gpu/drm/ast/ast_ttm.c
+++ b/drivers/gpu/drm/ast/ast_ttm.c
@@ -343,13 +343,8 @@ int ast_bo_push_sysram(struct ast_bo *bo)
 
 int ast_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct ast_private *ast;
+	struct drm_file *file_priv = filp->private_data;
+	struct ast_private *ast = file_priv->minor->dev->dev_private;
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
-		return -EINVAL;
-
-	file_priv = filp->private_data;
-	ast = file_priv->minor->dev->dev_private;
 	return ttm_bo_mmap(filp, vma, &ast->ttm.bdev);
 }
diff --git a/drivers/gpu/drm/bochs/bochs_mm.c b/drivers/gpu/drm/bochs/bochs_mm.c
index ebc9dbd94923..4a40308169c4 100644
--- a/drivers/gpu/drm/bochs/bochs_mm.c
+++ b/drivers/gpu/drm/bochs/bochs_mm.c
@@ -263,14 +263,9 @@ int bochs_bo_unpin(struct bochs_bo *bo)
 
 int bochs_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct bochs_device *bochs;
+	struct drm_file *file_priv = filp->private_data;
+	struct bochs_device *bochs = file_priv->minor->dev->dev_private;
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
-		return -EINVAL;
-
-	file_priv = filp->private_data;
-	bochs = file_priv->minor->dev->dev_private;
 	return ttm_bo_mmap(filp, vma, &bochs->ttm.bdev);
 }
 
diff --git a/drivers/gpu/drm/cirrus/cirrus_ttm.c b/drivers/gpu/drm/cirrus/cirrus_ttm.c
index 223a75ba77a8..e6b98467a428 100644
--- a/drivers/gpu/drm/cirrus/cirrus_ttm.c
+++ b/drivers/gpu/drm/cirrus/cirrus_ttm.c
@@ -330,13 +330,8 @@ int cirrus_bo_push_sysram(struct cirrus_bo *bo)
 
 int cirrus_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct cirrus_device *cirrus;
+	struct drm_file *file_priv = filp->private_data;
+	struct cirrus_device *cirrus = file_priv->minor->dev->dev_private;
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
-		return -EINVAL;
-
-	file_priv = filp->private_data;
-	cirrus = file_priv->minor->dev->dev_private;
 	return ttm_bo_mmap(filp, vma, &cirrus->ttm.bdev);
 }
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
index 845488922865..6093c421daff 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
@@ -319,14 +319,9 @@ int hibmc_bo_unpin(struct hibmc_bo *bo)
 
 int hibmc_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct hibmc_drm_private *hibmc;
+	struct drm_file *file_priv = filp->private_data;
+	struct hibmc_drm_private *hibmc = file_priv->minor->dev->dev_private;
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
-		return -EINVAL;
-
-	file_priv = filp->private_data;
-	hibmc = file_priv->minor->dev->dev_private;
 	return ttm_bo_mmap(filp, vma, &hibmc->bdev);
 }
 
diff --git a/drivers/gpu/drm/mgag200/mgag200_ttm.c b/drivers/gpu/drm/mgag200/mgag200_ttm.c
index ce739da5161d..bd42365a8aa8 100644
--- a/drivers/gpu/drm/mgag200/mgag200_ttm.c
+++ b/drivers/gpu/drm/mgag200/mgag200_ttm.c
@@ -344,13 +344,8 @@ int mgag200_bo_push_sysram(struct mgag200_bo *bo)
 
 int mgag200_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct mga_device *mdev;
+	struct drm_file *file_priv = filp->private_data;
+	struct mga_device *mdev = file_priv->minor->dev->dev_private;
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
-		return -EINVAL;
-
-	file_priv = filp->private_data;
-	mdev = file_priv->minor->dev->dev_private;
 	return ttm_bo_mmap(filp, vma, &mdev->ttm.bdev);
 }
diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
index c66467232604..f0daf958e03a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
@@ -168,9 +168,6 @@ nouveau_ttm_mmap(struct file *filp, struct vm_area_struct *vma)
 	struct drm_file *file_priv = filp->private_data;
 	struct nouveau_drm *drm = nouveau_drm(file_priv->minor->dev);
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
-		return drm_legacy_mmap(filp, vma);
-
 	return ttm_bo_mmap(filp, vma, &drm->ttm.bdev);
 }
 
diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
index 6b3b92d1f17f..0234f8556ada 100644
--- a/drivers/gpu/drm/qxl/qxl_ttm.c
+++ b/drivers/gpu/drm/qxl/qxl_ttm.c
@@ -63,15 +63,10 @@ static vm_fault_t qxl_ttm_fault(struct vm_fault *vmf)
 
 int qxl_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct qxl_device *qdev;
 	int r;
+	struct drm_file *file_priv = filp->private_data;
+	struct qxl_device *qdev = file_priv->minor->dev->dev_private;
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
-		return -EINVAL;
-
-	file_priv = filp->private_data;
-	qdev = file_priv->minor->dev->dev_private;
 	if (qdev == NULL) {
 		DRM_ERROR(
 		 "filp->private_data->minor->dev->dev_private == NULL\n");
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index 7c10e1560780..557bdd7a2fc8 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -898,16 +898,10 @@ static vm_fault_t radeon_ttm_fault(struct vm_fault *vmf)
 
 int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct radeon_device *rdev;
 	int r;
+	struct drm_file *file_priv = filp->private_data;
+	struct radeon_device *rdev = file_priv->minor->dev->dev_private;
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET)) {
-		return -EINVAL;
-	}
-
-	file_priv = filp->private_data;
-	rdev = file_priv->minor->dev->dev_private;
 	if (rdev == NULL) {
 		return -EINVAL;
 	}
diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c
index e86a29a1e51f..e94c2ab3718a 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_vm.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c
@@ -432,6 +432,9 @@ int ttm_bo_mmap(struct file *filp, struct vm_area_struct *vma,
 	struct ttm_buffer_object *bo;
 	int ret;
 
+	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
+		return -EINVAL;
+
 	bo = ttm_bo_vm_lookup(bdev, vma->vm_pgoff, vma_pages(vma));
 	if (unlikely(!bo))
 		return -EINVAL;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c
index ec5b4b237f2c..8bafa6eac5a8 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c
@@ -30,16 +30,9 @@
 
 int vmw_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct vmw_private *dev_priv;
+	struct drm_file *file_priv = filp->private_data;
+	struct vmw_private *dev_priv = vmw_priv(file_priv->minor->dev);
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET)) {
-		DRM_ERROR("Illegal attempt to mmap old fifo space.\n");
-		return -EINVAL;
-	}
-
-	file_priv = filp->private_data;
-	dev_priv = vmw_priv(file_priv->minor->dev);
 	return ttm_bo_mmap(filp, vma, &dev_priv->bdev);
 }
 
diff --git a/drivers/staging/vboxvideo/vbox_ttm.c b/drivers/staging/vboxvideo/vbox_ttm.c
index b7db7a7952d4..9d78438c2877 100644
--- a/drivers/staging/vboxvideo/vbox_ttm.c
+++ b/drivers/staging/vboxvideo/vbox_ttm.c
@@ -357,14 +357,8 @@ int vbox_bo_push_sysram(struct vbox_bo *bo)
 
 int vbox_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-	struct drm_file *file_priv;
-	struct vbox_private *vbox;
-
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
-		return -EINVAL;
-
-	file_priv = filp->private_data;
-	vbox = file_priv->minor->dev->dev_private;
+	struct drm_file *file_priv = filp->private_data;
+	struct vbox_private *vbox = file_priv->minor->dev->dev_private;
 
 	return ttm_bo_mmap(filp, vma, &vbox->ttm.bdev);
 }
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 5/5] drm: Use the same mmap-range offset and size for GEM and TTM
       [not found] ` <20190207085931.29569-1-tzimmermann-l3A5Bk7waGM@public.gmane.org>
                     ` (2 preceding siblings ...)
  2019-02-07  8:59   ` [PATCH 3/5] drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init() Thomas Zimmermann
@ 2019-02-07  8:59   ` Thomas Zimmermann
  2019-02-07  9:36   ` [PATCH 0/5] Clean up TTM mmap offsets Koenig, Christian
  4 siblings, 0 replies; 20+ messages in thread
From: Thomas Zimmermann @ 2019-02-07  8:59 UTC (permalink / raw)
  To: alexander.deucher-5C7GfCeVMHo, christian.koenig-5C7GfCeVMHo,
	David1.Zhou-5C7GfCeVMHo, airlied-H+wXaHxf7aLQT0dZR+AlfA,
	kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	thellstrom-pghWNbHTmq7QT0dZR+AlfA,
	linux-graphics-maintainer-pghWNbHTmq7QT0dZR+AlfA,
	daniel-/w4YWyX8dFk, hdegoede-H+wXaHxf7aLQT0dZR+AlfA,
	arnd-r2nGTMty4D4, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	ray.huang-5C7GfCeVMHo, Jerry.Zhang-5C7GfCeVMHo
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Thomas Zimmermann,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

GEM defines DRM_FILE_PAGE_OFFSET_{START,SIZE} constants for the
mmap-able range of addresses. TTM can use them as well.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/gpu/drm/drm_gem.c       | 17 -----------------
 drivers/gpu/drm/ttm/ttm_bo.c    |  4 ++--
 drivers/gpu/drm/ttm/ttm_bo_vm.c |  2 +-
 include/drm/drm_vma_manager.h   | 12 ++++++++++++
 include/drm/ttm/ttm_bo_driver.h |  2 --
 5 files changed, 15 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index d0b9f6a9953f..ea988509ae8f 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -72,23 +72,6 @@
  * up at a later date, and as our interface with shmfs for memory allocation.
  */
 
-/*
- * We make up offsets for buffer objects so we can recognize them at
- * mmap time.
- */
-
-/* pgoff in mmap is an unsigned long, so we need to make sure that
- * the faked up offset will fit
- */
-
-#if BITS_PER_LONG == 64
-#define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFFUL >> PAGE_SHIFT) + 1)
-#define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFFUL >> PAGE_SHIFT) * 16)
-#else
-#define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFUL >> PAGE_SHIFT) + 1)
-#define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFUL >> PAGE_SHIFT) * 16)
-#endif
-
 /**
  * drm_gem_init - Initialize the GEM device fields
  * @dev: drm_devic structure to initialize
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index e1b65775f3ee..988416fb8a0b 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -1646,8 +1646,8 @@ int ttm_bo_device_init(struct ttm_bo_device *bdev,
 		goto out_no_sys;
 
 	drm_vma_offset_manager_init(&bdev->vma_manager,
-				    DRM_FILE_PAGE_OFFSET,
-				    0x10000000);
+				    DRM_FILE_PAGE_OFFSET_START,
+				    DRM_FILE_PAGE_OFFSET_SIZE);
 	INIT_DELAYED_WORK(&bdev->wq, ttm_bo_delayed_workqueue);
 	INIT_LIST_HEAD(&bdev->ddestroy);
 	bdev->dev_mapping = mapping;
diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c
index e94c2ab3718a..6dacff49c1cc 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_vm.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c
@@ -432,7 +432,7 @@ int ttm_bo_mmap(struct file *filp, struct vm_area_struct *vma,
 	struct ttm_buffer_object *bo;
 	int ret;
 
-	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET))
+	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET_START))
 		return -EINVAL;
 
 	bo = ttm_bo_vm_lookup(bdev, vma->vm_pgoff, vma_pages(vma));
diff --git a/include/drm/drm_vma_manager.h b/include/drm/drm_vma_manager.h
index c7987daeaed0..f4f8ff1cdeec 100644
--- a/include/drm/drm_vma_manager.h
+++ b/include/drm/drm_vma_manager.h
@@ -29,6 +29,18 @@
 #include <linux/spinlock.h>
 #include <linux/types.h>
 
+/* We make up offsets for buffer objects so we can recognize them at
+ * mmap time. pgoff in mmap is an unsigned long, so we need to make sure
+ * that the faked up offset will fit
+ */
+#if BITS_PER_LONG == 64
+#define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFFUL >> PAGE_SHIFT) + 1)
+#define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFFUL >> PAGE_SHIFT) * 16)
+#else
+#define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFUL >> PAGE_SHIFT) + 1)
+#define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFUL >> PAGE_SHIFT) * 16)
+#endif
+
 struct drm_file;
 
 struct drm_vma_offset_file {
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index ff0ec43fce7f..61b80ec78e80 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -49,8 +49,6 @@
 #define TTM_MEMTYPE_FLAG_MAPPABLE      (1 << 1)	/* Memory mappable */
 #define TTM_MEMTYPE_FLAG_CMA           (1 << 3)	/* Can't map aperture */
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 struct ttm_mem_type_manager;
 
 struct ttm_mem_type_manager_func {
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
  2019-02-07  8:59 [PATCH 0/5] Clean up TTM mmap offsets Thomas Zimmermann
  2019-02-07  8:59 ` [PATCH 4/5] drm/ttm: Quick-test mmap offset in ttm_bo_mmap() Thomas Zimmermann
@ 2019-02-07  9:36 ` Koenig, Christian
       [not found] ` <20190207085931.29569-1-tzimmermann-l3A5Bk7waGM@public.gmane.org>
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 20+ messages in thread
From: Koenig, Christian @ 2019-02-07  9:36 UTC (permalink / raw)
  To: Thomas Zimmermann, Deucher, Alexander, Zhou, David(ChunMing),
	airlied, kraxel, z.liuxinliang, zourongrong, kong.kongxinwei,
	puck.chen, bskeggs, thellstrom, linux-graphics-maintainer,
	daniel, hdegoede, arnd, gregkh, Huang, Ray, Zhang, Jerry
  Cc: spice-devel, amd-gfx, dri-devel, virtualization

Am 07.02.19 um 09:59 schrieb Thomas Zimmermann:
> Almost all TTM-based drivers use the same values for the mmap-able
> range of BO addresses. Each driver therefore duplicates the
> DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
> configurable by drivers.
>
> This patch set replaces driver-specific configuration with a single
> setup. All code is located within TTM. TTM and GEM share the same
> range for mmap-able BOs.
>
> Thomas Zimmermann (5):
>    staging/vboxvideo: Use same BO mmap offset as other drivers
>    drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
>    drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
>    drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
>    drm: Use the same mmap-range offset and size for GEM and TTM

Reviewed-by: Christian König <christian.koenig@amd.com> for the whole 
series.

Nice cleanup! Thanks,
Christian.

>
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 12 ++----------
>   drivers/gpu/drm/ast/ast_drv.h               |  2 --
>   drivers/gpu/drm/ast/ast_ttm.c               | 10 ++--------
>   drivers/gpu/drm/bochs/bochs.h               |  2 --
>   drivers/gpu/drm/bochs/bochs_mm.c            | 10 ++--------
>   drivers/gpu/drm/cirrus/cirrus_drv.h         |  1 -
>   drivers/gpu/drm/cirrus/cirrus_ttm.c         | 10 ++--------
>   drivers/gpu/drm/drm_gem.c                   | 17 -----------------
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 12 ++----------
>   drivers/gpu/drm/mgag200/mgag200_drv.h       |  1 -
>   drivers/gpu/drm/mgag200/mgag200_ttm.c       | 10 ++--------
>   drivers/gpu/drm/nouveau/nouveau_drv.h       |  2 --
>   drivers/gpu/drm/nouveau/nouveau_ttm.c       |  4 ----
>   drivers/gpu/drm/qxl/qxl_drv.h               |  3 ---
>   drivers/gpu/drm/qxl/qxl_ttm.c               | 11 +++--------
>   drivers/gpu/drm/radeon/radeon_ttm.c         | 13 ++-----------
>   drivers/gpu/drm/ttm/ttm_bo.c                |  6 +++---
>   drivers/gpu/drm/ttm/ttm_bo_vm.c             |  3 +++
>   drivers/gpu/drm/virtio/virtgpu_ttm.c        |  4 +---
>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         |  1 -
>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         |  1 -
>   drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 11 ++---------
>   drivers/staging/vboxvideo/vbox_drv.h        |  2 --
>   drivers/staging/vboxvideo/vbox_ttm.c        | 12 +++---------
>   include/drm/drm_vma_manager.h               | 12 ++++++++++++
>   include/drm/ttm/ttm_bo_driver.h             |  2 +-
>   26 files changed, 42 insertions(+), 132 deletions(-)
>

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
       [not found] ` <20190207085931.29569-1-tzimmermann-l3A5Bk7waGM@public.gmane.org>
                     ` (3 preceding siblings ...)
  2019-02-07  8:59   ` [PATCH 5/5] drm: Use the same mmap-range offset and size for GEM and TTM Thomas Zimmermann
@ 2019-02-07  9:36   ` Koenig, Christian
       [not found]     ` <e03e4cff-557b-9d50-dba8-94835e768743-5C7GfCeVMHo@public.gmane.org>
  4 siblings, 1 reply; 20+ messages in thread
From: Koenig, Christian @ 2019-02-07  9:36 UTC (permalink / raw)
  To: Thomas Zimmermann, Deucher, Alexander, Zhou, David(ChunMing),
	airlied-H+wXaHxf7aLQT0dZR+AlfA, kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	thellstrom-pghWNbHTmq7QT0dZR+AlfA,
	linux-graphics-maintainer-pghWNbHTmq7QT0dZR+AlfA,
	daniel-/w4YWyX8dFk, hdegoede-H+wXaHxf7aLQT0dZR+AlfA,
	arnd-r2nGTMty4D4, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, Huang,
	Ray, Zhang, Jerry
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

Am 07.02.19 um 09:59 schrieb Thomas Zimmermann:
> Almost all TTM-based drivers use the same values for the mmap-able
> range of BO addresses. Each driver therefore duplicates the
> DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
> configurable by drivers.
>
> This patch set replaces driver-specific configuration with a single
> setup. All code is located within TTM. TTM and GEM share the same
> range for mmap-able BOs.
>
> Thomas Zimmermann (5):
>    staging/vboxvideo: Use same BO mmap offset as other drivers
>    drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
>    drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
>    drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
>    drm: Use the same mmap-range offset and size for GEM and TTM

Reviewed-by: Christian König <christian.koenig@amd.com> for the whole 
series.

Nice cleanup! Thanks,
Christian.

>
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 12 ++----------
>   drivers/gpu/drm/ast/ast_drv.h               |  2 --
>   drivers/gpu/drm/ast/ast_ttm.c               | 10 ++--------
>   drivers/gpu/drm/bochs/bochs.h               |  2 --
>   drivers/gpu/drm/bochs/bochs_mm.c            | 10 ++--------
>   drivers/gpu/drm/cirrus/cirrus_drv.h         |  1 -
>   drivers/gpu/drm/cirrus/cirrus_ttm.c         | 10 ++--------
>   drivers/gpu/drm/drm_gem.c                   | 17 -----------------
>   drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 12 ++----------
>   drivers/gpu/drm/mgag200/mgag200_drv.h       |  1 -
>   drivers/gpu/drm/mgag200/mgag200_ttm.c       | 10 ++--------
>   drivers/gpu/drm/nouveau/nouveau_drv.h       |  2 --
>   drivers/gpu/drm/nouveau/nouveau_ttm.c       |  4 ----
>   drivers/gpu/drm/qxl/qxl_drv.h               |  3 ---
>   drivers/gpu/drm/qxl/qxl_ttm.c               | 11 +++--------
>   drivers/gpu/drm/radeon/radeon_ttm.c         | 13 ++-----------
>   drivers/gpu/drm/ttm/ttm_bo.c                |  6 +++---
>   drivers/gpu/drm/ttm/ttm_bo_vm.c             |  3 +++
>   drivers/gpu/drm/virtio/virtgpu_ttm.c        |  4 +---
>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         |  1 -
>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         |  1 -
>   drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 11 ++---------
>   drivers/staging/vboxvideo/vbox_drv.h        |  2 --
>   drivers/staging/vboxvideo/vbox_ttm.c        | 12 +++---------
>   include/drm/drm_vma_manager.h               | 12 ++++++++++++
>   include/drm/ttm/ttm_bo_driver.h             |  2 +-
>   26 files changed, 42 insertions(+), 132 deletions(-)
>

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
       [not found]     ` <e03e4cff-557b-9d50-dba8-94835e768743-5C7GfCeVMHo@public.gmane.org>
@ 2019-02-07  9:45       ` Thomas Zimmermann
       [not found]         ` <552aa321-98d4-344d-eda2-8441940b5811-l3A5Bk7waGM@public.gmane.org>
  0 siblings, 1 reply; 20+ messages in thread
From: Thomas Zimmermann @ 2019-02-07  9:45 UTC (permalink / raw)
  To: Koenig, Christian, Deucher, Alexander, Zhou, David(ChunMing),
	airlied-H+wXaHxf7aLQT0dZR+AlfA, kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	thellstrom-pghWNbHTmq7QT0dZR+AlfA,
	linux-graphics-maintainer-pghWNbHTmq7QT0dZR+AlfA,
	daniel-/w4YWyX8dFk, hdegoede-H+wXaHxf7aLQT0dZR+AlfA,
	arnd-r2nGTMty4D4, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, Huang,
	Ray, Zhang, Jerry
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA


[-- Attachment #1.1.1: Type: text/plain, Size: 3236 bytes --]

Am 07.02.19 um 10:36 schrieb Koenig, Christian:
> Am 07.02.19 um 09:59 schrieb Thomas Zimmermann:
>> Almost all TTM-based drivers use the same values for the mmap-able
>> range of BO addresses. Each driver therefore duplicates the
>> DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
>> configurable by drivers.
>>
>> This patch set replaces driver-specific configuration with a single
>> setup. All code is located within TTM. TTM and GEM share the same
>> range for mmap-able BOs.
>>
>> Thomas Zimmermann (5):
>>    staging/vboxvideo: Use same BO mmap offset as other drivers
>>    drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
>>    drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
>>    drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
>>    drm: Use the same mmap-range offset and size for GEM and TTM
> 
> Reviewed-by: Christian König <christian.koenig-5C7GfCeVMHo@public.gmane.org> for the whole 
> series.

That was quick! Thank you.

> 
> Nice cleanup! Thanks,
> Christian.
> 
>>
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 12 ++----------
>>   drivers/gpu/drm/ast/ast_drv.h               |  2 --
>>   drivers/gpu/drm/ast/ast_ttm.c               | 10 ++--------
>>   drivers/gpu/drm/bochs/bochs.h               |  2 --
>>   drivers/gpu/drm/bochs/bochs_mm.c            | 10 ++--------
>>   drivers/gpu/drm/cirrus/cirrus_drv.h         |  1 -
>>   drivers/gpu/drm/cirrus/cirrus_ttm.c         | 10 ++--------
>>   drivers/gpu/drm/drm_gem.c                   | 17 -----------------
>>   drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 12 ++----------
>>   drivers/gpu/drm/mgag200/mgag200_drv.h       |  1 -
>>   drivers/gpu/drm/mgag200/mgag200_ttm.c       | 10 ++--------
>>   drivers/gpu/drm/nouveau/nouveau_drv.h       |  2 --
>>   drivers/gpu/drm/nouveau/nouveau_ttm.c       |  4 ----
>>   drivers/gpu/drm/qxl/qxl_drv.h               |  3 ---
>>   drivers/gpu/drm/qxl/qxl_ttm.c               | 11 +++--------
>>   drivers/gpu/drm/radeon/radeon_ttm.c         | 13 ++-----------
>>   drivers/gpu/drm/ttm/ttm_bo.c                |  6 +++---
>>   drivers/gpu/drm/ttm/ttm_bo_vm.c             |  3 +++
>>   drivers/gpu/drm/virtio/virtgpu_ttm.c        |  4 +---
>>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         |  1 -
>>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         |  1 -
>>   drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 11 ++---------
>>   drivers/staging/vboxvideo/vbox_drv.h        |  2 --
>>   drivers/staging/vboxvideo/vbox_ttm.c        | 12 +++---------
>>   include/drm/drm_vma_manager.h               | 12 ++++++++++++
>>   include/drm/ttm/ttm_bo_driver.h             |  2 +-
>>   26 files changed, 42 insertions(+), 132 deletions(-)
>>
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nürnberg
Tel: +49-911-74053-0; Fax: +49-911-7417755;  https://www.suse.com/
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard,
Graham Norton, HRB 21284 (AG Nürnberg)


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
  2019-02-07  8:59   ` [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant Thomas Zimmermann
@ 2019-02-07  9:49     ` Thomas Zimmermann
  2019-02-07 19:07     ` Thomas Hellstrom via Virtualization
       [not found]     ` <20190207085931.29569-3-tzimmermann-l3A5Bk7waGM@public.gmane.org>
  2 siblings, 0 replies; 20+ messages in thread
From: Thomas Zimmermann @ 2019-02-07  9:49 UTC (permalink / raw)
  To: alexander.deucher, christian.koenig, David1.Zhou, airlied,
	kraxel, z.liuxinliang, zourongrong, kong.kongxinwei, puck.chen,
	bskeggs, thellstrom, linux-graphics-maintainer, daniel, hdegoede,
	arnd, gregkh, ray.huang, Jerry.Zhang
  Cc: spice-devel, amd-gfx, dri-devel, virtualization


[-- Attachment #1.1.1: Type: text/plain, Size: 9790 bytes --]

Hi

Am 07.02.19 um 09:59 schrieb Thomas Zimmermann:
> Most TTM drivers define the constant DRM_FILE_PAGE_OFFSET of the same
> value. The only exception is vboxvideo, which is being converted to the
> new offset by this patch. Unifying the constants in a single place
> simplifies the driver code.

Just a quick note: I just realized that the description is slightly
incorrect. vboxvideo got fixed in patch [01]. If it matters, remove the
second sentence before merging. (Or ping me to provide an updated patch.)

Best regards
Thomas

> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 2 --
>  drivers/gpu/drm/ast/ast_drv.h               | 2 --
>  drivers/gpu/drm/bochs/bochs.h               | 2 --
>  drivers/gpu/drm/cirrus/cirrus_drv.h         | 1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 2 --
>  drivers/gpu/drm/mgag200/mgag200_drv.h       | 1 -
>  drivers/gpu/drm/nouveau/nouveau_drv.h       | 2 --
>  drivers/gpu/drm/qxl/qxl_drv.h               | 3 ---
>  drivers/gpu/drm/radeon/radeon_ttm.c         | 2 --
>  drivers/gpu/drm/virtio/virtgpu_ttm.c        | 2 --
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         | 2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         | 1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 2 +-
>  drivers/staging/vboxvideo/vbox_drv.h        | 2 --
>  include/drm/ttm/ttm_bo_driver.h             | 2 ++
>  15 files changed, 4 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index b852abb9db0f..447960b3334a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -50,8 +50,6 @@
>  #include "amdgpu_sdma.h"
>  #include "bif/bif_4_1_d.h"
>  
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> -
>  static int amdgpu_map_buffer(struct ttm_buffer_object *bo,
>  			     struct ttm_mem_reg *mem, unsigned num_pages,
>  			     uint64_t offset, unsigned window,
> diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
> index bfc65040dfcb..c43b927f73af 100644
> --- a/drivers/gpu/drm/ast/ast_drv.h
> +++ b/drivers/gpu/drm/ast/ast_drv.h
> @@ -353,8 +353,6 @@ extern int ast_dumb_mmap_offset(struct drm_file *file,
>  				uint32_t handle,
>  				uint64_t *offset);
>  
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> -
>  int ast_mm_init(struct ast_private *ast);
>  void ast_mm_fini(struct ast_private *ast);
>  
> diff --git a/drivers/gpu/drm/bochs/bochs.h b/drivers/gpu/drm/bochs/bochs.h
> index 03711394f1ed..7425d083b944 100644
> --- a/drivers/gpu/drm/bochs/bochs.h
> +++ b/drivers/gpu/drm/bochs/bochs.h
> @@ -101,8 +101,6 @@ static inline struct bochs_bo *gem_to_bochs_bo(struct drm_gem_object *gem)
>  	return container_of(gem, struct bochs_bo, gem);
>  }
>  
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> -
>  static inline u64 bochs_bo_mmap_offset(struct bochs_bo *bo)
>  {
>  	return drm_vma_node_offset_addr(&bo->bo.vma_node);
> diff --git a/drivers/gpu/drm/cirrus/cirrus_drv.h b/drivers/gpu/drm/cirrus/cirrus_drv.h
> index f2b2e0d169fa..ba77507e9bad 100644
> --- a/drivers/gpu/drm/cirrus/cirrus_drv.h
> +++ b/drivers/gpu/drm/cirrus/cirrus_drv.h
> @@ -169,7 +169,6 @@ cirrus_bo(struct ttm_buffer_object *bo)
>  
>  
>  #define to_cirrus_obj(x) container_of(x, struct cirrus_gem_object, base)
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
>  
>  				/* cirrus_main.c */
>  int cirrus_device_init(struct cirrus_device *cdev,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
> index dd383267884c..a06725c2bbfa 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
> @@ -21,8 +21,6 @@
>  
>  #include "hibmc_drm_drv.h"
>  
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> -
>  static inline struct hibmc_drm_private *
>  hibmc_bdev(struct ttm_bo_device *bd)
>  {
> diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h
> index 0aaedc554879..706c902aad2d 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_drv.h
> +++ b/drivers/gpu/drm/mgag200/mgag200_drv.h
> @@ -269,7 +269,6 @@ mgag200_dumb_mmap_offset(struct drm_file *file,
>  struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev);
>  void mgag200_i2c_destroy(struct mga_i2c_chan *i2c);
>  
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
>  void mgag200_ttm_placement(struct mgag200_bo *bo, int domain);
>  
>  static inline int mgag200_bo_reserve(struct mgag200_bo *bo, bool no_wait)
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
> index d20b9ba4b1c1..c144bc79e872 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drv.h
> +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
> @@ -60,8 +60,6 @@
>  struct nouveau_channel;
>  struct platform_device;
>  
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> -
>  #include "nouveau_fence.h"
>  #include "nouveau_bios.h"
>  #include "nouveau_vmm.h"
> diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
> index 4a0331b3ff7d..2896bb6fdbf4 100644
> --- a/drivers/gpu/drm/qxl/qxl_drv.h
> +++ b/drivers/gpu/drm/qxl/qxl_drv.h
> @@ -65,9 +65,6 @@
>  extern int qxl_num_crtc;
>  extern int qxl_max_ioctls;
>  
> -#define DRM_FILE_OFFSET 0x100000000ULL
> -#define DRM_FILE_PAGE_OFFSET (DRM_FILE_OFFSET >> PAGE_SHIFT)
> -
>  #define QXL_INTERRUPT_MASK (\
>  	QXL_INTERRUPT_DISPLAY |\
>  	QXL_INTERRUPT_CURSOR |\
> diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
> index 9920a6fc11bf..071a872e5b02 100644
> --- a/drivers/gpu/drm/radeon/radeon_ttm.c
> +++ b/drivers/gpu/drm/radeon/radeon_ttm.c
> @@ -45,8 +45,6 @@
>  #include "radeon_reg.h"
>  #include "radeon.h"
>  
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> -
>  static int radeon_ttm_debugfs_init(struct radeon_device *rdev);
>  static void radeon_ttm_debugfs_fini(struct radeon_device *rdev);
>  
> diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c
> index 4bfbf25fabff..64f5b8dec3e9 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
> @@ -37,8 +37,6 @@
>  
>  #include <linux/delay.h>
>  
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> -
>  static struct
>  virtio_gpu_device *virtio_gpu_get_vgdev(struct ttm_bo_device *bdev)
>  {
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> index 4638f6791cda..e72edc68255d 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> @@ -868,7 +868,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
>  	ret = ttm_bo_device_init(&dev_priv->bdev,
>  				 &vmw_bo_driver,
>  				 dev->anon_inode->i_mapping,
> -				 VMWGFX_FILE_PAGE_OFFSET,
> +				 DRM_FILE_PAGE_OFFSET,
>  				 false);
>  	if (unlikely(ret != 0)) {
>  		DRM_ERROR("Failed initializing TTM buffer object driver.\n");
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
> index accb2fafe2f1..6302c12c2298 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
> @@ -48,7 +48,6 @@
>  #define VMWGFX_DRIVER_MAJOR 2
>  #define VMWGFX_DRIVER_MINOR 15
>  #define VMWGFX_DRIVER_PATCHLEVEL 0
> -#define VMWGFX_FILE_PAGE_OFFSET 0x00100000
>  #define VMWGFX_FIFO_STATIC_SIZE (1024*1024)
>  #define VMWGFX_MAX_RELOCATIONS 2048
>  #define VMWGFX_MAX_VALIDATIONS 2048
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c
> index e6d75e377dd8..ec5b4b237f2c 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c
> @@ -33,7 +33,7 @@ int vmw_mmap(struct file *filp, struct vm_area_struct *vma)
>  	struct drm_file *file_priv;
>  	struct vmw_private *dev_priv;
>  
> -	if (unlikely(vma->vm_pgoff < VMWGFX_FILE_PAGE_OFFSET)) {
> +	if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET)) {
>  		DRM_ERROR("Illegal attempt to mmap old fifo space.\n");
>  		return -EINVAL;
>  	}
> diff --git a/drivers/staging/vboxvideo/vbox_drv.h b/drivers/staging/vboxvideo/vbox_drv.h
> index eba5a8bc9cea..77f2a4e9000e 100644
> --- a/drivers/staging/vboxvideo/vbox_drv.h
> +++ b/drivers/staging/vboxvideo/vbox_drv.h
> @@ -209,8 +209,6 @@ int vbox_dumb_mmap_offset(struct drm_file *file,
>  			  struct drm_device *dev,
>  			  u32 handle, u64 *offset);
>  
> -#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> -
>  int vbox_mm_init(struct vbox_private *vbox);
>  void vbox_mm_fini(struct vbox_private *vbox);
>  
> diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
> index cbf3180cb612..c0bed72492f3 100644
> --- a/include/drm/ttm/ttm_bo_driver.h
> +++ b/include/drm/ttm/ttm_bo_driver.h
> @@ -49,6 +49,8 @@
>  #define TTM_MEMTYPE_FLAG_MAPPABLE      (1 << 1)	/* Memory mappable */
>  #define TTM_MEMTYPE_FLAG_CMA           (1 << 3)	/* Can't map aperture */
>  
> +#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> +
>  struct ttm_mem_type_manager;
>  
>  struct ttm_mem_type_manager_func {
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nürnberg
Tel: +49-911-74053-0; Fax: +49-911-7417755;  https://www.suse.com/
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard,
Graham Norton, HRB 21284 (AG Nürnberg)


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
  2019-02-07  8:59   ` [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant Thomas Zimmermann
  2019-02-07  9:49     ` Thomas Zimmermann
@ 2019-02-07 19:07     ` Thomas Hellstrom via Virtualization
       [not found]     ` <20190207085931.29569-3-tzimmermann-l3A5Bk7waGM@public.gmane.org>
  2 siblings, 0 replies; 20+ messages in thread
From: Thomas Hellstrom via Virtualization @ 2019-02-07 19:07 UTC (permalink / raw)
  To: kraxel, zourongrong, christian.koenig, hdegoede, tzimmermann,
	alexander.deucher, David1.Zhou, ray.huang, bskeggs,
	kong.kongxinwei, airlied, daniel, Jerry.Zhang,
	Linux-graphics-maintainer, gregkh, z.liuxinliang, puck.chen,
	arnd
  Cc: spice-devel, amd-gfx, dri-devel, virtualization

On Thu, 2019-02-07 at 09:59 +0100, Thomas Zimmermann wrote:
> Most TTM drivers define the constant DRM_FILE_PAGE_OFFSET of the same
> value. The only exception is vboxvideo, which is being converted to
> the
> new offset by this patch. Unifying the constants in a single place
> simplifies the driver code.
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 2 --
>  drivers/gpu/drm/ast/ast_drv.h               | 2 --
>  drivers/gpu/drm/bochs/bochs.h               | 2 --
>  drivers/gpu/drm/cirrus/cirrus_drv.h         | 1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 2 --
>  drivers/gpu/drm/mgag200/mgag200_drv.h       | 1 -
>  drivers/gpu/drm/nouveau/nouveau_drv.h       | 2 --
>  drivers/gpu/drm/qxl/qxl_drv.h               | 3 ---
>  drivers/gpu/drm/radeon/radeon_ttm.c         | 2 --
>  drivers/gpu/drm/virtio/virtgpu_ttm.c        | 2 --
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         | 2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         | 1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 2 +-
>  drivers/staging/vboxvideo/vbox_drv.h        | 2 --
>  include/drm/ttm/ttm_bo_driver.h             | 2 ++
>  15 files changed, 4 insertions(+), 24 deletions(-)
> 
> 

...

> diff --git a/include/drm/ttm/ttm_bo_driver.h
> b/include/drm/ttm/ttm_bo_driver.h
> index cbf3180cb612..c0bed72492f3 100644
> --- a/include/drm/ttm/ttm_bo_driver.h
> +++ b/include/drm/ttm/ttm_bo_driver.h
> @@ -49,6 +49,8 @@
>  #define TTM_MEMTYPE_FLAG_MAPPABLE      (1 << 1)	/* Memory
> mappable */
>  #define TTM_MEMTYPE_FLAG_CMA           (1 << 3)	/* Can't map
> aperture */
>  
> +#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> +

IMO strictly, the place in the drm file address space where a driver
chooses to insert the TTM bo address space is to be determined by DRM,
(as also the define indicates) rather than TTM. So I think the right
place for this define is a drm header, not a ttm header.

Thanks,
Thomas


>  struct ttm_mem_type_manager;
>  
>  struct ttm_mem_type_manager_func {

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
       [not found]     ` <20190207085931.29569-3-tzimmermann-l3A5Bk7waGM@public.gmane.org>
@ 2019-02-07 19:07       ` Thomas Hellstrom
  2019-02-08  7:58         ` Thomas Zimmermann
  0 siblings, 1 reply; 20+ messages in thread
From: Thomas Hellstrom @ 2019-02-07 19:07 UTC (permalink / raw)
  To: kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w, christian.koenig-5C7GfCeVMHo,
	hdegoede-H+wXaHxf7aLQT0dZR+AlfA, tzimmermann-l3A5Bk7waGM,
	alexander.deucher-5C7GfCeVMHo, David1.Zhou-5C7GfCeVMHo,
	ray.huang-5C7GfCeVMHo, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	airlied-H+wXaHxf7aLQT0dZR+AlfA, daniel-/w4YWyX8dFk,
	Jerry.Zhang-5C7GfCeVMHo, Linux-graphics-maintainer,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, arnd-r2nGTMty4D4
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

On Thu, 2019-02-07 at 09:59 +0100, Thomas Zimmermann wrote:
> Most TTM drivers define the constant DRM_FILE_PAGE_OFFSET of the same
> value. The only exception is vboxvideo, which is being converted to
> the
> new offset by this patch. Unifying the constants in a single place
> simplifies the driver code.
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 2 --
>  drivers/gpu/drm/ast/ast_drv.h               | 2 --
>  drivers/gpu/drm/bochs/bochs.h               | 2 --
>  drivers/gpu/drm/cirrus/cirrus_drv.h         | 1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 2 --
>  drivers/gpu/drm/mgag200/mgag200_drv.h       | 1 -
>  drivers/gpu/drm/nouveau/nouveau_drv.h       | 2 --
>  drivers/gpu/drm/qxl/qxl_drv.h               | 3 ---
>  drivers/gpu/drm/radeon/radeon_ttm.c         | 2 --
>  drivers/gpu/drm/virtio/virtgpu_ttm.c        | 2 --
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         | 2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         | 1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 2 +-
>  drivers/staging/vboxvideo/vbox_drv.h        | 2 --
>  include/drm/ttm/ttm_bo_driver.h             | 2 ++
>  15 files changed, 4 insertions(+), 24 deletions(-)
> 
> 

...

> diff --git a/include/drm/ttm/ttm_bo_driver.h
> b/include/drm/ttm/ttm_bo_driver.h
> index cbf3180cb612..c0bed72492f3 100644
> --- a/include/drm/ttm/ttm_bo_driver.h
> +++ b/include/drm/ttm/ttm_bo_driver.h
> @@ -49,6 +49,8 @@
>  #define TTM_MEMTYPE_FLAG_MAPPABLE      (1 << 1)	/* Memory
> mappable */
>  #define TTM_MEMTYPE_FLAG_CMA           (1 << 3)	/* Can't map
> aperture */
>  
> +#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
> +

IMO strictly, the place in the drm file address space where a driver
chooses to insert the TTM bo address space is to be determined by DRM,
(as also the define indicates) rather than TTM. So I think the right
place for this define is a drm header, not a ttm header.

Thanks,
Thomas


>  struct ttm_mem_type_manager;
>  
>  struct ttm_mem_type_manager_func {
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
  2019-02-07 19:07       ` Thomas Hellstrom
@ 2019-02-08  7:58         ` Thomas Zimmermann
  0 siblings, 0 replies; 20+ messages in thread
From: Thomas Zimmermann @ 2019-02-08  7:58 UTC (permalink / raw)
  To: Thomas Hellstrom, kraxel, zourongrong, christian.koenig,
	hdegoede, alexander.deucher, David1.Zhou, ray.huang, bskeggs,
	kong.kongxinwei, airlied, daniel, Jerry.Zhang,
	Linux-graphics-maintainer, gregkh, z.liuxinliang, puck.chen,
	arnd
  Cc: spice-devel, dri-devel, amd-gfx, virtualization


[-- Attachment #1.1.1: Type: text/plain, Size: 1533 bytes --]

Hi

Am 07.02.19 um 20:07 schrieb Thomas Hellstrom:
> 
>> diff --git a/include/drm/ttm/ttm_bo_driver.h
>> b/include/drm/ttm/ttm_bo_driver.h
>> index cbf3180cb612..c0bed72492f3 100644
>> --- a/include/drm/ttm/ttm_bo_driver.h
>> +++ b/include/drm/ttm/ttm_bo_driver.h
>> @@ -49,6 +49,8 @@
>>  #define TTM_MEMTYPE_FLAG_MAPPABLE      (1 << 1)	/* Memory
>> mappable */
>>  #define TTM_MEMTYPE_FLAG_CMA           (1 << 3)	/* Can't map
>> aperture */
>>  
>> +#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
>> +
> 
> IMO strictly, the place in the drm file address space where a driver
> chooses to insert the TTM bo address space is to be determined by DRM,
> (as also the define indicates) rather than TTM. So I think the right
> place for this define is a drm header, not a ttm header.

I put this here temporarily for the cleanup. But it gets fixed by patch
[05], which moves the constants into drm_vma_manager.h

Best regards
Thomas

> 
> Thanks,
> Thomas
> 
> 
>>  struct ttm_mem_type_manager;
>>  
>>  struct ttm_mem_type_manager_func {
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nürnberg
Tel: +49-911-74053-0; Fax: +49-911-7417755;  https://www.suse.com/
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard,
Graham Norton, HRB 21284 (AG Nürnberg)


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
  2019-02-07  8:59 [PATCH 0/5] Clean up TTM mmap offsets Thomas Zimmermann
                   ` (3 preceding siblings ...)
  2019-02-15 15:25 ` Hans de Goede via dri-devel
@ 2019-02-15 15:25 ` Hans de Goede
  2019-03-11 16:39 ` Hans de Goede
  5 siblings, 0 replies; 20+ messages in thread
From: Hans de Goede @ 2019-02-15 15:25 UTC (permalink / raw)
  To: Thomas Zimmermann, alexander.deucher, christian.koenig,
	David1.Zhou, airlied, kraxel, z.liuxinliang, zourongrong,
	kong.kongxinwei, puck.chen, bskeggs, thellstrom,
	linux-graphics-maintainer, daniel, arnd, gregkh, ray.huang,
	Jerry.Zhang
  Cc: spice-devel, amd-gfx, dri-devel, virtualization

Hi,

On 2/7/19 9:59 AM, Thomas Zimmermann wrote:
> Almost all TTM-based drivers use the same values for the mmap-able
> range of BO addresses. Each driver therefore duplicates the
> DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
> configurable by drivers.
> 
> This patch set replaces driver-specific configuration with a single
> setup. All code is located within TTM. TTM and GEM share the same
> range for mmap-able BOs.
> 
> Thomas Zimmermann (5):
>    staging/vboxvideo: Use same BO mmap offset as other drivers
>    drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
>    drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
>    drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
>    drm: Use the same mmap-range offset and size for GEM and TTM

The first patch looks good to me:

Reviewed-by: Hans de Goede <hdegoede@redhat.com>

The vboxvideo bits in the other patches look good to me to:

Acked-by: Hans de Goede <hdegoede@redhat.com>

For the other patches in the series.

Regards,

Hans

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
  2019-02-07  8:59 [PATCH 0/5] Clean up TTM mmap offsets Thomas Zimmermann
                   ` (2 preceding siblings ...)
       [not found] ` <20190207085931.29569-1-tzimmermann-l3A5Bk7waGM@public.gmane.org>
@ 2019-02-15 15:25 ` Hans de Goede via dri-devel
  2019-02-15 15:25 ` Hans de Goede
  2019-03-11 16:39 ` Hans de Goede
  5 siblings, 0 replies; 20+ messages in thread
From: Hans de Goede via dri-devel @ 2019-02-15 15:25 UTC (permalink / raw)
  To: Thomas Zimmermann, alexander.deucher, christian.koenig,
	David1.Zhou, airlied, kraxel, z.liuxinliang, zourongrong,
	kong.kongxinwei, puck.chen, bskeggs, thellstrom,
	linux-graphics-maintainer, daniel, arnd, gregkh, ray.huang,
	Jerry.Zhang
  Cc: spice-devel, amd-gfx, dri-devel, virtualization

Hi,

On 2/7/19 9:59 AM, Thomas Zimmermann wrote:
> Almost all TTM-based drivers use the same values for the mmap-able
> range of BO addresses. Each driver therefore duplicates the
> DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
> configurable by drivers.
> 
> This patch set replaces driver-specific configuration with a single
> setup. All code is located within TTM. TTM and GEM share the same
> range for mmap-able BOs.
> 
> Thomas Zimmermann (5):
>    staging/vboxvideo: Use same BO mmap offset as other drivers
>    drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
>    drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
>    drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
>    drm: Use the same mmap-range offset and size for GEM and TTM

The first patch looks good to me:

Reviewed-by: Hans de Goede <hdegoede@redhat.com>

The vboxvideo bits in the other patches look good to me to:

Acked-by: Hans de Goede <hdegoede@redhat.com>

For the other patches in the series.

Regards,

Hans

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
       [not found]         ` <552aa321-98d4-344d-eda2-8441940b5811-l3A5Bk7waGM@public.gmane.org>
@ 2019-02-26 13:01           ` Christian König
  0 siblings, 0 replies; 20+ messages in thread
From: Christian König @ 2019-02-26 13:01 UTC (permalink / raw)
  To: Thomas Zimmermann, Koenig, Christian, Deucher, Alexander, Zhou,
	David(ChunMing),
	airlied-H+wXaHxf7aLQT0dZR+AlfA, kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	thellstrom-pghWNbHTmq7QT0dZR+AlfA,
	linux-graphics-maintainer-pghWNbHTmq7QT0dZR+AlfA,
	daniel-/w4YWyX8dFk, hdegoede-H+wXaHxf7aLQT0dZR+AlfA,
	arnd-r2nGTMty4D4, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, Huang,
	Ray
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA


[-- Attachment #1.1: Type: text/plain, Size: 3313 bytes --]

Am 07.02.19 um 10:45 schrieb Thomas Zimmermann:
> Am 07.02.19 um 10:36 schrieb Koenig, Christian:
>> Am 07.02.19 um 09:59 schrieb Thomas Zimmermann:
>>> Almost all TTM-based drivers use the same values for the mmap-able
>>> range of BO addresses. Each driver therefore duplicates the
>>> DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
>>> configurable by drivers.
>>>
>>> This patch set replaces driver-specific configuration with a single
>>> setup. All code is located within TTM. TTM and GEM share the same
>>> range for mmap-able BOs.
>>>
>>> Thomas Zimmermann (5):
>>>     staging/vboxvideo: Use same BO mmap offset as other drivers
>>>     drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
>>>     drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
>>>     drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
>>>     drm: Use the same mmap-range offset and size for GEM and TTM
>> Reviewed-by: Christian König <christian.koenig-5C7GfCeVMHo@public.gmane.org> for the whole
>> series.
> That was quick! Thank you.

FYI I just pushed this series into our internal branch for upstreaming.

Regards,
Christian.

>
>> Nice cleanup! Thanks,
>> Christian.
>>
>>>    drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c     | 12 ++----------
>>>    drivers/gpu/drm/ast/ast_drv.h               |  2 --
>>>    drivers/gpu/drm/ast/ast_ttm.c               | 10 ++--------
>>>    drivers/gpu/drm/bochs/bochs.h               |  2 --
>>>    drivers/gpu/drm/bochs/bochs_mm.c            | 10 ++--------
>>>    drivers/gpu/drm/cirrus/cirrus_drv.h         |  1 -
>>>    drivers/gpu/drm/cirrus/cirrus_ttm.c         | 10 ++--------
>>>    drivers/gpu/drm/drm_gem.c                   | 17 -----------------
>>>    drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 12 ++----------
>>>    drivers/gpu/drm/mgag200/mgag200_drv.h       |  1 -
>>>    drivers/gpu/drm/mgag200/mgag200_ttm.c       | 10 ++--------
>>>    drivers/gpu/drm/nouveau/nouveau_drv.h       |  2 --
>>>    drivers/gpu/drm/nouveau/nouveau_ttm.c       |  4 ----
>>>    drivers/gpu/drm/qxl/qxl_drv.h               |  3 ---
>>>    drivers/gpu/drm/qxl/qxl_ttm.c               | 11 +++--------
>>>    drivers/gpu/drm/radeon/radeon_ttm.c         | 13 ++-----------
>>>    drivers/gpu/drm/ttm/ttm_bo.c                |  6 +++---
>>>    drivers/gpu/drm/ttm/ttm_bo_vm.c             |  3 +++
>>>    drivers/gpu/drm/virtio/virtgpu_ttm.c        |  4 +---
>>>    drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         |  1 -
>>>    drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         |  1 -
>>>    drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c    | 11 ++---------
>>>    drivers/staging/vboxvideo/vbox_drv.h        |  2 --
>>>    drivers/staging/vboxvideo/vbox_ttm.c        | 12 +++---------
>>>    include/drm/drm_vma_manager.h               | 12 ++++++++++++
>>>    include/drm/ttm/ttm_bo_driver.h             |  2 +-
>>>    26 files changed, 42 insertions(+), 132 deletions(-)
>>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


[-- Attachment #1.2: Type: text/html, Size: 4958 bytes --]

[-- Attachment #2: Type: text/plain, Size: 153 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
  2019-02-07  8:59 [PATCH 0/5] Clean up TTM mmap offsets Thomas Zimmermann
                   ` (4 preceding siblings ...)
  2019-02-15 15:25 ` Hans de Goede
@ 2019-03-11 16:39 ` Hans de Goede
       [not found]   ` <2509b876-8335-4be6-b33b-bbf11a73145f-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  5 siblings, 1 reply; 20+ messages in thread
From: Hans de Goede @ 2019-03-11 16:39 UTC (permalink / raw)
  To: Thomas Zimmermann, alexander.deucher, christian.koenig,
	David1.Zhou, airlied, kraxel, z.liuxinliang, zourongrong,
	kong.kongxinwei, puck.chen, bskeggs, thellstrom,
	linux-graphics-maintainer, daniel, arnd, gregkh, ray.huang,
	Jerry.Zhang
  Cc: spice-devel, amd-gfx, dri-devel, virtualization

Hi,

On 07-02-19 09:59, Thomas Zimmermann wrote:
> Almost all TTM-based drivers use the same values for the mmap-able
> range of BO addresses. Each driver therefore duplicates the
> DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
> configurable by drivers.
> 
> This patch set replaces driver-specific configuration with a single
> setup. All code is located within TTM. TTM and GEM share the same
> range for mmap-able BOs.
> 
> Thomas Zimmermann (5):
>    staging/vboxvideo: Use same BO mmap offset as other drivers
>    drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
>    drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
>    drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
>    drm: Use the same mmap-range offset and size for GEM and TTM

Note I'm about to push a patch-series to drm-misc-next which moves
vboxvideo out of staging and I see that this series has not landed
in drm-misc-next yet, so it will needs to be rebased.

Regards,

Hans

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
       [not found]   ` <2509b876-8335-4be6-b33b-bbf11a73145f-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2019-03-11 16:51     ` Christian König
  2019-03-11 17:00       ` Hans de Goede
  2019-03-11 17:02       ` Daniel Vetter
  0 siblings, 2 replies; 20+ messages in thread
From: Christian König @ 2019-03-11 16:51 UTC (permalink / raw)
  To: Hans de Goede, Thomas Zimmermann, alexander.deucher-5C7GfCeVMHo,
	christian.koenig-5C7GfCeVMHo, David1.Zhou-5C7GfCeVMHo,
	airlied-H+wXaHxf7aLQT0dZR+AlfA, kraxel-H+wXaHxf7aLQT0dZR+AlfA,
	z.liuxinliang-C8/M+/jPZTeaMJb+Lgu22Q,
	zourongrong-Re5JQEeQqe8AvxtiuMwx3w,
	kong.kongxinwei-C8/M+/jPZTeaMJb+Lgu22Q,
	puck.chen-C8/M+/jPZTeaMJb+Lgu22Q, bskeggs-H+wXaHxf7aLQT0dZR+AlfA,
	thellstrom-pghWNbHTmq7QT0dZR+AlfA,
	linux-graphics-maintainer-pghWNbHTmq7QT0dZR+AlfA,
	daniel-/w4YWyX8dFk, arnd-r2nGTMty4D4,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, ray.huang-5C7GfCeVMHo,
	Jerry.Zhang-5C7GfCeVMHo
  Cc: spice-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

Am 11.03.19 um 17:39 schrieb Hans de Goede:
> Hi,
>
> On 07-02-19 09:59, Thomas Zimmermann wrote:
>> Almost all TTM-based drivers use the same values for the mmap-able
>> range of BO addresses. Each driver therefore duplicates the
>> DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
>> configurable by drivers.
>>
>> This patch set replaces driver-specific configuration with a single
>> setup. All code is located within TTM. TTM and GEM share the same
>> range for mmap-able BOs.
>>
>> Thomas Zimmermann (5):
>>    staging/vboxvideo: Use same BO mmap offset as other drivers
>>    drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
>>    drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
>>    drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
>>    drm: Use the same mmap-range offset and size for GEM and TTM
>
> Note I'm about to push a patch-series to drm-misc-next which moves
> vboxvideo out of staging and I see that this series has not landed
> in drm-misc-next yet, so it will needs to be rebased.

Mhm, TTM is usually not pushed upstream through drm-misc-next, so that 
will certainly collide with the next TTM pull request.

So can you wait with that or should I make an exception and merge this 
change though drm-misc-next?

Christian.

>
> Regards,
>
> Hans
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
  2019-03-11 16:51     ` Christian König
@ 2019-03-11 17:00       ` Hans de Goede
  2019-03-11 17:02       ` Daniel Vetter
  1 sibling, 0 replies; 20+ messages in thread
From: Hans de Goede @ 2019-03-11 17:00 UTC (permalink / raw)
  To: christian.koenig, Thomas Zimmermann, alexander.deucher,
	David1.Zhou, airlied, kraxel, z.liuxinliang, zourongrong,
	kong.kongxinwei, puck.chen, bskeggs, thellstrom,
	linux-graphics-maintainer, daniel, arnd, gregkh, ray.huang,
	Jerry.Zhang
  Cc: spice-devel, dri-devel, amd-gfx, virtualization

Hi,

On 11-03-19 17:51, Christian König wrote:
> Am 11.03.19 um 17:39 schrieb Hans de Goede:
>> Hi,
>>
>> On 07-02-19 09:59, Thomas Zimmermann wrote:
>>> Almost all TTM-based drivers use the same values for the mmap-able
>>> range of BO addresses. Each driver therefore duplicates the
>>> DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
>>> configurable by drivers.
>>>
>>> This patch set replaces driver-specific configuration with a single
>>> setup. All code is located within TTM. TTM and GEM share the same
>>> range for mmap-able BOs.
>>>
>>> Thomas Zimmermann (5):
>>>    staging/vboxvideo: Use same BO mmap offset as other drivers
>>>    drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
>>>    drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
>>>    drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
>>>    drm: Use the same mmap-range offset and size for GEM and TTM
>>
>> Note I'm about to push a patch-series to drm-misc-next which moves
>> vboxvideo out of staging and I see that this series has not landed
>> in drm-misc-next yet, so it will needs to be rebased.
> 
> Mhm, TTM is usually not pushed upstream through drm-misc-next, so that will certainly collide with the next TTM pull request.

Ugh, I didn't realize that this series would not be going through drm-misc-next.

> So can you wait with that or should I make an exception and merge this change though drm-misc-next?

I've already pushed it now :| My mail was more intended as a headsup then
that I expected an objection, sorry.

I see 2 possible solutions:

1) Merge drm-misc-next into the ttm tree (probably the cleanest)
2) Push your series through drm-misc-next

Regards,

Hans
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 0/5] Clean up TTM mmap offsets
  2019-03-11 16:51     ` Christian König
  2019-03-11 17:00       ` Hans de Goede
@ 2019-03-11 17:02       ` Daniel Vetter
  1 sibling, 0 replies; 20+ messages in thread
From: Daniel Vetter @ 2019-03-11 17:02 UTC (permalink / raw)
  To: christian.koenig
  Cc: dri-devel, virtualization, ray.huang, alexander.deucher,
	David1.Zhou, thellstrom, amd-gfx, z.liuxinliang, kong.kongxinwei,
	linux-graphics-maintainer, bskeggs, spice-devel,
	Thomas Zimmermann, arnd, puck.chen, Hans de Goede, airlied,
	Jerry.Zhang, gregkh, daniel, zourongrong

On Mon, Mar 11, 2019 at 05:51:39PM +0100, Christian König wrote:
> Am 11.03.19 um 17:39 schrieb Hans de Goede:
> > Hi,
> > 
> > On 07-02-19 09:59, Thomas Zimmermann wrote:
> > > Almost all TTM-based drivers use the same values for the mmap-able
> > > range of BO addresses. Each driver therefore duplicates the
> > > DRM_FILE_PAGE_OFFSET constant. OTOH, the mmap range's size is not
> > > configurable by drivers.
> > > 
> > > This patch set replaces driver-specific configuration with a single
> > > setup. All code is located within TTM. TTM and GEM share the same
> > > range for mmap-able BOs.
> > > 
> > > Thomas Zimmermann (5):
> > >    staging/vboxvideo: Use same BO mmap offset as other drivers
> > >    drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant
> > >    drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
> > >    drm/ttm: Quick-test mmap offset in ttm_bo_mmap()
> > >    drm: Use the same mmap-range offset and size for GEM and TTM
> > 
> > Note I'm about to push a patch-series to drm-misc-next which moves
> > vboxvideo out of staging and I see that this series has not landed
> > in drm-misc-next yet, so it will needs to be rebased.
> 
> Mhm, TTM is usually not pushed upstream through drm-misc-next, so that will
> certainly collide with the next TTM pull request.
> 
> So can you wait with that or should I make an exception and merge this
> change though drm-misc-next?

Other options:
- Get amdgpu added to drm-tip and linux-next so we have a heads-up about
  the conflict. That's usually good enough to avoid the broken merge
  conflict.
- Do a topic branch, pull it into both trees.
- Really stuff ttm into a shared tree if it's meant to be shared
  infrastructure :-P

Waiting+rebasing is imo the worst option, and usually not needed.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2019-03-11 17:02 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-07  8:59 [PATCH 0/5] Clean up TTM mmap offsets Thomas Zimmermann
2019-02-07  8:59 ` [PATCH 4/5] drm/ttm: Quick-test mmap offset in ttm_bo_mmap() Thomas Zimmermann
2019-02-07  9:36 ` [PATCH 0/5] Clean up TTM mmap offsets Koenig, Christian
     [not found] ` <20190207085931.29569-1-tzimmermann-l3A5Bk7waGM@public.gmane.org>
2019-02-07  8:59   ` [PATCH 1/5] staging/vboxvideo: Use same BO mmap offset as other drivers Thomas Zimmermann
2019-02-07  8:59   ` [PATCH 2/5] drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant Thomas Zimmermann
2019-02-07  9:49     ` Thomas Zimmermann
2019-02-07 19:07     ` Thomas Hellstrom via Virtualization
     [not found]     ` <20190207085931.29569-3-tzimmermann-l3A5Bk7waGM@public.gmane.org>
2019-02-07 19:07       ` Thomas Hellstrom
2019-02-08  7:58         ` Thomas Zimmermann
2019-02-07  8:59   ` [PATCH 3/5] drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init() Thomas Zimmermann
2019-02-07  8:59   ` [PATCH 5/5] drm: Use the same mmap-range offset and size for GEM and TTM Thomas Zimmermann
2019-02-07  9:36   ` [PATCH 0/5] Clean up TTM mmap offsets Koenig, Christian
     [not found]     ` <e03e4cff-557b-9d50-dba8-94835e768743-5C7GfCeVMHo@public.gmane.org>
2019-02-07  9:45       ` Thomas Zimmermann
     [not found]         ` <552aa321-98d4-344d-eda2-8441940b5811-l3A5Bk7waGM@public.gmane.org>
2019-02-26 13:01           ` Christian König
2019-02-15 15:25 ` Hans de Goede via dri-devel
2019-02-15 15:25 ` Hans de Goede
2019-03-11 16:39 ` Hans de Goede
     [not found]   ` <2509b876-8335-4be6-b33b-bbf11a73145f-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2019-03-11 16:51     ` Christian König
2019-03-11 17:00       ` Hans de Goede
2019-03-11 17:02       ` Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.