<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm64/kernel/perf_event.c, branch linux-4.5.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.5.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.5.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-12-22T14:45:35Z</updated>
<entry>
<title>arm64: perf: add support for Cortex-A72</title>
<updated>2015-12-22T14:45:35Z</updated>
<author>
<name>Will Deacon</name>
</author>
<published>2015-12-22T14:45:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5d7ee87708d4d86fcc32afc9552d05f7625d303d'/>
<id>urn:sha1:5d7ee87708d4d86fcc32afc9552d05f7625d303d</id>
<content type='text'>
Cortex-A72 has a PMUv3 implementation that is compatible with the PMU
implemented by Cortex-A57.

This patch hooks up the new compatible string so that the Cortex-A57
event mappings are used.

Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: perf: add format entry to describe event -&gt; config mapping</title>
<updated>2015-12-22T14:45:07Z</updated>
<author>
<name>Will Deacon</name>
</author>
<published>2015-12-22T14:42:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=57d74123954dfe70fad12724d19f743ed14cec90'/>
<id>urn:sha1:57d74123954dfe70fad12724d19f743ed14cec90</id>
<content type='text'>
It's all very well providing an events directory to userspace that
details our events in terms of "event=0xNN", but if we don't define how
to encode the "event" field in the perf attr.config, then it's a waste
of time.

This patch adds a single format entry to describe that the event field
occupies the bottom 10 bits of our config field on ARMv8 (PMUv3).

Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: kernel: enforce pmuserenr_el0 initialization and restore</title>
<updated>2015-12-21T14:43:04Z</updated>
<author>
<name>Lorenzo Pieralisi</name>
</author>
<published>2015-12-18T10:35:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=60792ad349f3c6dc5735aafefe5dc9121c79e320'/>
<id>urn:sha1:60792ad349f3c6dc5735aafefe5dc9121c79e320</id>
<content type='text'>
The pmuserenr_el0 register value is architecturally UNKNOWN on reset.
Current kernel code resets that register value iff the core pmu device is
correctly probed in the kernel. On platforms with missing DT pmu nodes (or
disabled perf events in the kernel), the pmu is not probed, therefore the
pmuserenr_el0 register is not reset in the kernel, which means that its
value retains the reset value that is architecturally UNKNOWN (system
may run with eg pmuserenr_el0 == 0x1, which means that PMU counters access
is available at EL0, which must be disallowed).

This patch adds code that resets pmuserenr_el0 on cold boot and restores
it on core resume from shutdown, so that the pmuserenr_el0 setup is
always enforced in the kernel.

Cc: &lt;stable@vger.kernel.org&gt;
Cc: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: perf: Add event descriptions</title>
<updated>2015-11-16T17:09:02Z</updated>
<author>
<name>Drew Richardson</name>
</author>
<published>2015-10-22T14:07:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e9caa6a496174e53d7753baa4779717771da4a7'/>
<id>urn:sha1:9e9caa6a496174e53d7753baa4779717771da4a7</id>
<content type='text'>
Add additional information about the ARM architected hardware events
to make counters self describing. This makes the hardware PMUs easier
to use as perf list contains possible events instead of users having
to refer to documentation like the ARM TRMs.

Signed-off-by: Drew Richardson &lt;drew.richardson@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: perf: Convert event enums to #defines</title>
<updated>2015-11-16T17:09:02Z</updated>
<author>
<name>Drew Richardson</name>
</author>
<published>2015-10-22T14:07:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90381cba64591e27d0e8bbfe71bf8a98bd2a3db3'/>
<id>urn:sha1:90381cba64591e27d0e8bbfe71bf8a98bd2a3db3</id>
<content type='text'>
The enums are not necessary and this allows the event values to be
used to construct static strings at compile time.

Signed-off-by: Drew Richardson &lt;drew.richardson@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: perf: add Cortex-A57 support</title>
<updated>2015-10-07T13:25:24Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2015-10-02T09:55:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=62a4dda9d63a10e5b28943967fc936c74fa16dfb'/>
<id>urn:sha1:62a4dda9d63a10e5b28943967fc936c74fa16dfb</id>
<content type='text'>
The Cortex-A57 PMU supports a few events outside of the required PMUv3
set that are rather useful.

This patch adds the event map data for said events.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: perf: add Cortex-A53 support</title>
<updated>2015-10-07T13:25:07Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2015-10-02T09:55:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ac82d12772158dfbc1d3827a68b317e10326bbaa'/>
<id>urn:sha1:ac82d12772158dfbc1d3827a68b317e10326bbaa</id>
<content type='text'>
The Cortex-A53 PMU supports a few events outside of the required PMUv3
set that are rather useful.

This patch adds the event map data for said events.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: perf: move to shared arm_pmu framework</title>
<updated>2015-10-07T13:24:48Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2015-10-02T09:55:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6475b2d846176e3272351266869481a21ff47866'/>
<id>urn:sha1:6475b2d846176e3272351266869481a21ff47866</id>
<content type='text'>
Now that the arm_pmu framework has been factored out to drivers/perf we
can make use of it for arm64, gaining support for heterogeneous PMUs
and unifying the two codebases before they diverge further.

The as yet unused PMU name for PMUv3 is changed to armv8_pmuv3, matching
the style previously applied to the 32-bit PMUs.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: perf: condense event number maps</title>
<updated>2015-07-27T10:08:40Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2015-07-21T10:36:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ae2fb7ece973f0b285f41985f5de85c57df9bf5a'/>
<id>urn:sha1:ae2fb7ece973f0b285f41985f5de85c57df9bf5a</id>
<content type='text'>
Most of the cache events an architecture might support do not map well
to those provided by the ARM architecture, and as such most entries in
the event number maps are *_UNSUPPORTED. Unfortuantely as 0 is a valid
physical event identifier, the *_UNSUPPORTED macros expand to a non-zero
value and thus each unsupported event must be explicitly initialised as
such. This leads to large diffs when adding support for a new CPU, and
makes it difficult to spot the important information.

This patch follows arch/arm/ in making use of PERF_*_ALL_UNSUPPORTED
macros to initialise all entries to *_UNSUPPORTED before overriding this
for the specific events we actually support, resulting in a significant
source code reduction.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: perf: factor out callchain code</title>
<updated>2015-07-27T10:08:39Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2015-07-06T11:23:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=52da443ec4d0a807b720527eb474f9c2878cd671'/>
<id>urn:sha1:52da443ec4d0a807b720527eb474f9c2878cd671</id>
<content type='text'>
We currently bundle the callchain handling code with the PMU code,
despite the fact the two are distinct, and the former can be useful even
in the absence of the latter.

Follow the example of arch/arm and factor the callchain handling into
its own file dependent on CONFIG_PERF_EVENTS rather than
CONFIG_HW_PERF_EVENTS.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
</feed>
