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
>...
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);
> > > >...
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...