Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3bc1fc8b authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Perf: arm64: Update PMU force reset"

parents 3dbe68a0 32aed52b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ static char *descriptions =
	" 4 Perf: arm64: support hotplug and power collapse\n"
	" 5 Perf: arm64: add perf user-mode permissions\n"
	" 6 Perf: arm64: Add debugfs node to clear PMU\n"
	" 7 Perf: arm64: Update PMU force reset\n"
;

static ssize_t desc_read(struct file *fp, char __user *buf,
+21 −1
Original line number Diff line number Diff line
@@ -1817,12 +1817,32 @@ unsigned long perf_misc_flags(struct pt_regs *regs)
}

#ifdef CONFIG_PERF_EVENTS_RESET_PMU_DEBUGFS
static void reset_pmu_force(void)
static __ref void reset_pmu_force(void)
{
	int cpu, ret;
	u32 save_online_mask = 0;

	for_each_possible_cpu(cpu) {
		if (!cpu_online(cpu)) {
			save_online_mask |= BIT(cpu);
			ret = cpu_up(cpu);
			if (ret)
				pr_err("Failed to bring up CPU: %d, ret: %d\n",
				       cpu, ret);
		}
	}
	if (cpu_pmu && cpu_pmu->reset)
		on_each_cpu(cpu_pmu->reset, NULL, 1);
	if (cpu_pmu && cpu_pmu->plat_device)
		armpmu_release_hardware(cpu_pmu);
	for_each_possible_cpu(cpu) {
		if ((save_online_mask & BIT(cpu)) && cpu_online(cpu)) {
			ret = cpu_down(cpu);
			if (ret)
				pr_err("Failed to bring down CPU: %d, ret: %d\n",
						cpu, ret);
		}
	}
}

static int write_enabled_perfpmu_action(void *data, u64 val)