lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.8 095/633] perf/x86/intel/uncore: Fix the scale of the IMC free-running events
    Date
    From: Kan Liang <kan.liang@linux.intel.com>

    [ Upstream commit 8191016a026b8dfbb14dea64efc8e723ee99fe65 ]

    The "MiB" result of the IMC free-running bandwidth events,
    uncore_imc_free_running/read/ and uncore_imc_free_running/write/ are 16
    times too small.

    The "MiB" value equals the raw IMC free-running bandwidth counter value
    times a "scale" which is inaccurate.

    The IMC free-running bandwidth events should be incremented per 64B
    cache line, not DWs (4 bytes). The "scale" should be 6.103515625e-5.
    Fix the "scale" for both Snow Ridge and Ice Lake.

    Fixes: 2b3b76b5ec67 ("perf/x86/intel/uncore: Add Ice Lake server uncore support")
    Fixes: ee49532b38dd ("perf/x86/intel/uncore: Add IMC uncore support for Snow Ridge")
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/20200928133240.12977-1-kan.liang@linux.intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/x86/events/intel/uncore_snbep.c | 12 ++++++------
    1 file changed, 6 insertions(+), 6 deletions(-)

    diff --git a/arch/x86/events/intel/uncore_snbep.c b/arch/x86/events/intel/uncore_snbep.c
    index 07652fa20ebbe..6a03fe8054a81 100644
    --- a/arch/x86/events/intel/uncore_snbep.c
    +++ b/arch/x86/events/intel/uncore_snbep.c
    @@ -4550,10 +4550,10 @@ static struct uncore_event_desc snr_uncore_imc_freerunning_events[] = {
    INTEL_UNCORE_EVENT_DESC(dclk, "event=0xff,umask=0x10"),

    INTEL_UNCORE_EVENT_DESC(read, "event=0xff,umask=0x20"),
    - INTEL_UNCORE_EVENT_DESC(read.scale, "3.814697266e-6"),
    + INTEL_UNCORE_EVENT_DESC(read.scale, "6.103515625e-5"),
    INTEL_UNCORE_EVENT_DESC(read.unit, "MiB"),
    INTEL_UNCORE_EVENT_DESC(write, "event=0xff,umask=0x21"),
    - INTEL_UNCORE_EVENT_DESC(write.scale, "3.814697266e-6"),
    + INTEL_UNCORE_EVENT_DESC(write.scale, "6.103515625e-5"),
    INTEL_UNCORE_EVENT_DESC(write.unit, "MiB"),
    { /* end: all zeroes */ },
    };
    @@ -5009,17 +5009,17 @@ static struct uncore_event_desc icx_uncore_imc_freerunning_events[] = {
    INTEL_UNCORE_EVENT_DESC(dclk, "event=0xff,umask=0x10"),

    INTEL_UNCORE_EVENT_DESC(read, "event=0xff,umask=0x20"),
    - INTEL_UNCORE_EVENT_DESC(read.scale, "3.814697266e-6"),
    + INTEL_UNCORE_EVENT_DESC(read.scale, "6.103515625e-5"),
    INTEL_UNCORE_EVENT_DESC(read.unit, "MiB"),
    INTEL_UNCORE_EVENT_DESC(write, "event=0xff,umask=0x21"),
    - INTEL_UNCORE_EVENT_DESC(write.scale, "3.814697266e-6"),
    + INTEL_UNCORE_EVENT_DESC(write.scale, "6.103515625e-5"),
    INTEL_UNCORE_EVENT_DESC(write.unit, "MiB"),

    INTEL_UNCORE_EVENT_DESC(ddrt_read, "event=0xff,umask=0x30"),
    - INTEL_UNCORE_EVENT_DESC(ddrt_read.scale, "3.814697266e-6"),
    + INTEL_UNCORE_EVENT_DESC(ddrt_read.scale, "6.103515625e-5"),
    INTEL_UNCORE_EVENT_DESC(ddrt_read.unit, "MiB"),
    INTEL_UNCORE_EVENT_DESC(ddrt_write, "event=0xff,umask=0x31"),
    - INTEL_UNCORE_EVENT_DESC(ddrt_write.scale, "3.814697266e-6"),
    + INTEL_UNCORE_EVENT_DESC(ddrt_write.scale, "6.103515625e-5"),
    INTEL_UNCORE_EVENT_DESC(ddrt_write.unit, "MiB"),
    { /* end: all zeroes */ },
    };
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 18:12    [W:3.521 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site