search for: single_depth_nesting

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

2020 Aug 02
2
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...veau/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 = nouveau_fence_sync(nouveau_bo(bo), chan, true, intr); if (ret == 0) { ret = drm->ttm.move(chan, bo, &bo->mem, new_reg)...
2020 Sep 17
2
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...eau/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 = nouveau_fence_sync(nouveau_bo(bo), chan...
2019 Oct 01
0
[PATCH net v3] vsock: Fix a lockdep warning in __vsock_release()
...pending = NULL; /* Compiler warning. */ > > + /* The release call is supposed to use lock_sock_nested() > + * rather than lock_sock(), if a sock lock should be acquired. > + */ > transport->release(vsk); > > - lock_sock(sk); > + /* When "level" is SINGLE_DEPTH_NESTING, use the nested > + * version to avoid the warning "possible recursive locking > + * detected". When "level" is 0, lock_sock_nested(sk, level) > + * is the same as lock_sock(sk). > + */ > + lock_sock_nested(sk, level); > sock_orphan(sk); > sk-...
2020 Sep 30
2
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...ouveau/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); > > > > + > > &...
2019 Sep 26
0
[PATCH net v2] vsock: Fix a lockdep warning in __vsock_release()
...sted version to avoid the > + * warning "possible recursive locking detected". > + */ > + if (level == 1) > + lock_sock(sk); Since lock_sock() calls lock_sock_nested(sk, 0), could we use directly lock_sock_nested(sk, level) with level = 0 in vsock_release() and level = SINGLE_DEPTH_NESTING here in the while loop? > + else > + lock_sock_nested(sk, SINGLE_DEPTH_NESTING); > sock_orphan(sk); > sk->sk_shutdown = SHUTDOWN_MASK; > > @@ -659,7 +670,7 @@ static void __vsock_release(struct sock *sk) > > /* Clean up any sockets that never were accepte...
2011 Sep 01
3
DOM0 Hang on a large box....
...t ret = 0; if (unlikely(!spin_trylock(&busiest->lock))) { if (busiest < this_rq) { spin_unlock(&this_rq->lock); spin_lock(&busiest->lock); spin_lock_nested(&this_rq->lock, SINGLE_DEPTH_NESTING); ret = 1; } else spin_lock_nested(&busiest->lock, SINGLE_DEPTH_NESTING); } return ret; } The lock is taken, but not sure who the owner is. The lock struct: @ ffff8800020e2480: 2f102e70 0000000c 00000002 0000...
2020 Sep 30
1
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...@@ -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_NES...
2020 Aug 03
0
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...7..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 = nouveau_fence_sync(nouveau_bo(bo), chan, true, intr); > if (ret == 0) { > ret = drm->ttm....
2020 Sep 29
0
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...; +++ 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 = nouveau_f...
2020 Oct 23
0
[PATCH 25/65] drm/nouveau: Drop mutex_lock_nested for atomic
...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_fence_sync(nouveau_bo(bo), chan, true, ctx->interruptible); if (ret == 0) { ret = drm->ttm.move(chan, bo, &bo-&g...
2019 Sep 27
0
[PATCH net v2] vsock: Fix a lockdep warning in __vsock_release()
...locking detected". > > > + */ > > > + if (level == 1) > > > + lock_sock(sk); > > > > Since lock_sock() calls lock_sock_nested(sk, 0), could we use directly > > lock_sock_nested(sk, level) with level = 0 in vsock_release() and > > level = SINGLE_DEPTH_NESTING here in the while loop? > > > > Thanks, > > Stefano > > IMHO it's better to make the lock usage more explicit, as the patch does. > > lock_sock_nested(sk, level) or lock_sock_nested(sk, 0) seems a little > odd to me. But I'm open to your suggestion: if an...
2020 Sep 30
0
[PATCH] drm/nouveau: Drop mutex_lock_nested for atomic
...> > > > @@ -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); > > &gt...
2007 Apr 18
0
[PATCH 3/9] 00mm3 lazy mmu mode hooks.patch
...rounded up __boundary may wrap to 0 throughout. =================================================================== --- a/mm/memory.c +++ b/mm/memory.c @@ -506,6 +506,7 @@ again: src_pte = pte_offset_map_nested(src_pmd, addr); src_ptl = pte_lockptr(src_mm, src_pmd); spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING); + arch_enter_lazy_mmu_mode(); do { /* @@ -527,6 +528,7 @@ again: progress += 8; } while (dst_pte++, src_pte++, addr += PAGE_SIZE, addr != end); + arch_leave_lazy_mmu_mode(); spin_unlock(src_ptl); pte_unmap_nested(src_pte - 1); add_mm_rss(dst_mm, rss[0], rss[1]); @@ -628,6 +630...
2019 Oct 23
0
[PATCH net-next 04/14] vsock: add 'transport' member in the struct vsock_sock
...,7 @@ static void __vsock_release(struct sock *sk, int level) /* The release call is supposed to use lock_sock_nested() * rather than lock_sock(), if a sock lock should be acquired. */ - transport->release(vsk); + vsk->transport->release(vsk); /* When "level" is SINGLE_DEPTH_NESTING, use the nested * version to avoid the warning "possible recursive locking @@ -670,7 +673,7 @@ static void vsock_sk_destruct(struct sock *sk) { struct vsock_sock *vsk = vsock_sk(sk); - transport->destruct(vsk); + vsk->transport->destruct(vsk); /* When clearing these addre...
2018 Jan 11
3
[PATCH 0/3] drm/nouveau: Add support for fence FDs
From: Thierry Reding <treding at nvidia.com> This small series of patches implements support for waiting on and emitting fence FDs on kickoff. This enables explicit fencing and can be used for example to synchronize buffer accesses between the display engine and the GPU on Tegra. The first patch lays the groundwork by splitting up nouveau_fence_sync() to allow reuse. Patch 2 is where the
2019 Oct 23
0
[PATCH net-next 11/14] vsock: add multi-transports support
...ck_sock_nested() * rather than lock_sock(), if a sock lock should be acquired. */ - vsk->transport->release(vsk); + if (vsk->transport) + vsk->transport->release(vsk); + else if (sk->sk_type == SOCK_STREAM) + vsock_remove_sock(vsk); /* When "level" is SINGLE_DEPTH_NESTING, use the nested * version to avoid the warning "possible recursive locking @@ -679,7 +737,8 @@ static void vsock_sk_destruct(struct sock *sk) { struct vsock_sock *vsk = vsock_sk(sk); - vsk->transport->destruct(vsk); + if (vsk->transport) + vsk->transport->destruct(vsk)...
2014 May 14
0
[RFC PATCH v1 07/16] drm/nouveau: rework to new fence interface
.../drm/nouveau/nouveau_bo.c index e98af2e9a1cb..84aba3fa1bd0 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -959,7 +959,7 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, } mutex_lock_nested(&chan->cli->mutex, SINGLE_DEPTH_NESTING); - ret = nouveau_fence_sync(bo->sync_obj, chan); + ret = nouveau_fence_sync(nouveau_bo(bo), chan); if (ret == 0) { ret = drm->ttm.move(chan, bo, &bo->mem, new_mem); if (ret == 0) { @@ -1432,10 +1432,12 @@ nouveau_bo_fence_unref(void **sync_obj) void nouveau_bo_fence(struct n...
2007 Apr 18
15
[PATCH 0 of 13] Basic infrastructure patches for a paravirtualized kernel
[ REPOST: Apologies to anyone who has seen this before. It didn't make it onto any of the lists it should have. -J ] Hi Andrew, This series of patches lays the basic ground work for the paravirtualized kernel patches coming later on. I think this lot is ready for the rough-and-tumble world of the -mm tree. For the most part, these patches do nothing or very little. The patches should
2007 Apr 18
15
[PATCH 0 of 13] Basic infrastructure patches for a paravirtualized kernel
[ REPOST: Apologies to anyone who has seen this before. It didn't make it onto any of the lists it should have. -J ] Hi Andrew, This series of patches lays the basic ground work for the paravirtualized kernel patches coming later on. I think this lot is ready for the rough-and-tumble world of the -mm tree. For the most part, these patches do nothing or very little. The patches should
2006 Jul 25
18
[PATCH] turn off writable page tables
At OLS I gave a talk on some of the Xen scalability inhibitors, and one of these was writable page tables. We went over why the feature does not scale, but just as important, we found that the uniprocessor case does not provide any advantage either. These tests were done on x86_64, so I wanted to run the 1-way test on 32 bit to show the same problem. So, I have run with writable PTs and