Hi, This patch set v9 addresses feedback captured on review of v7. For more background details please refer to v7 and earlier.
Specifically in this version groups are kept in a single tree indexed by CPU and then by a 64bit virtual index. In this version mux switch is renamed to rotation switch and the value of rotation switch may be the one of defined by ROTATION_DISABLED or ROTATION_ENABLED macros. ctx->rotate_disable bool flag is renamed to ctx->rotation and also employs ROTATION_DISABLE and ROTATION_ENABLED macros. pinned_group_sched_in() and flexible_group_sched_in() API are introduced to consolidate code enabling a whole group from pinned and flexible groups appropriately. Patches in the set are expected to be applied one after another in the mentioned order and they are logically split into two parts to simplify the review process. Thanks, Alexey --- Alexey Budankov (2): perf/core: use rb trees for pinned/flexible groups perf/core: add rotation switch to skip to the current CPU's events list on mux interrupt include/linux/perf_event.h | 17 +- kernel/events/core.c | 500 +++++++++++++++++++++++++++++++++------------ 2 files changed, 382 insertions(+), 135 deletions(-)