search for: nouveau_bo_move_m2mf

Displaying 20 results from an estimated 30 matches for "nouveau_bo_move_m2mf".

2023 Jan 28
1
[PATCH] nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf
...ly, but I believe I can give some context: On Sat, Jan 28, 2023 at 06:51:08PM +0100, Greg KH wrote: > On Sat, Jan 28, 2023 at 03:49:59PM +0100, Computer Enthusiastic wrote: > > Hello, > > > > The patch "[Nouveau] [PATCH] nouveau: explicitly wait on the fence in > > nouveau_bo_move_m2mf" [1] was marked for kernels v5.15+ and it was merged > > upstream. > > > > The same patch [1] works with kernel 5.10.y, but it is not been merged > > upstream so far. > > > > According to Karol Herbst suggestion [2], I'm sending this message to ask &gt...
2022 Aug 19
4
[PATCH] nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf
...au/nouveau_bo.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 35bb0bb3fe61..126b3c6e12f9 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -822,6 +822,15 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, if (ret == 0) { ret = nouveau_fence_new(chan, false, &fence); if (ret == 0) { + /* TODO: figure out a better solution here + * + * wait on the fence here explicitly as going through + * ttm_bo_move_accel_cleanup somehow doesn...
2023 Jan 30
1
[PATCH] nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf
..., Jan 28, 2023 at 06:51:08PM +0100, Greg KH wrote: > > > On Sat, Jan 28, 2023 at 03:49:59PM +0100, Computer Enthusiastic wrote: > > > > Hello, > > > > > > > > The patch "[Nouveau] [PATCH] nouveau: explicitly wait on the fence in > > > > nouveau_bo_move_m2mf" [1] was marked for kernels v5.15+ and it was merged > > > > upstream. > > > > > > > > The same patch [1] works with kernel 5.10.y, but it is not been merged > > > > upstream so far. > > > > > > > > According to Karol He...
2013 Jul 01
1
[PATCH] drm/nouveau: fix locking in nouveau_crtc_page_flip
...============================================ [ INFO: possible circular locking dependency detected ] 3.10.0-rc7+ #101 Not tainted ------------------------------------------------------- mplayer/4979 is trying to acquire lock: (&drm_client_lock_class_key){+.+.+.}, at: [<ffffffffa0346b66>] nouveau_bo_move_m2mf.isra.13+0x4d/0x130 [nouveau] but task is already holding lock: (reservation_ww_class_mutex){+.+.+.}, at: [<ffffffffa019ab8b>] ttm_bo_vm_fault+0x47/0x394 [ttm] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (reservation_ww_class_...
2020 Aug 02
2
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...o.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 7806278dce57..a7b2a9bb0ffe 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -776,7 +776,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, return ret; } - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); + if (drm_drv_uses_atomic_modeset(drm->dev)) + mutex_lock(&cli->mutex); + else + mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); + ret...
2020 Sep 17
2
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...(-) > > > > diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c > > index 7806278dce57..a7b2a9bb0ffe 100644 > > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c > > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c > > @@ -776,7 +776,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, > > return ret; > > } > > > > - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); > > + if (drm_drv_uses_atomic_modeset(drm->dev)) > > + mutex_lock(&...
2020 Sep 30
2
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...vers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c > > > > index 7806278dce57..a7b2a9bb0ffe 100644 > > > > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c > > > > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c > > > > @@ -776,7 +776,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, > > > > return ret; > > > > } > > > > > > > > - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); > > > > + if (drm_drv_uses_atomic_modeset(...
2020 Sep 30
1
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...ers/gpu/drm/nouveau/nouveau_bo.c > > > > > > index 7806278dce57..a7b2a9bb0ffe 100644 > > > > > > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c > > > > > > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c > > > > > > @@ -776,7 +776,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, > > > > > > return ret; > > > > > > } > > > > > > > > > > > > - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); > > > &gt...
2017 Aug 13
1
[Bug 102192] New: Dell XPS 15 9560: PU: 1 PID: 58 at drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c:190 gf100_vm_flush+0x1b3/0x1c0
...[nouveau] [ 1730.734272] nvkm_vm_unmap+0x1b/0x20 [nouveau] [ 1730.734288] nouveau_vram_manager_del+0x60/0x80 [nouveau] [ 1730.734291] ttm_bo_mem_put+0x2a/0x30 [ttm] [ 1730.734293] ttm_bo_move_accel_cleanup+0x10c/0x200 [ttm] [ 1730.734308] ? nouveau_fence_new+0x58/0x90 [nouveau] [ 1730.734324] nouveau_bo_move_m2mf.constprop.14+0x170/0x1a0 [nouveau] [ 1730.734340] nouveau_bo_move+0xac/0x430 [nouveau] [ 1730.734342] ttm_bo_handle_move_mem+0x280/0x5b0 [ttm] [ 1730.734344] ttm_bo_evict+0x116/0x2b0 [ttm] [ 1730.734346] ? find_busiest_group+0x122/0x980 [ 1730.734354] ? drm_rect_debug_print+0x31/0xc0 [drm] [ 1...
2009 Dec 19
1
[PATCH] drm/nouveau: always do buffer object moves on bo->channel
...nvbo->bo.bdev)->channel) { - if (mem->mem_type == TTM_PL_TT) - return NvDmaGART; - return NvDmaVRAM; - } - if (mem->mem_type == TTM_PL_TT) - return chan->gart_handle; - return chan->vram_handle; + return NvDmaGART; + return NvDmaVRAM; } static int @@ -495,22 +489,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, int ret; chan = nvbo->channel; - if (!chan || nvbo->tile_flags || nvbo->no_vm) + if (!chan) chan = dev_priv->channel; src_offset = old_mem->mm_node->start << PAGE_SHIFT; dst_offset = new_mem->mm_node->s...
2009 Dec 11
5
[PATCH 1/3] drm/nouveau: Pre-G80 tiling support.
Signed-off-by: Francisco Jerez <currojerez at riseup.net> --- drivers/gpu/drm/nouveau/nouveau_drv.h | 23 +++++ drivers/gpu/drm/nouveau/nouveau_reg.h | 16 ++-- drivers/gpu/drm/nouveau/nouveau_state.c | 8 ++ drivers/gpu/drm/nouveau/nv10_fb.c | 32 ++++++-- drivers/gpu/drm/nouveau/nv10_graph.c | 47 ++++++++--- drivers/gpu/drm/nouveau/nv20_graph.c | 80
2019 Dec 17
0
[PATCH] drm/nouveau: Fix ttm move init with multiple GPUs
....c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index f8015e0318d7..1b62ccc57aef 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -1162,7 +1162,7 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, void nouveau_bo_move_init(struct nouveau_drm *drm) { - static const struct { + static const struct _method_table { const char *name; int engine; s32 oclass; @@ -1192,7 +1192,8 @@ nouveau_bo_move_init(struct nouveau_drm *drm) { &quo...
2020 Aug 03
0
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...d, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c > index 7806278dce57..a7b2a9bb0ffe 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c > @@ -776,7 +776,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, > return ret; > } > > - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); > + if (drm_drv_uses_atomic_modeset(drm->dev)) > + mutex_lock(&cli->mutex); > + else > + mutex_lock_nested(&cli-&g...
2020 Sep 29
0
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...gt; diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c > > > index 7806278dce57..a7b2a9bb0ffe 100644 > > > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c > > > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c > > > @@ -776,7 +776,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, > > > return ret; > > > } > > > > > > - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); > > > + if (drm_drv_uses_atomic_modeset(drm->dev)) > > &...
2020 Oct 23
0
[PATCH 25/65] drm/nouveau: Drop mutex_lock_nested for atomic
...bo.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 70b6f3b1ae85..c04a808664f8 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -775,7 +775,10 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, return ret; } - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); + if (drm_drv_uses_atomic_modeset(drm->dev)) + mutex_lock(&cli->mutex); + else + mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); ret = nouveau_fen...
2009 Dec 19
0
we don't synchronize in our buffer object move driver hook
ttm_bo_validate() calls ttm_bo_move_buffer() which calls ttm_bo_handle_move_mem() which calls bdev->driver->move() which calls nouveau_bo_move_m2mf(), which doesn't ensure synchronization (nowait == false) if the bo is moved on another channel (which is common for nv50). I suspect this to be the source of some corruption problems. Maarten.
2020 Sep 30
0
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
.../nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c > > > > > index 7806278dce57..a7b2a9bb0ffe 100644 > > > > > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c > > > > > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c > > > > > @@ -776,7 +776,11 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, > > > > > return ret; > > > > > } > > > > > > > > > > - mutex_lock_nested(&cli->mutex, SINGLE_DEPTH_NESTING); > > > > > + if (drm...
2018 Oct 07
0
Device release NULL pointer dereference
...5ae300 R12: ffff88e02677d400 R13: 0000000000000000 R14: ffffa985e2b9bbe0 R15: ffff88e01a7805a8 FS: 00007fca33a51740(0000) GS:ffff88e075c00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000048 CR3: 000000042e65a004 CR4: 00000000003606f0 Call Trace: nouveau_bo_move_m2mf.constprop.24+0x121/0x1e0 [nouveau] nouveau_bo_move+0xaa/0x450 [nouveau] ? nvif_vmm_unmap+0x38/0x60 [nouveau] ? nouveau_vma_unmap+0x20/0x30 [nouveau] ttm_bo_handle_move_mem+0x28a/0x5a0 [ttm] ttm_bo_evict+0x171/0x350 [ttm] ? drm_mm_remove_node+0xbe/0x360 [drm] ttm_mem_evict_first+0x18d/0x210 [ttm] tt...
2023 Aug 29
1
[PATCH drm-misc-next] drm/nouveau: fence: fix undefined fence state after emit
...(&dev->event_lock, flags); list_del(&s->head); diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 64f50adb2856..56427b6a00a4 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -875,16 +875,10 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, if (ret) goto out_unlock; - ret = nouveau_fence_new(&fence); + ret = nouveau_fence_new(&fence, chan); if (ret) goto out_unlock; - ret = nouveau_fence_emit(fence, chan); - if (ret) { - nouveau_fence_unref(&fence); - goto out_unlock...
2019 Sep 27
5
[Bug 111843] New: Resume fails after suspend with nouveau and Gtx 1050 ti
...180 [nouveau] [ 469.931903] ? nvkm_uvmm_mthd+0x17f/0x780 [nouveau] [ 469.931912] nvif_object_mthd+0x104/0x130 [nouveau] [ 469.931921] ? nvif_object_mthd+0x117/0x130 [nouveau] [ 469.931929] nvif_vmm_map+0x115/0x130 [nouveau] [ 469.931949] nouveau_mem_map+0x8d/0xf0 [nouveau] [ 469.931969] nouveau_bo_move_m2mf.constprop.0+0x113/0x200 [nouveau] [ 469.931989] nouveau_bo_move+0xa5/0x430 [nouveau] [ 469.932008] ? nouveau_vma_map+0x44/0x70 [nouveau] [ 469.932011] ttm_bo_handle_move_mem+0x10b/0x4f0 [ttm] [ 469.932013] ttm_bo_validate+0x11b/0x130 [ttm] [ 469.932032] nouveau_bo_validate+0x59/0x90 [nouv...