| What: /sys/bus/event_source/devices/cpu.../rdpmc | |
| Date: November 2011 | |
| KernelVersion: 3.10 | |
| Contact: Linux kernel mailing list linux-kernel@vger.kernel.org | |
| Description: The /sys/bus/event_source/devices/cpu.../rdpmc attribute | |
| is used to show/manage if rdpmc instruction can be | |
| executed in user space. This attribute supports 3 numbers. | |
| - rdpmc = 0 | |
| user space rdpmc is globally disabled for all PMU | |
| counters. | |
| - rdpmc = 1 | |
| user space rdpmc is globally enabled only in event mmap | |
| ioctl called time window. If the mmap region is unmapped, | |
| user space rdpmc is disabled again. | |
| - rdpmc = 2 | |
| user space rdpmc is globally enabled for all PMU | |
| counters. | |
| In the Intel platforms supporting counter level's user | |
| space rdpmc disable feature (CPUID.23H.EBX[2] = 1), the | |
| meaning of 3 numbers is extended to | |
| - rdpmc = 0 | |
| global user space rdpmc and counter level's user space | |
| rdpmc of all counters are both disabled. | |
| - rdpmc = 1 | |
| No changes on behavior of global user space rdpmc. | |
| counter level's rdpmc of system-wide events is disabled | |
| but counter level's rdpmc of non-system-wide events is | |
| enabled. | |
| - rdpmc = 2 | |
| global user space rdpmc and counter level's user space | |
| rdpmc of all counters are both enabled unconditionally. | |
| The default value of rdpmc is 1. | |
| Please notice: | |
| - global user space rdpmc's behavior would change | |
| immediately along with the rdpmc value's change, | |
| but the behavior of counter level's user space rdpmc | |
| won't take effect immediately until the event is | |
| reactivated or recreated. | |
| - The rdpmc attribute is global, even for x86 hybrid | |
| platforms. For example, changing cpu_core/rdpmc will | |
| also change cpu_atom/rdpmc. |