• Tvrtko Ursulin's avatar
    drm/i915/pmu: Fix CPU hotplug with multiple GPUs · 537f9c84
    Tvrtko Ursulin authored
    Since we keep a driver global mask of online CPUs and base the decision
    whether PMU needs to be migrated upon it, we need to make sure the
    migration is done for all registered PMUs (so GPUs).
    
    To do this we need to track the current CPU for each PMU and base the
    decision on whether to migrate on a comparison between global and local
    state.
    
    At the same time, since dynamic CPU hotplug notification slots are a
    scarce resource and given how we already register the multi instance type
    state, we can and should add multiple instance of the i915 PMU to this
    same state and not allocate a new one for every GPU.
    
    v2:
     * Use pr_notice. (Chris)
    
    v3:
     * Handle a nasty interaction where unregistration which triggers a false
       CPU offline event. (Chris)
    Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Suggested-by: Daniel Vetter <daniel.vetter@intel.com> # dynamic slot optimisation
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201020161144.678668-1-tvrtko.ursulin@linux.intel.com
    537f9c84
i915_pmu.c 29.2 KB