Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1695818
| Path | csiph.com!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Jan Glauber <jglauber@cavium.com> |
| Newsgroups | linux.kernel |
| Subject | [PATCH v8 3/3] perf: cavium: Add Documentation |
| Date | Tue, 25 Jul 2017 17:10:01 +0200 |
| Message-ID | <u79Db-4o6-9@gated-at.bofh.it> (permalink) |
| References | <u79Db-4o6-11@gated-at.bofh.it> |
| X-Original-To | Mark Rutland <mark.rutland@arm.com> |
| X-Google-Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+HGkV7r4Vj5iQJaqRPuSLHF09MMEE+QtEeKNXnWrUtA=; b=e44SEbCpbYxHVlCC4vnjQL3WJnB9Yr/7qKLtRUVeNE2lXTHSVmY7k+cyQI0sxBCWhr npKm5Fm3X0+SAAfcfz55uP7UvD7L+zHvM4//PIgKD6eusn2pZ+cN8/qKVSPD+haZm2m9 0jZKJMh4s5ij6xn6jdhcqdf2y5DhrbimLQGohvTCkaY1NzXrv0b2LTnqWwEBANfKtY8j 6g+GgWSg9PiMJCoRJoqck5ObYig3T8JfEF/iwS3F6xAtHfzrbkIJl+zFCCaXQkxdy9Fw FRTVLMMNmMlvGv8AIRyKu+bahMH4QSUAmlmiYjWsekw3ZwpOlwBskZWjd2yqCOs3vb2m DDBA== |
| X-Gm-Message-State | AIVw112mSpeZvzsxeHMEGFnJiAg81uOj8Yb9whAdohZygj1s5E/v9TzD OF4MAAzTRRiXTF/v |
| X-Received | by 10.28.13.138 with SMTP id 132mr8076763wmn.23.1500995091106; Tue, 25 Jul 2017 08:04:51 -0700 (PDT) |
| X-Mailer | git-send-email 2.9.0.rc0.21.g7777322 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 91 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | Will Deacon <will.deacon@arm.com>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jan Glauber <jglauber@cavium.com> |
| X-Original-Date | Tue, 25 Jul 2017 17:04:22 +0200 |
| X-Original-Message-ID | <20170725150422.4775-4-jglauber@cavium.com> |
| X-Original-References | <20170725150422.4775-1-jglauber@cavium.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1695818 |
Show key headers only | View raw
Document Cavium SoC PMUs.
Signed-off-by: Jan Glauber <jglauber@cavium.com>
---
Documentation/perf/cavium-pmu.txt | 75 +++++++++++++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)
create mode 100644 Documentation/perf/cavium-pmu.txt
diff --git a/Documentation/perf/cavium-pmu.txt b/Documentation/perf/cavium-pmu.txt
new file mode 100644
index 0000000..6fbf824
--- /dev/null
+++ b/Documentation/perf/cavium-pmu.txt
@@ -0,0 +1,75 @@
+Cavium ThunderX and OcteonTx Performance Monitoring Unit (PMU)
+==============================================================
+
+Cavium SoCs contain various system devices such as L2 caches, processor
+interconnect and memory controllers. Unfortunately the PMU counters
+are not following a common design so each device has a slightly different
+approach how to control and use the PMU counters.
+
+Common properties of all devices carrying PMU counters:
+- The devices are PCI devices and the counters are embedded somewhere
+ in the PCI register space.
+- All counters are 64 bit wide.
+- There are no overflow interrupts (unnecessary because of the 64 bit wide
+ counters).
+
+Properties depending on the device type:
+- How to start/stop the counters
+- Programmable vs. fixed purpose counters
+- Stoppable vs. always running counters
+- Independent vs. grouped counters
+- Read-only vs. writable counters
+- PCI device to PMU group relationship
+
+
+Devices with PMU counters
+-------------------------
+
+Memory controller (LMC):
+- one PCI device per LMC
+- fixed-purpose counters
+- always running counters without start/stop/reset control
+- read-only counters
+
+CCPI interface controller (OCX) Transmit link (TLK) counters:
+- writable counters
+- only one PCI device exposes multiple TLK units (3 units on T88)
+- start/stop control per unit
+- only present on multi-socket systems
+
+PMU (perf) driver
+-----------------
+
+The cavium-pmu driver registers several perf PMU drivers. Each of the perf
+driver provides description of its available events and configuration options
+in sysfs, see /sys/devices/<lmcX/ocx_tlkX>/.
+
+The "format" directory describes format of the config (event ID),
+The "events" directory shows the names of the events and provides configuration
+templates for all supported event types that can be used with perf tool. For
+example, "lmc0/dclk_cnt/" is an equivalent of "lmc0/config=2/".
+
+Each perf driver also provides a "cpumask" sysfs attribute, which contains a
+single CPU ID of the processor which will be used to handle all the PMU events.
+
+Example for perf tool use:
+
+ / # perf list | grep -e lmc
+ lmc0/bank_conflict1/ [Kernel PMU event]
+ lmc0/bank_conflict2/ [Kernel PMU event]
+ lmc0/dclk_cnt/ [Kernel PMU event]
+ lmc0/ifb_cnt/ [Kernel PMU event]
+ lmc0/ops_cnt/ [Kernel PMU event]
+
+ / # perf stat -a -e lmc0/ops_cnt/,lmc0/dclk_cnt/ -- sleep 1
+
+ Performance counter stats for 'system wide':
+
+ 176,133 lmc0/ops_cnt/
+ 670,243,653 lmc0/dclk_cnt/
+
+ 1.005479295 seconds time elapsed
+
+The driver does not support sampling, therefore "perf record" will
+not work. System wide mode ("-a") must be used as per-task (without "-a")
+perf sessions are not supported.
--
2.9.0.rc0.21.g7777322
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[PATCH v8 3/3] perf: cavium: Add Documentation Jan Glauber <jglauber@cavium.com> - 2017-07-25 17:10 +0200
csiph-web