• Anthony Steinhauser's avatar
    perf/x86: Implement immediate enforcement of /sys/devices/cpu/rdpmc value of 0 · 405b4537
    Anthony Steinhauser authored
    When you successfully write 0 to /sys/devices/cpu/rdpmc, the RDPMC
    instruction should be disabled unconditionally and immediately (after you
    close the SYSFS file) by the documentation.
    
    Instead, in the current implementation the PMU must be reloaded which
    happens only eventually some time in the future. Only after that the RDPMC
    instruction becomes disabled (on ring 3) on the respective core.
    
    This change makes the treatment of the 0 value as blocking and as
    unconditional as the current treatment of the 2 value, only the CR4.PCE
    bit is naturally set to false instead of true.
    Signed-off-by: default avatarAnthony Steinhauser <asteinhauser@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: acme@kernel.org
    Link: https://lkml.kernel.org/r/20191125054838.137615-1-asteinhauser@google.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    405b4537
core.c 61.6 KB