|
@@ -18,6 +18,7 @@
|
|
|
#include <linux/poll.h>
|
|
|
#include <linux/slab.h>
|
|
|
#include <linux/hash.h>
|
|
|
+#include <linux/tick.h>
|
|
|
#include <linux/sysfs.h>
|
|
|
#include <linux/dcache.h>
|
|
|
#include <linux/percpu.h>
|
|
@@ -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)
|