On Tue, Jul 16, 2019 at 10:01 AM Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: > > Quoting Rob Clark (2019-07-16 17:42:15) > > From: Rob Clark <robdclark@xxxxxxxxxxxx> > > > > Since there is no real device associated with vgem, it is impossible to > > end up with appropriate dev->dma_ops, meaning that we have no way to > > invalidate the shmem pages allocated by vgem. So, at least on platforms > > without drm_cflush_pages(), we end up with corruption when cache lines > > from previous usage of vgem bo pages get evicted to memory. > > > > The only sane option is to use cached mappings. > > > > Signed-off-by: Rob Clark <robdclark@xxxxxxxxxxxx> > > --- > > Possibly we could dma_sync_*_for_{device,cpu}() on dmabuf attach/detach, > > although the ->gem_prime_{pin,unpin}() API isn't quite ideal for that as > > it is. And that doesn't really help for drivers that don't attach/ > > detach for each use. > > > > But AFAICT vgem is mainly used for dmabuf testing, so maybe we don't > > need to care too much about use of cached mmap'ings. > > Sadly this regresses with i915 interop. > > Starting subtest: 4KiB-tiny-vgem-blt-early-read-child > (gem_concurrent_blit:8309) CRITICAL: Test assertion failure function dmabuf_cmp_bo, file ../tests/i915/gem_concurrent_all.c:408: > (gem_concurrent_blit:8309) CRITICAL: Failed assertion: v[((y)*(b->width) + (((y) + pass)%(b->width)))] == val > (gem_concurrent_blit:8309) CRITICAL: error: 0 != 0xdeadbeef > > and igt/prime_vgem > > Can you please cc intel-gfx so CI can pick up these changes? > -Chris I suppose CI is actually reading the imported VGEM bo from GPU? I can try to wire up the attach/detach dma_sync, which might help.. BR, -R _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel