On 2018-02-14 05:35 PM, Felix Kuehling wrote: > On 2018-02-14 02:42 AM, Christian König wrote: >> Am 14.02.2018 um 00:17 schrieb Felix Kuehling: >>> On 2018-02-13 02:18 PM, Felix Kuehling wrote: >>>> On 2018-02-13 01:15 PM, Christian König wrote: >>>>> Am 13.02.2018 um 18:18 schrieb Felix Kuehling: >>>>>> >>>>>> I don't see how you can have separate TTM objects referring to the >>>>>> same memory. >>>>> Well that is trivial, we do this all the time with prime and I+A >>>>> laptops. >>>> As I understand it, you use DMABuf to export/import buffers on multiple >>>> devices. I believe all devices share a single amdgpu_bo, which contains >>>> the ttm_buffer_object. >> >> That's incorrect as well. Normally multiple devices have multiple >> ttm_buffer_object, one for each device. >> Going a bit higher that actually makes sense because the status of >> each BO is deferent for each device. E.g. one device could have the BO >> in access while it could be idle on another device. > > Can you point me where this is done? I'm looking at > amdgpu_gem_prime_foreign_bo. It is used if an AMDGPU BO is imported into > a different AMDGPU device. It creates a new GEM object, with a reference > to the same amdgpu BO (gobj->bo = amdgpu_bo_ref(bo)). To me this looks > very much like the same amdgpu_bo, and cosequently the same TTM BO being > shared by two GEM objects and two devices. amdgpu_gem_prime_foreign_bo doesn't exist in amd-staging-drm-next, let alone upstream. Even on current internal branches, it's no longer used for dma-buf import AFAICT. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer