summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_sgdma.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-07-23 09:06:52 +1000
committerBen Skeggs <bskeggs@redhat.com>2010-08-17 11:58:56 +1000
commit415e6186f17136075f7cc825ba3835d005773637 (patch)
treef6f837734b05a7006cab9b6badcda8590e1e4d24 /drivers/gpu/drm/nouveau/nouveau_sgdma.c
parent56dfc58ea094e7a8607786f4762c65b09cd85738 (diff)
downloadop-kernel-dev-415e6186f17136075f7cc825ba3835d005773637.zip
op-kernel-dev-415e6186f17136075f7cc825ba3835d005773637.tar.gz
drm/nouveau: fix race condition when under memory pressure
When VRAM is running out it's possible that the client's push buffers get evicted to main memory. When they're validated back in, the GPU may be used for the copy back to VRAM, but the existing synchronisation code only deals with inter-channel sync, not sync between PFIFO and PGRAPH on the same channel. This leads to PFIFO fetching from command buffers that haven't quite been copied by PGRAPH yet. This patch marks push buffers as so, and forces any GPU-assisted buffer moves to be done on a different channel, which triggers the correct synchronisation to happen before we submit them. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_sgdma.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud