* [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.