• Shashank Sharma's avatar
    drm/amdgpu: use doorbell mgr for kfd process doorbells · 2105a15a
    Shashank Sharma authored
    This patch:
    - adds a doorbell object in kfd pdd structure.
    - allocates doorbells for a process while creating its queue.
    - frees the doorbells with pdd destroy.
    - moves doorbell bitmap init function to kfd_doorbell.c
    
    PS: This patch ensures that we don't break the existing KFD
        functionality, but now KFD userspace library should also
        create doorbell pages as AMDGPU GEM objects using libdrm
        functions in userspace. The reference code for the same
        is available with AMDGPU Usermode queue libdrm MR. Once
        this is done, we will not need to create process doorbells
        in kernel.
    
    V2: - Do not use doorbell wrapper API, use amdgpu_bo_create_kernel
          instead (Alex).
        - Do not use custom doorbell structure, instead use separate
          variables for bo and doorbell_bitmap (Alex)
    V3:
       - Do not allocate doorbell page with PDD, delay doorbell process
         page allocation until really needed (Felix)
    
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: Christian Koenig <christian.koenig@amd.com>
    Cc: Felix Kuehling <Felix.Kuehling@amd.com>
    Acked-by: default avatarChristian König <christian.koenig@amd.com>
    Reviewed-by: default avatarFelix Kuehling <Felilx.Kuehling@amd.com>
    Signed-off-by: default avatarShashank Sharma <shashank.sharma@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    2105a15a
kfd_chardev.c 86.4 KB