From: Jeremy Linton <jeremy.linton@arm.com> To: linux-arm-kernel@lists.infradead.org Cc: linux-acpi@vger.kernel.org, will.deacon@arm.com, mark.rutland@arm.com, punit.agrawal@arm.com, steve.capper@arm.com, msalter@redhat.com, mlangsdorf@redhat.com, linux@armlinux.org.uk, lorenzo.pieralisi@arm.com, bamvor.zhangjian@linaro.org Subject: [PATCH v14 0/6] Enable PMUs in ACPI systems Date: Mon, 23 Jan 2017 16:32:39 -0600 [thread overview] Message-ID: <1485210765-9422-1-git-send-email-jeremy.linton@arm.com> (raw) This patch expands and reworks the patches published by Mark Salter in order to clean up a few of the previous review comments, as well as add support for newer CPUs and big/little configurations. v14: - drop rename patch requested for v6 - Shuffle couple include lines from one patch to a later patch. v13: - Correct int/bool conversion bug in pmu_acpi_init() created during v10 code shuffle v12: - Rebase to 4.10 - Removed lock in the hotplug path. v11: - Add is_smp() check to read_specific_cpuid() for arch/arm. Update c_show() and various routines in arm_pmu_acpi() to use the macro. - Moved the duplicate "generic" pmu detection code into its own patch and hoist it into arm_pmu_device_probe() so it works for DT based systems as well. v10: - Rebase to 4.9 - Rework the arm_perf_start_cpu changes to support the 4.9 hotplug changes. - Remove the call to acpi_register_gsi() from the cpu online code path. Instead the GSI's are registered during the initcall. This changes the error handling a bit because we now try to clean up the previously registered GSIs in a couple important places. This was also a result of the rebase. - Dropped the MIDR partnumber usage, its no longer necessary to differentiate by only the partnum, so this helps to clarify the code a bit. - Shuffle some code around and rename a few variables. - Added a few comments to hopefully clarify some questions people have previously had about unused MADT entries, skipping processing cores with MIDR=0, etc. v9: - Add/cleanup an additional hotplug patch I've had sitting around. This patch brings the ACPI PMU mostly on par with the DT functionality with respect to having CPUs offline during boot. This should help clarify some of the code structuring. - Cleanup the list of PMU types early if we fail to allocate memory for an additional pmu type. v8: - Rebase to 4.8rc4 - Assorted minor comment/hunk placement/etc tweaks per Punit Agrawal v7: - Rebase to 4.8rc3 - Remove cpu affinity sysfs entry. While providing a CPU mask for ARMv8 PMU's is really helpful in big/little environments, reworking the PMU code to support the cpumask attribute for !arm64 PMUs is out of the scope of this patch set. - Fix CPU miscount problem where an alloc failure followed by successfully allocating the structure can result in under counting the CPUs associated with the PMU. This bug was created in v6 with the conversion to a linked list. - Remove initial platform device creation code by Mark Salter, and re-squash multiple platform device creation code together with helper routines. Other minor tweakage. v6: - Added cpu affinity sysfs entry - Converted pmu_types array, to linked list - Restrict use of the armv8_pmu_probe_table to ACPI systems - Rename MADT parsing routines in smp.c - Convert sysfs PMU name to use index rather than partnum - Remove pr_devel statements - Other Minor cleanups - Add Partial Ack-by Will Deacon v5: - Remove list of CPU types for ACPI systems. We now match a generic event list, and use the PMCIED[01] to select events which exist on the given PMU. This avoids the need to update the kernel every time a new CPU is released. - Update the maintainers list to include the new file. v4: - Correct build issues with ARM (!ARM64) kernels. - Add ThunderX to list of PMU types. Jeremy Linton (5): arm: arm64: Add routine to determine cpuid of other cpus arm: arm64: pmu: Assign platform PMU CPU affinity arm64: pmu: Detect multiple generic PMUs and append counter arm64: pmu: Detect and enable multiple PMUs in an ACPI system arm: pmu: Add PMU definitions for cores not initially online Mark Salter (1): arm64: pmu: Cache PMU interrupt numbers from MADT parse arch/arm/include/asm/cputype.h | 4 + arch/arm/kernel/setup.c | 2 +- arch/arm64/include/asm/cputype.h | 3 + arch/arm64/kernel/perf_event.c | 2 +- arch/arm64/kernel/smp.c | 5 + drivers/perf/Kconfig | 4 + drivers/perf/Makefile | 1 + drivers/perf/arm_pmu.c | 103 +++++++++++++-- drivers/perf/arm_pmu_acpi.c | 271 +++++++++++++++++++++++++++++++++++++++ include/linux/perf/arm_pmu.h | 12 ++ 10 files changed, 393 insertions(+), 14 deletions(-) create mode 100644 drivers/perf/arm_pmu_acpi.c -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: jeremy.linton@arm.com (Jeremy Linton) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v14 0/6] Enable PMUs in ACPI systems Date: Mon, 23 Jan 2017 16:32:39 -0600 [thread overview] Message-ID: <1485210765-9422-1-git-send-email-jeremy.linton@arm.com> (raw) This patch expands and reworks the patches published by Mark Salter in order to clean up a few of the previous review comments, as well as add support for newer CPUs and big/little configurations. v14: - drop rename patch requested for v6 - Shuffle couple include lines from one patch to a later patch. v13: - Correct int/bool conversion bug in pmu_acpi_init() created during v10 code shuffle v12: - Rebase to 4.10 - Removed lock in the hotplug path. v11: - Add is_smp() check to read_specific_cpuid() for arch/arm. Update c_show() and various routines in arm_pmu_acpi() to use the macro. - Moved the duplicate "generic" pmu detection code into its own patch and hoist it into arm_pmu_device_probe() so it works for DT based systems as well. v10: - Rebase to 4.9 - Rework the arm_perf_start_cpu changes to support the 4.9 hotplug changes. - Remove the call to acpi_register_gsi() from the cpu online code path. Instead the GSI's are registered during the initcall. This changes the error handling a bit because we now try to clean up the previously registered GSIs in a couple important places. This was also a result of the rebase. - Dropped the MIDR partnumber usage, its no longer necessary to differentiate by only the partnum, so this helps to clarify the code a bit. - Shuffle some code around and rename a few variables. - Added a few comments to hopefully clarify some questions people have previously had about unused MADT entries, skipping processing cores with MIDR=0, etc. v9: - Add/cleanup an additional hotplug patch I've had sitting around. This patch brings the ACPI PMU mostly on par with the DT functionality with respect to having CPUs offline during boot. This should help clarify some of the code structuring. - Cleanup the list of PMU types early if we fail to allocate memory for an additional pmu type. v8: - Rebase to 4.8rc4 - Assorted minor comment/hunk placement/etc tweaks per Punit Agrawal v7: - Rebase to 4.8rc3 - Remove cpu affinity sysfs entry. While providing a CPU mask for ARMv8 PMU's is really helpful in big/little environments, reworking the PMU code to support the cpumask attribute for !arm64 PMUs is out of the scope of this patch set. - Fix CPU miscount problem where an alloc failure followed by successfully allocating the structure can result in under counting the CPUs associated with the PMU. This bug was created in v6 with the conversion to a linked list. - Remove initial platform device creation code by Mark Salter, and re-squash multiple platform device creation code together with helper routines. Other minor tweakage. v6: - Added cpu affinity sysfs entry - Converted pmu_types array, to linked list - Restrict use of the armv8_pmu_probe_table to ACPI systems - Rename MADT parsing routines in smp.c - Convert sysfs PMU name to use index rather than partnum - Remove pr_devel statements - Other Minor cleanups - Add Partial Ack-by Will Deacon v5: - Remove list of CPU types for ACPI systems. We now match a generic event list, and use the PMCIED[01] to select events which exist on the given PMU. This avoids the need to update the kernel every time a new CPU is released. - Update the maintainers list to include the new file. v4: - Correct build issues with ARM (!ARM64) kernels. - Add ThunderX to list of PMU types. Jeremy Linton (5): arm: arm64: Add routine to determine cpuid of other cpus arm: arm64: pmu: Assign platform PMU CPU affinity arm64: pmu: Detect multiple generic PMUs and append counter arm64: pmu: Detect and enable multiple PMUs in an ACPI system arm: pmu: Add PMU definitions for cores not initially online Mark Salter (1): arm64: pmu: Cache PMU interrupt numbers from MADT parse arch/arm/include/asm/cputype.h | 4 + arch/arm/kernel/setup.c | 2 +- arch/arm64/include/asm/cputype.h | 3 + arch/arm64/kernel/perf_event.c | 2 +- arch/arm64/kernel/smp.c | 5 + drivers/perf/Kconfig | 4 + drivers/perf/Makefile | 1 + drivers/perf/arm_pmu.c | 103 +++++++++++++-- drivers/perf/arm_pmu_acpi.c | 271 +++++++++++++++++++++++++++++++++++++++ include/linux/perf/arm_pmu.h | 12 ++ 10 files changed, 393 insertions(+), 14 deletions(-) create mode 100644 drivers/perf/arm_pmu_acpi.c -- 2.7.4
next reply other threads:[~2017-01-23 22:33 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-01-23 22:32 Jeremy Linton [this message] 2017-01-23 22:32 ` [PATCH v14 0/6] Enable PMUs in ACPI systems Jeremy Linton 2017-01-23 22:32 ` [PATCH v14 1/6] arm: arm64: Add routine to determine cpuid of other cpus Jeremy Linton 2017-01-23 22:32 ` Jeremy Linton 2017-01-23 22:32 ` [PATCH v14 2/6] arm64: pmu: Cache PMU interrupt numbers from MADT parse Jeremy Linton 2017-01-23 22:32 ` Jeremy Linton 2017-01-23 22:32 ` [PATCH v14 3/6] arm: arm64: pmu: Assign platform PMU CPU affinity Jeremy Linton 2017-01-23 22:32 ` Jeremy Linton 2017-01-23 22:32 ` [PATCH v14 4/6] arm64: pmu: Detect multiple generic PMUs and append counter Jeremy Linton 2017-01-23 22:32 ` Jeremy Linton 2017-01-23 22:32 ` [PATCH v14 5/6] arm64: pmu: Detect and enable multiple PMUs in an ACPI system Jeremy Linton 2017-01-23 22:32 ` Jeremy Linton 2017-01-23 22:32 ` [PATCH v14 6/6] arm: pmu: Add PMU definitions for cores not initially online Jeremy Linton 2017-01-23 22:32 ` Jeremy Linton 2017-01-24 6:46 ` [PATCH v14 0/6] Enable PMUs in ACPI systems Ganapatrao Kulkarni 2017-01-24 6:46 ` Ganapatrao Kulkarni 2017-01-24 19:56 ` Jeremy Linton 2017-01-24 19:56 ` Jeremy Linton 2017-01-24 7:49 ` Hanjun Guo 2017-01-24 7:49 ` Hanjun Guo 2017-02-10 6:06 ` Ganapatrao Kulkarni 2017-02-10 6:06 ` Ganapatrao Kulkarni
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=1485210765-9422-1-git-send-email-jeremy.linton@arm.com \ --to=jeremy.linton@arm.com \ --cc=bamvor.zhangjian@linaro.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux@armlinux.org.uk \ --cc=lorenzo.pieralisi@arm.com \ --cc=mark.rutland@arm.com \ --cc=mlangsdorf@redhat.com \ --cc=msalter@redhat.com \ --cc=punit.agrawal@arm.com \ --cc=steve.capper@arm.com \ --cc=will.deacon@arm.com \ /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: linkBe 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.