Displaying 9 results from an estimated 9 matches for "ttm_eu_backoff_reservation_reverse".
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
...+ 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_eu_backoff_reservation_reverse(list, last_entry);
if (del_lru) {
spin_lock(&glob->lru_lo...
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
...+ 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_eu_backoff_reservation_reverse(list, last_entry);
if (del_lru) {
spin_lock(&glob->lru_lo...
2019 Sep 06
0
[Spice-devel] Xorg indefinitely hangs in kernelspace
...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(&entry->head, list);
> }
> + if (locked)
> + ttm_eu_backoff_reservation_reverse(list, last_entry);
>...
2014 May 14
0
[RFC PATCH v1 02/16] drm/ttm: kill off some members to ttm_validate_buffer
...ndex 39a11bbd2bac..6db47a72667e 100644
--- a/drivers/gpu/drm/ttm/ttm_execbuf_util.c
+++ b/drivers/gpu/drm/ttm/ttm_execbuf_util.c
@@ -32,20 +32,12 @@
#include <linux/sched.h>
#include <linux/module.h>
-static void ttm_eu_backoff_reservation_locked(struct list_head *list)
+static void ttm_eu_backoff_reservation_reverse(struct list_head *list,
+ struct ttm_validate_buffer *entry)
{
- struct ttm_validate_buffer *entry;
-
- list_for_each_entry(entry, list, head) {
+ list_for_each_entry_continue_reverse(entry, list, head) {
struct ttm_buffer_object *bo = entry->bo;
- if (!entry->reserved)
- con...
2019 Sep 09
0
Xorg indefinitely hangs in kernelspace
...u see the same hang? Does the patch fix it?
> --- a/drivers/gpu/drm/ttm/ttm_execbuf_util.c
> +++ b/drivers/gpu/drm/ttm/ttm_execbuf_util.c
> @@ -97,8 +97,9 @@ int ttm_eu_reserve_buffers(struct ww_acq
> struct list_head *dups, bool del_lru)
[ ... ]
> + if (locked)
> + ttm_eu_backoff_reservation_reverse(list, entry);
Hmm, I think the patch is wrong. As far I know it is the qxl drivers's
job to call ttm_eu_backoff_reservation(). Doing that automatically in
ttm will most likely break other ttm users.
So I guess the call is missing in the qxl driver somewhere, most likely
in some error handli...
2019 Sep 09
0
Xorg indefinitely hangs in kernelspace
..._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;
}
--
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