From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 00/14] arm_pmu: ACPI support
Date: Fri, 10 Mar 2017 11:04:37 +0000 [thread overview]
Message-ID: <1489143891-11596-1-git-send-email-mark.rutland@arm.com> (raw)
Hi,
This series implements ACPI support in the ARM PMU code. It borrows some code
from Jeremy's series [1], but takes a different approach to probing and
association, using the usual hotplug state machine, minimising external changes
required, and simplifying the relationship with the common arm_pmu code.
The first few patches are preparatory cleanup/refactoring, with the latter half
of the series being specific to ACPI support.
The series is based on my IRQ rework patches [2]. I've pushed the whole series
out to the arm/perf/acpi branch [3] of my kernel.org repo.
Due to the innards of the hotplug callback framework, it's not entirely
safe to register a PMU in a hotplug callback. Due to this, we can only
associated hotplugged CPUs with a PMU if a matching CPU was around at
probe time. A similar restriction already applies to DT systems. We may
be able to relax this with some future work.
I've given this some testing on a Juno platform (using SPIs). To see that IRQs
are correctly associated, I've tested with the following:
$ taskset -c ${SOME_CPU_HERE} perf record \
-e armv8_pmuv3_0/cpu_cycles/ \
-e armv8_pmuv3_1/cpu_cycles/ \
cat /proc/interrupts
I've also booted with nr_cpus temporarily capped (passing maxcpus=) to test the
association logic. This has also been tested in a VM using PPIs; I do not have
access to a host machine which itself uses PPIs.
Thanks,
Mark.
[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2017-January/482397.html
[2] http://lists.infradead.org/pipermail/linux-arm-kernel/2017-March/492891.html
[3] git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm/perf/acpi
Mark Rutland (14):
drivers/perf: arm_pmu: remove pointless PMU disabling
drivers/perf: arm_pmu: define armpmu_init_fn
drivers/perf: arm_pmu: fold init into alloc
drivers/perf: arm_pmu: factor out pmu registration
drivers/perf: arm_pmu: simplify cpu_pmu_request_irqs()
drivers/perf: arm_pmu: handle no platform_device
drivers/perf: arm_pmu: rename irq request/free functions
drivers/perf: arm_pmu: split cpu-local irq request/free
drivers/perf: arm_pmu: move irq request/free into probe
drivers/perf: arm_pmu: split out platform device probe logic
arm64: add function to get a cpu's MADT GICC table
arm64: kill acpi_set_mailbox_entry()
drivers/perf: arm_pmu: add ACPI framework
arm64: pmuv3: use arm_pmu ACPI framework
arch/arm64/include/asm/acpi.h | 7 +-
arch/arm64/kernel/acpi_parking_protocol.c | 38 +--
arch/arm64/kernel/perf_event.c | 26 +-
arch/arm64/kernel/smp.c | 19 +-
drivers/perf/Kconfig | 4 +
drivers/perf/Makefile | 3 +-
drivers/perf/arm_pmu.c | 383 ++++++++----------------------
drivers/perf/arm_pmu_acpi.c | 237 ++++++++++++++++++
drivers/perf/arm_pmu_platform.c | 235 ++++++++++++++++++
include/linux/cpuhotplug.h | 1 +
include/linux/perf/arm_pmu.h | 22 +-
11 files changed, 626 insertions(+), 349 deletions(-)
create mode 100644 drivers/perf/arm_pmu_acpi.c
create mode 100644 drivers/perf/arm_pmu_platform.c
--
1.9.1
next reply other threads:[~2017-03-10 11:04 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-10 11:04 Mark Rutland [this message]
2017-03-10 11:04 ` [PATCH 01/14] drivers/perf: arm_pmu: remove pointless PMU disabling Mark Rutland
2017-03-10 11:04 ` [PATCH 02/14] drivers/perf: arm_pmu: define armpmu_init_fn Mark Rutland
2017-03-10 11:04 ` [PATCH 03/14] drivers/perf: arm_pmu: fold init into alloc Mark Rutland
2017-03-10 11:04 ` [PATCH 04/14] drivers/perf: arm_pmu: factor out pmu registration Mark Rutland
2017-03-10 11:04 ` [PATCH 05/14] drivers/perf: arm_pmu: simplify cpu_pmu_request_irqs() Mark Rutland
2017-03-10 11:04 ` [PATCH 06/14] drivers/perf: arm_pmu: handle no platform_device Mark Rutland
2017-03-10 11:04 ` [PATCH 07/14] drivers/perf: arm_pmu: rename irq request/free functions Mark Rutland
2017-03-10 11:04 ` [PATCH 08/14] drivers/perf: arm_pmu: split cpu-local irq request/free Mark Rutland
2017-03-10 11:04 ` [PATCH 09/14] drivers/perf: arm_pmu: move irq request/free into probe Mark Rutland
2017-03-10 11:04 ` [PATCH 10/14] drivers/perf: arm_pmu: split out platform device probe logic Mark Rutland
2017-03-10 11:04 ` [PATCH 11/14] arm64: add function to get a cpu's MADT GICC table Mark Rutland
2017-03-23 18:33 ` Lorenzo Pieralisi
2017-03-10 11:04 ` [PATCH 12/14] arm64: kill acpi_set_mailbox_entry() Mark Rutland
2017-03-21 18:00 ` Lorenzo Pieralisi
2017-03-21 18:15 ` Mark Rutland
2017-03-21 18:37 ` Lorenzo Pieralisi
2017-03-21 18:53 ` Mark Rutland
2017-03-22 11:38 ` Mark Rutland
2017-03-10 11:04 ` [PATCH 13/14] drivers/perf: arm_pmu: add ACPI framework Mark Rutland
2017-03-10 11:04 ` [PATCH 14/14] arm64: pmuv3: use arm_pmu " Mark Rutland
2017-03-14 6:00 ` Ganapatrao Kulkarni
2017-03-14 10:51 ` Mark Rutland
2017-03-14 12:12 ` Jayachandran C.
2017-03-17 10:24 ` Ganapatrao Kulkarni
2017-04-12 2:40 ` Hanjun Guo
2017-03-10 22:14 ` [PATCH 00/14] arm_pmu: ACPI support Jeremy Linton
2017-03-14 11:49 ` Mark Rutland
2017-03-14 18:47 ` Mark Rutland
2017-03-14 22:06 ` Agustin Vega-Frias
2017-03-15 2:49 ` Hanjun Guo
2017-03-22 12:19 ` Lorenzo Pieralisi
2017-03-22 14:06 ` Agustin Vega-Frias
2017-03-22 23:23 ` Hanjun Guo
2017-03-15 15:34 ` Mark Rutland
2017-03-16 13:00 ` Hanjun Guo
2017-03-20 18:11 ` Ganapatrao Kulkarni
2017-03-22 9:16 ` Ganapatrao Kulkarni
2017-03-22 15:59 ` Mark Rutland
2017-04-03 10:41 ` Ganapatrao Kulkarni
2017-04-03 11:12 ` Mark Rutland
2017-04-11 9:32 ` Hanjun Guo
2017-03-24 21:36 ` Jeremy Linton
2017-03-28 11:31 ` Mark Rutland
2017-03-28 14:41 ` Jeremy Linton
2017-03-17 2:11 Itaru Kitayama
2017-03-23 10:54 ` Mark Rutland
2017-03-25 3:18 ` Itaru Kitayama
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1489143891-11596-1-git-send-email-mark.rutland@arm.com \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.