search for: ww_acquire_done

Displaying 8 results from an estimated 8 matches for "ww_acquire_done".

2014 May 14
0
[RFC PATCH v1 02/16] drm/ttm: kill off some members to ttm_validate_buffer
...t = ww_mutex_lock_slow_interruptible(&bo->resv->lock, + ticket); + } else if (ret == -EDEADLK) { + ww_mutex_lock_slow(&bo->resv->lock, ticket); + ret = 0; + } + + if (unlikely(ret != 0)) { + if (ret == -EINTR) + ret = -ERESTARTSYS; + if (ticket) { + ww_acquire_done(ticket); + ww_acquire_fini(ticket); + } + return ret; + } + + /* move this item to the front of the list, + * forces correct iteration of the loop without keeping track + */ + list_del(&entry->head); + list_add(&entry->head, list); } if (ticket) @@ -186,20 +158,7...
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
...@@ int ttm_eu_reserve_buffers(struct ww_acq ret = 0; } } + if (!ret) + locked = true; + else + locked = false; if (!ret && entry->num_shared) ret = reservation_object_reserve_shared(bo->resv, @@ -163,6 +171,8 @@ int ttm_eu_reserve_buffers(struct ww_acq ww_acquire_done(ticket); ww_acquire_fini(ticket); } + if (locked) + ttm_eu_backoff_reservation_reverse(list, entry); return ret; } @@ -172,6 +182,8 @@ int ttm_eu_reserve_buffers(struct ww_acq list_del(&entry->head); list_add(&entry->head, list); } + if (locked) + ttm_e...
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
...@@ int ttm_eu_reserve_buffers(struct ww_acq ret = 0; } } + if (!ret) + locked = true; + else + locked = false; if (!ret && entry->num_shared) ret = reservation_object_reserve_shared(bo->resv, @@ -163,6 +171,8 @@ int ttm_eu_reserve_buffers(struct ww_acq ww_acquire_done(ticket); ww_acquire_fini(ticket); } + if (locked) + ttm_eu_backoff_reservation_reverse(list, entry); return ret; } @@ -172,6 +182,8 @@ int ttm_eu_reserve_buffers(struct ww_acq list_del(&entry->head); list_add(&entry->head, list); } + if (locked) + ttm_e...
2019 Sep 09
0
Xorg indefinitely hangs in kernelspace
...ct_unlock(bo->resv); @@ -151,6 +153,7 @@ int ttm_eu_reserve_buffers(struct ww_acq ret = 0; } } + lockon = !ret; if (!ret && entry->num_shared) ret = reservation_object_reserve_shared(bo->resv, @@ -163,6 +166,8 @@ int ttm_eu_reserve_buffers(struct ww_acq ww_acquire_done(ticket); ww_acquire_fini(ticket); } + if (lockon) + ttm_eu_backoff_reservation_reverse(list, entry); return ret; } --
2019 Sep 06
0
[Spice-devel] Xorg indefinitely hangs in kernelspace
...} > + if (!ret) > + locked = true; > + else > + locked = false; > locked = !ret; ? > if (!ret && entry->num_shared) > ret = reservation_object_reserve_shared(bo->resv, > @@ -163,6 +171,8 @@ int ttm_eu_reserve_buffers(struct ww_acq > ww_acquire_done(ticket); > ww_acquire_fini(ticket); > } > + if (locked) > + ttm_eu_backoff_reservation_reverse(list, entry); > return ret; > } > > @@ -172,6 +182,8 @@ int ttm_eu_reserve_buffers(struct ww_acq > list_del(&entry->head); > list_add(&amp...
2014 May 14
17
[RFC PATCH v1 00/16] Convert all ttm drivers to use the new reservation interface
This series depends on the previously posted reservation api patches. 2 of them are not yet in for-next-fences branch of git://git.linaro.org/people/sumit.semwal/linux-3.x.git The missing patches are still in my vmwgfx_wip branch at git://people.freedesktop.org/~mlankhorst/linux All ttm drivers are converted to the fence api, fence_lock is removed and rcu is used in its place. qxl is the first
2014 Jul 31
19
[PATCH 01/19] fence: add debugging lines to fence_is_signaled for the callback
fence_is_signaled callback should support being run in atomic context, but not in irq context. Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com> --- include/linux/fence.h | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/include/linux/fence.h b/include/linux/fence.h index d174585b874b..c1a4519ba2f5 100644 ---
2014 Jul 09
22
[PATCH 00/17] Convert TTM to the new fence interface.
This series applies on top of the driver-core-next branch of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git Before converting ttm to the new fence interface I had to fix some drivers to require a reservation before poking with fence_obj. After flipping the switch RCU becomes available instead, and the extra reservations can be dropped again. :-) I've done at least basic