https://bugs.freedesktop.org/show_bug.cgi?id=45018
--- Comment #72 from awaters1@gmail.com awaters1@gmail.com 2012-08-01 02:09:17 UTC --- Also, I believe the source of "radeon 0000:01:00.0: bo ffff8802ea5ec800 va 0x038EC000 conflict with (bo ffff8803eb464000 0x038EC000 0x038ED000)" is due to a race condition. It appears that after the call to radeon_bomgr_free_va the virtual address space is in a state where user space sees that freed address as available but the kernel hasn't been notified yet, until the drmIoctl call I assume.
I'm not sure if there are multiple threads allowed to interact with radeon_drm_bo.c, but if there are then the user space can request a virtual address that hasn't been freed yet by the kernel.
I moved the call to radeon_bomgr_free_va to be after the drmIoctl inradeon_bo_destroy, I'll run through the piglit tests to see if it fixes the errors.