• Frederic Weisbecker's avatar
    perf/core: Split context's event group list into pinned and non-pinned lists · 889ff015
    Frederic Weisbecker authored
    Split-up struct perf_event_context::group_list into pinned_groups
    and flexible_groups (non-pinned).
    
    This first appears to be useless as it duplicates various loops around
    the group list handlings.
    
    But it scales better in the fast-path in perf_sched_in(). We don't
    anymore iterate twice through the entire list to separate pinned and
    non-pinned scheduling. Instead we interate through two distinct lists.
    
    The another desired effect is that it makes easier to define distinct
    scheduling rules on both.
    
    Changes in v2:
    - Respectively rename pinned_grp_list and
      volatile_grp_list into pinned_groups and flexible_groups as per
      Ingo suggestion.
    - Various cleanups
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
    889ff015
perf_event.c 123 KB