From: Tai Nguyen <ttnguyen@apm.com>
To: mark.rutland@arm.com, will.deacon@arm.com,
catalin.marinas@arm.com, joe@perches.com,
paul.gortmaker@windriver.com
Cc: dhdang@apm.com, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
patches@apm.com, Tai Nguyen <ttnguyen@apm.com>
Subject: [PATCH v10 0/4] perf: Add APM X-Gene SoC Performance Monitoring Unit driver
Date: Fri, 15 Jul 2016 10:38:01 -0700 [thread overview]
Message-ID: <1468604285-15090-1-git-send-email-ttnguyen@apm.com> (raw)
In addition to the X-Gene ARM CPU performance monitoring unit (PMU), there
are PMU for the SoC system devices such as L3 cache(s), I/O bridge(s),
memory controller bridges and memory. These PMU devices are loosely
architected to follow the same model as the PMU for ARM cores.
Signed-off-by: Tai Nguyen <ttnguyen@apm.com>
---
v10:
* Use devm_kasprintf instead of kasprintf which may cause memory leaked.
v9:
* Add commmit messages to the patches.
v8:
* MAINTAINERS: Fix section header in one line
* Change module_platform_driver to builtin_platform_driver
Get rid of the use of module.h and its no-ops macros
v7:
* Remove const from the definition of xgene_pmu_cpumask_attrs
* Validate the event group as a whole, disallow creating groups containing
mixed PMUs
* Implement pmu::pmu_enable() and pmu::pmu_disable() to let the perf core
starts and stops the counters properly
* Using list_for_each_entry() instead of list_for_each_entry_safe() to iterate
over the list of pmu sub-devices
* Fix resource leak issue in case of registering perf devices fails
* Pass on returned error if acpi_walk_namespace() fails
* Remove unused xgene_pmu_data::data
* Move enable interrupt after probing pmu sub-devices
v6:
* Add IRQF_NOBALANCING and IRQF_NO_THREAD flags to the PMU overflow interrupt
Exclude the interrupt from irq balancing and prevent the context from being
threaded
v5:
* Remove hw_perf_event::extra_reg field use
Change GET_CNTR to use hw_perf_event::idx
Change GET_AGENTID/GET_AGEN1ID to use hw_perf_event::config_base
* Use compound literal structure defines for format and event attribute groups
to statically define them at compile time
* Bitwise invert the meaning of agent mask in config1 field.
* Fix update pmu_counter_event pointer before starting event
* Add reset of pmu_dev->pmu_counter_event to NULL in xgene_perf_del
* Use exactly half of max period to fix the overflow counter issue and account
for the possiblity of extreme interrupt latency
* Use spin lock instead of interrupt masking in overflow interrupt handler
* Remove unnecessary update of hw_perf_event::period_left
v4:
* Alphabetically sorting header files
* Remove dynamic allocation for PMU format and event attribute groups
Create shared constant attribute groups per each class
* Remove perf_sample_data as this perf driver doesn't support sampling
* Consistently use the PCP_PMU_V{1,2} defines
* Set affinity to make sure the overflow interrupt is handled by the
same assigned CPU
v3:
* Remove index property use in PMU device sub nodes
v2:
* Use bitmask for event asignned counter mask pmu_dev->cntr_assign_mask
* Remove unnecessary spinlocks in perf add/del operations
* Remove unnecessary condition checks
* Enforce CPU assignment to one CPU for perf operarations
* Set the task_ctx_nr to perf_invalid_context for perf driver
* Remove irrelevant pt_rregs
* Change perf sysfs attributes to be fixed instead of dynamic
* Fix checking for an ACPI companion device instead of EFI enable
* Add documentation for config/config1 fields format and perf tool example
---
Tai Nguyen (4):
MAINTAINERS: Add entry for APM X-Gene SoC PMU driver
Documentation: Add documentation for APM X-Gene SoC PMU DTS binding
perf: xgene: Add APM X-Gene SoC Performance Monitoring Unit driver
arm64: dts: apm: Add APM X-Gene SoC PMU DTS entries
.../devicetree/bindings/perf/apm-xgene-pmu.txt | 112 ++
Documentation/perf/xgene-pmu.txt | 48 +
MAINTAINERS | 7 +
arch/arm64/boot/dts/apm/apm-storm.dtsi | 58 +
drivers/perf/Kconfig | 7 +
drivers/perf/Makefile | 1 +
drivers/perf/xgene_pmu.c | 1398 ++++++++++++++++++++
7 files changed, 1631 insertions(+)
create mode 100644 Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt
create mode 100644 Documentation/perf/xgene-pmu.txt
create mode 100644 drivers/perf/xgene_pmu.c
--
1.9.1
next reply other threads:[~2016-07-15 17:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-15 17:38 Tai Nguyen [this message]
2016-07-15 17:38 ` [PATCH v10 1/4] MAINTAINERS: Add entry for APM X-Gene SoC PMU driver Tai Nguyen
2016-07-15 17:38 ` [PATCH v10 2/4] Documentation: Add documentation for APM X-Gene SoC PMU DTS binding Tai Nguyen
2016-07-15 17:38 ` [PATCH v10 3/4] perf: xgene: Add APM X-Gene SoC Performance Monitoring Unit driver Tai Nguyen
2016-07-15 17:38 ` [PATCH v10 4/4] arm64: dts: apm: Add APM X-Gene SoC PMU DTS entries Tai Nguyen
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=1468604285-15090-1-git-send-email-ttnguyen@apm.com \
--to=ttnguyen@apm.com \
--cc=catalin.marinas@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=dhdang@apm.com \
--cc=joe@perches.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=patches@apm.com \
--cc=paul.gortmaker@windriver.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).