linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] drivers/perf: arm_pmu: rework IRQ management
@ 2017-01-30 15:31 Mark Rutland
  2017-01-30 15:31 ` [PATCH 1/3] drivers/perf: arm_pmu: rework per-cpu allocation Mark Rutland
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Mark Rutland @ 2017-01-30 15:31 UTC (permalink / raw)
  To: linux-arm-kernel

For historical reasons, we lazily request and free interrupts in the
arm_pmu driver, managing affinity at request time. Unfortunately, this
is not well balanced w.r.t. CPU hotplug, resulting in a number of
issues.

This series addresses this by reworking the way we manage interrupts,
splitting request/free from affinity management. This renders some code
redundant, and said code is removed.

I've given this a spin on a Juno R1 system and another system which uses PPIs.
I've verified that the IRQ affinity is as expected after CPUs are brought
online. I've also run basic perf queries and the perf fuzzer, both in parallel
with random hotplug events.

Thanks,
Mark.

Mark Rutland (3):
  drivers/perf: arm_pmu: rework per-cpu allocation
  drivers/perf: arm_pmu: manage interrupts per-cpu
  drivers/perf: arm_pmu: split irq request from enable

 drivers/perf/arm_pmu.c       | 450 ++++++++++++++++++++-----------------------
 include/linux/perf/arm_pmu.h |   4 +-
 2 files changed, 210 insertions(+), 244 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 5+ messages in thread
* [PATCH 0/3] drivers/perf: arm_pmu: rework IRQ management
@ 2017-02-10 11:05 Mark Rutland
  2017-02-10 11:05 ` [PATCH 1/3] drivers/perf: arm_pmu: rework per-cpu allocation Mark Rutland
  0 siblings, 1 reply; 5+ messages in thread
From: Mark Rutland @ 2017-02-10 11:05 UTC (permalink / raw)
  To: linux-arm-kernel

For historical reasons, we lazily request and free interrupts in the
arm_pmu driver, managing affinity at request time. Unfortunately, this
is not well balanced w.r.t. CPU hotplug, resulting in a number of
issues.

This series addresses this by reworking the way we manage interrupts,
splitting request/free from affinity management. This renders some code
redundant, and said code is removed.

I've given this a spin on a Juno R1 system, a Cortex-A9 based system, and
another system which uses PPIs. I've verified that the IRQ affinity is as
expected after CPUs are brought online. I've also run basic perf queries and
the perf fuzzer, both in parallel with random hotplug events.

Since v1 [1]:
* Free resources correctly.
* Remove unused fields from struct arm_pmu.
* Improve messages when parsing IRQs.

Since v2 [2]:
* Fix broken pdev handling
* Improve probe-time error reporting

Thanks,
Mark.

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2017-January/484285.html
[2] http://lists.infradead.org/pipermail/linux-arm-kernel/2017-February/485610.html

Mark Rutland (3):
  drivers/perf: arm_pmu: rework per-cpu allocation
  drivers/perf: arm_pmu: manage interrupts per-cpu
  drivers/perf: arm_pmu: split irq request from enable

 drivers/perf/arm_pmu.c       | 487 +++++++++++++++++++++----------------------
 include/linux/perf/arm_pmu.h |   7 +-
 2 files changed, 237 insertions(+), 257 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-02-10 11:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-30 15:31 [PATCH 0/3] drivers/perf: arm_pmu: rework IRQ management Mark Rutland
2017-01-30 15:31 ` [PATCH 1/3] drivers/perf: arm_pmu: rework per-cpu allocation Mark Rutland
2017-01-30 15:31 ` [PATCH 2/3] drivers/perf: arm_pmu: manage interrupts per-cpu Mark Rutland
2017-01-30 15:31 ` [PATCH 3/3] drivers/perf: arm_pmu: split irq request from enable Mark Rutland
  -- strict thread matches above, loose matches on Subject: below --
2017-02-10 11:05 [PATCH 0/3] drivers/perf: arm_pmu: rework IRQ management Mark Rutland
2017-02-10 11:05 ` [PATCH 1/3] drivers/perf: arm_pmu: rework per-cpu allocation Mark Rutland

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).