Displaying 6 results from an estimated 6 matches for "ww_acq".
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
...> [354073.762260] ? process_one_work+0x410/0x410
> [354073.762261] ? __kthread_parkme+0x70/0x70
> [354073.762262] ret_from_fork+0x35/0x40
>
--- 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)
{
struct ttm_bo_global *glob;
- struct ttm_validate_buffer *entry;
+ struct ttm_validate_buffer *entry, *last_entry;
int ret;
+ bool locked = false;
if (list_empty(list))
return 0;
@@ -112,7 +113,10 @@ int ttm_eu_reserve_buffers(struct ww_acq...
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
...> [354073.762260] ? process_one_work+0x410/0x410
> [354073.762261] ? __kthread_parkme+0x70/0x70
> [354073.762262] ret_from_fork+0x35/0x40
>
--- 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)
{
struct ttm_bo_global *glob;
- struct ttm_validate_buffer *entry;
+ struct ttm_validate_buffer *entry, *last_entry;
int ret;
+ bool locked = false;
if (list_empty(list))
return 0;
@@ -112,7 +113,10 @@ int ttm_eu_reserve_buffers(struct ww_acq...
2019 Sep 06
0
[Spice-devel] Xorg indefinitely hangs in kernelspace
...e_work+0x410/0x410
> > [354073.762261] ? __kthread_parkme+0x70/0x70
> > [354073.762262] ret_from_fork+0x35/0x40
> >
>
> --- 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)
> {
> struct ttm_bo_global *glob;
> - struct ttm_validate_buffer *entry;
> + struct ttm_validate_buffer *entry, *last_entry;
> int ret;
> + bool locked = false;
>
> if (list_empty(list))
> return 0;
> @@ -11...
2019 Sep 09
0
Xorg indefinitely hangs in kernelspace
...will most likely break other ttm users.
>
You are right. They are responsible for doing backoff if error happens
while validating buffers afterwards.
--- a/drivers/gpu/drm/ttm/ttm_execbuf_util.c
+++ b/drivers/gpu/drm/ttm/ttm_execbuf_util.c
@@ -111,8 +111,10 @@ int ttm_eu_reserve_buffers(struct ww_acq
list_for_each_entry(entry, list, head) {
struct ttm_buffer_object *bo = entry->bo;
+ bool lockon;
ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket);
+ lockon = !ret;
if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) {
reservation_object_unlo...
2019 Sep 30
2
[Spice-devel] Xorg indefinitely hangs in kernelspace
>
> On 05.09.19 15:34, Jaak Ristioja wrote:
> > On 05.09.19 10:14, Gerd Hoffmann wrote:
> >> On Tue, Aug 06, 2019 at 09:00:10PM +0300, Jaak Ristioja wrote:
> >>> Hello!
> >>>
> >>> I'm writing to report a crash in the QXL / DRM code in the Linux kernel.
> >>> I originally filed the issue on LaunchPad and more details can be
2019 Sep 09
0
Xorg indefinitely hangs in kernelspace
Hi,
--verbose please. Do you 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 mos...