Revision 85b144f860176ec18db927d6d9ecdfb24d9c6483 authored by Maarten Lankhorst on 29 November 2012, 11:36:54 UTC, committed by Dave Airlie on 10 December 2012, 10:21:03 UTC
By removing the unlocking of lru and retaking it immediately, a race is removed where the bo is taken off the swap list or the lru list between the unlock and relock. As such the cleanup_refs code can be simplified, it will attempt to call ttm_bo_wait non-blockingly, and if it fails it will drop the locks and perform a blocking wait, or return an error if no_wait_gpu was set. The need for looping is also eliminated, since swapout and evict_mem_first will always follow the destruction path, no new fence is allowed to be attached. As far as I can see this may already have been the case, but the unlocking / relocking required a complicated loop to deal with re-reservation. Changes since v1: - Simplify no_wait_gpu case by folding it in with empty ddestroy. - Hold a reservation while calling ttm_bo_cleanup_memtype_use again. Changes since v2: - Do not remove bo from lru list while waiting Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
1 parent 6ed9ccb
File | Mode | Size |
---|---|---|
6fire | ||
caiaq | ||
misc | ||
usx2y | ||
Kconfig | -rw-r--r-- | 3.4 KB |
Makefile | -rw-r--r-- | 521 bytes |
card.c | -rw-r--r-- | 19.7 KB |
card.h | -rw-r--r-- | 5.6 KB |
clock.c | -rw-r--r-- | 9.0 KB |
clock.h | -rw-r--r-- | 316 bytes |
debug.h | -rw-r--r-- | 262 bytes |
endpoint.c | -rw-r--r-- | 29.0 KB |
endpoint.h | -rw-r--r-- | 1.3 KB |
format.c | -rw-r--r-- | 14.7 KB |
format.h | -rw-r--r-- | 317 bytes |
helper.c | -rw-r--r-- | 2.9 KB |
helper.h | -rw-r--r-- | 1.1 KB |
midi.c | -rw-r--r-- | 62.7 KB |
midi.h | -rw-r--r-- | 1.5 KB |
mixer.c | -rw-r--r-- | 63.0 KB |
mixer.h | -rw-r--r-- | 2.0 KB |
mixer_maps.c | -rw-r--r-- | 12.3 KB |
mixer_quirks.c | -rw-r--r-- | 29.3 KB |
mixer_quirks.h | -rw-r--r-- | 367 bytes |
pcm.c | -rw-r--r-- | 36.9 KB |
pcm.h | -rw-r--r-- | 379 bytes |
power.h | -rw-r--r-- | 375 bytes |
proc.c | -rw-r--r-- | 6.0 KB |
proc.h | -rw-r--r-- | 211 bytes |
quirks-table.h | -rw-r--r-- | 69.1 KB |
quirks.c | -rw-r--r-- | 23.0 KB |
quirks.h | -rw-r--r-- | 985 bytes |
stream.c | -rw-r--r-- | 13.5 KB |
stream.h | -rw-r--r-- | 286 bytes |
usbaudio.h | -rw-r--r-- | 2.9 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...