• Tvrtko Ursulin's avatar
    drm/i915: Explicitly track DRM clients · 5f0d4d14
    Tvrtko Ursulin authored
    Tracking DRM clients more explicitly will allow later patches to
    accumulate past and current GPU usage in a centralised place and also
    consolidate access to owning task pid/name.
    
    Unique client id is also assigned for the purpose of distinguishing/
    consolidating between multiple file descriptors owned by the same process.
    
    v2:
     Chris Wilson:
     * Enclose new members into dedicated structs.
     * Protect against failed sysfs registration.
    
    v3:
     * sysfs_attr_init.
    
    v4:
     * Fix for internal clients.
    
    v5:
     * Use cyclic ida for client id. (Chris)
     * Do not leak pid reference. (Chris)
     * Tidy code with some locals.
    
    v6:
     * Use xa_alloc_cyclic to simplify locking. (Chris)
     * No need to unregister individial sysfs files. (Chris)
     * Rebase on top of fpriv kref.
     * Track client closed status and reflect in sysfs.
    
    v7:
     * Make drm_client more standalone concept.
    
    v8:
     * Simplify sysfs show. (Chris)
     * Always track name and pid.
    
    v9:
     * Fix cyclic id assignment.
    
    v10:
     * No need for a mutex around xa_alloc_cyclic.
     * Refactor sysfs into own function.
     * Unregister sysfs before freeing pid and name.
     * Move clients setup into own function.
    
    v11:
     * Call clients init directly from driver init. (Chris)
    
    v12:
     * Do not fail client add on id wrap. (Maciej)
    
    v13 (Lucas): Rebase.
    
    v14:
     * Dropped sysfs bits.
    
    v15:
     * Dropped tracking of pid/ and name.
     * Dropped RCU freeing of the client object.
    Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> # v11
    Reviewed-by: Aravind Iddamsetty <aravind.iddamsetty@intel.com> # v11
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220401142205.3123159-2-tvrtko.ursulin@linux.intel.com
    5f0d4d14
i915_drv.h 47.7 KB