search for: __nouveau_fence_signalled

Displaying 4 results from an estimated 4 matches for "__nouveau_fence_signalled".

2012 Apr 22
1
[PATCH 2/5] drm/nouveau: base fence timeout on time of emission
...signalled; + unsigned long emitted_at; void (*work)(void *priv, bool signalled); void *priv; @@ -172,6 +173,7 @@ nouveau_fence_emit(struct nouveau_fence *fence) } OUT_RING (chan, fence->sequence); FIRE_RING(chan); + fence->emitted_at = jiffies; return 0; } @@ -230,7 +232,8 @@ __nouveau_fence_signalled(void *sync_obj, void *sync_arg) int __nouveau_fence_wait(void *sync_obj, void *sync_arg, bool lazy, bool intr) { - unsigned long timeout = jiffies + (3 * DRM_HZ); + struct nouveau_fence *fence = nouveau_fence(sync_obj); + unsigned long timeout = fence->emitted_at + 3 * DRM_HZ; unsigned long...
2012 Apr 22
2
[RFC PATCH 5/5] drm/nouveau: gpu lockup recovery
...drm_device *dev = fence->channel->dev; unsigned long timeout = fence->emitted_at + 3 * DRM_HZ; unsigned long sleep_time = NSEC_PER_MSEC / 1000; ktime_t t; int ret = 0; + if (nouveau_gpu_reset_in_progress(dev)) + timeout = fence->emitted_at + DRM_HZ / 5; + while (1) { if (__nouveau_fence_signalled(sync_obj, sync_arg)) break; if (time_after_eq(jiffies, timeout)) { - ret = -EBUSY; + if (!nouveau_gpu_reset_in_progress(dev)) + ret = -EIO; break; } diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index ed52a6f..f9bbcc0 100644 ---...
2012 Apr 25
5
[PATCH v2 4/4] drm/nouveau: gpu lockup recovery
...au_fence(sync_obj); + struct drm_device *dev = fence->channel->dev; unsigned long timeout = fence->timeout; unsigned long sleep_time = NSEC_PER_MSEC / 1000; ktime_t t; int ret = 0; + if (nouveau_gpu_reset_in_progress(dev)) + timeout = jiffies + DRM_HZ / 5; + while (1) { if (__nouveau_fence_signalled(sync_obj, sync_arg)) break; if (time_after_eq(jiffies, timeout)) { - ret = -EBUSY; + if (!nouveau_gpu_reset_in_progress(dev)) + ret = -EIO; break; } diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index ed52a6f..f9bbcc0 100644 ---...
2012 Mar 14
13
[Bug 47306] New: segfault in nouveau_fence_update
https://bugs.freedesktop.org/show_bug.cgi?id=47306 Bug #: 47306 Summary: segfault in nouveau_fence_update Classification: Unclassified Product: xorg Version: unspecified Platform: x86 (IA32) OS/Version: Linux (All) Status: NEW Severity: blocker Priority: medium Component: Driver/nouveau