lkml.org 
[lkml]   [2021]   [Jun]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH V3 0/6] perf: Add Sapphire Rapids server uncore support
    Date
    From: Kan Liang <kan.liang@linux.intel.com>

    Changes since V2:
    - Use sysfs_emit() for the new sysfs attribute "alias" in patch 2.
    - Use ATTRIBUTE_GROUPS() for uncore_alias in patch 2

    Changes since V1:
    - Drop the symlink between two PMU names. Add a new attribute "alias"
    to indicate the old numeric name.
    - Add document and perf tool support for the new attribute "alias".
    (I once planned to use "caps/pmu_name" as the new attribute name in V1's
    discussion.
    https://lore.kernel.org/lkml/1edc6666-c4b3-ebf5-964a-e5ffc97d8563@linux.intel.com/
    The name has a different meaning in the CPU PMU, which may causes
    confusion. So the "alias" is used in V2.)
    - The number of the free-running counter units should be the same as
    the max index of the relative units plus one. Correct the number in
    the patch 4.

    Intel Sapphire Rapids supports a discovery mechanism, that allows an
    uncore driver to discover the different components ("boxes") of the
    chip.

    All the generic information of the uncore boxes should be retrieved from
    the discovery tables. This has been enabled with the commit edae1f06c2cd
    ("perf/x86/intel/uncore: Parse uncore discovery tables"). The uncore
    driver doesn't need to hard code the generic information for each uncore
    box. But we still need to enable various functionality that cannot be
    directly discovered. This is done in the patchset.

    Without this platform-specific enabling patch set, perf uses a type ID
    plus a box ID, e.g., uncore_type_0_0 to name an uncore PMU. With the
    patch set, perf has the mapping information from a type ID to a specific
    uncore unit. Just like the previous platforms, the uncore PMU can be
    named by the real PMU name, e.g., uncore_cha_0. Add a new attribute
    "alias" to indicate the old numeric name. The userspace perf tool is
    modified in the patch-set to handle both names.

    The uncore spec of Sapphire Rapids server can be found at
    https://cdrdv2.intel.com/v1/dl/getContent/642245

    Kan Liang (6):
    perf/x86/intel/uncore: Add Sapphire Rapids server support
    perf/x86/intel/uncore: Add alias PMU name
    perf/x86/intel/uncore: Factor out snr_uncore_mmio_map()
    perf/x86/intel/uncore: Support free-running counters on Sapphire
    Rapids server
    perf/x86/intel/uncore: Fix invalid unit check
    perf pmu: Add PMU alias support

    arch/x86/events/intel/uncore.c | 45 ++-
    arch/x86/events/intel/uncore.h | 4 +
    arch/x86/events/intel/uncore_discovery.c | 42 +--
    arch/x86/events/intel/uncore_discovery.h | 23 +-
    arch/x86/events/intel/uncore_snbep.c | 543 ++++++++++++++++++++++++++++++-
    tools/perf/arch/x86/util/pmu.c | 129 +++++++-
    tools/perf/util/parse-events.y | 4 +-
    tools/perf/util/pmu.c | 23 +-
    tools/perf/util/pmu.h | 5 +
    9 files changed, 770 insertions(+), 48 deletions(-)

    --
    2.7.4

    \
     
     \ /
      Last update: 2021-06-29 20:29    [W:3.571 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site