diff --git a/kernel/events/core.c b/kernel/events/core.c index b0cd86501c30db1a1320d284f2d52eb1ec499f2b..75b58bb75b328cf7560fd8851ccc09d822158967 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -655,8 +656,12 @@ static void perf_pmu_rotate_start(struct pmu *pmu) WARN_ON(!irqs_disabled()); - if (list_empty(&cpuctx->rotation_list)) + if (list_empty(&cpuctx->rotation_list)) { + int was_empty = list_empty(head); list_add(&cpuctx->rotation_list, head); + if (was_empty) + tick_nohz_full_kick(); + } } static void get_ctx(struct perf_event_context *ctx)