• Ben Skeggs's avatar
    drm/nouveau: fix race condition when under memory pressure · 415e6186
    Ben Skeggs authored
    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: default avatarBen Skeggs <bskeggs@redhat.com>