diff options
author | Robin Murphy <robin.murphy@arm.com> | 2021-01-28 16:12:44 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-03-04 13:37:44 +0300 |
commit | 86399c1911eb52d3208db3201342acdfdcfe3d86 (patch) | |
tree | 8e6e3962486391d64852e53166f7b7f1cce0e8bd /drivers/perf | |
parent | 1ea83d4891026a572620585174517e8a1f4a40b5 (diff) | |
download | linux-86399c1911eb52d3208db3201342acdfdcfe3d86.tar.xz |
perf/arm-cmn: Move IRQs when migrating context
[ Upstream commit 1c8147ea89c883d1f4e20f1b1d9c879291430102 ]
If we migrate the PMU context to another CPU, we need to remember to
retarget the IRQs as well.
Fixes: 0ba64770a2f2 ("perf: Add Arm CMN-600 PMU driver")
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/e080640aea4ed8dfa870b8549dfb31221803eb6b.1611839564.git.robin.murphy@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/perf')
-rw-r--r-- | drivers/perf/arm-cmn.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c index f3071b5ddaae..46defb1dcf86 100644 --- a/drivers/perf/arm-cmn.c +++ b/drivers/perf/arm-cmn.c @@ -1150,7 +1150,7 @@ static int arm_cmn_commit_txn(struct pmu *pmu) static int arm_cmn_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node) { struct arm_cmn *cmn; - unsigned int target; + unsigned int i, target; cmn = hlist_entry_safe(node, struct arm_cmn, cpuhp_node); if (cpu != cmn->cpu) @@ -1161,6 +1161,8 @@ static int arm_cmn_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node) return 0; perf_pmu_migrate_context(&cmn->pmu, cpu, target); + for (i = 0; i < cmn->num_dtcs; i++) + irq_set_affinity_hint(cmn->dtc[i].irq, cpumask_of(target)); cmn->cpu = target; return 0; } |