]> git.baikalelectronics.ru Git - kernel.git/commit
x86/cpu/amd: Enable the fixed Instructions Retired counter IRPERF
authorKim Phillips <kim.phillips@amd.com>
Wed, 19 Feb 2020 17:52:43 +0000 (18:52 +0100)
committerBorislav Petkov <bp@suse.de>
Wed, 19 Feb 2020 19:01:54 +0000 (20:01 +0100)
commitd0d861e8866c4f97d933cd1a6447c44526aae4cc
treec2804ab9aa5f11b04f500354fbe2d271e99127a3
parent22142e60c9d0d7f62ecd0befe6a5999482753068
x86/cpu/amd: Enable the fixed Instructions Retired counter IRPERF

Commit

  e6eb5f4806951 ("perf/x86/msr: Add AMD IRPERF (Instructions Retired)
  performance counter")

added support for access to the free-running counter via 'perf -e
msr/irperf/', but when exercised, it always returns a 0 count:

BEFORE:

  $ perf stat -e instructions,msr/irperf/ true

   Performance counter stats for 'true':

             624,833      instructions
                   0      msr/irperf/

Simply set its enable bit - HWCR bit 30 - to make it start counting.

Enablement is restricted to all machines advertising IRPERF capability,
except those susceptible to an erratum that makes the IRPERF return
bad values.

That erratum occurs in Family 17h models 00-1fh [1], but not in F17h
models 20h and above [2].

AFTER (on a family 17h model 31h machine):

  $ perf stat -e instructions,msr/irperf/ true

   Performance counter stats for 'true':

             621,690      instructions
             622,490      msr/irperf/

[1] Revision Guide for AMD Family 17h Models 00h-0Fh Processors
[2] Revision Guide for AMD Family 17h Models 30h-3Fh Processors

The revision guides are available from the bugzilla Link below.

 [ bp: Massage commit message. ]

Fixes: e6eb5f4806951 ("perf/x86/msr: Add AMD IRPERF (Instructions Retired) performance counter")
Signed-off-by: Kim Phillips <kim.phillips@amd.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: stable@vger.kernel.org
Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
Link: http://lkml.kernel.org/r/20200214201805.13830-1-kim.phillips@amd.com
arch/x86/include/asm/msr-index.h
arch/x86/kernel/cpu/amd.c