1. 14 Aug, 2022 6 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 5d6a0f4d
      Linus Torvalds authored
      Pull more xen updates from Juergen Gross:
      
       - fix the handling of the "persistent grants" feature negotiation
         between Xen blkfront and Xen blkback drivers
      
       - a cleanup of xen.config and adding xen.config to Xen section in
         MAINTAINERS
      
       - support HVMOP_set_evtchn_upcall_vector, which is more compliant to
         "normal" interrupt handling than the global callback used up to now
      
       - further small cleanups
      
      * tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        MAINTAINERS: add xen config fragments to XEN HYPERVISOR sections
        xen: remove XEN_SCRUB_PAGES in xen.config
        xen/pciback: Fix comment typo
        xen/xenbus: fix return type in xenbus_file_read()
        xen-blkfront: Apply 'feature_persistent' parameter when connect
        xen-blkback: Apply 'feature_persistent' parameter when connect
        xen-blkback: fix persistent grants negotiation
        x86/xen: Add support for HVMOP_set_evtchn_upcall_vector
      5d6a0f4d
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of... · 96f86ff0
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tool updates from Arnaldo Carvalho de Melo:
      
       - 'perf c2c' now supports ARM64, adjust its output to cope with
         differences with what is in x86_64. Now go find false sharing on
         ARM64 (at least Neoverse) as well!
      
       - Refactor the JSON processing, making the output more compact and thus
         reducing the size of the resulting perf binary
      
       - Improvements for 'perf offcpu' profiling, including tracking child
         processes
      
       - Update Intel JSON metrics and events files for broadwellde,
         broadwellx, cascadelakex, haswellx, icelakex, ivytown, jaketown,
         knightslanding, sapphirerapids, skylakex and snowridgex
      
       - Add 'perf stat' JSON output and a 'perf test' entry for it
      
       - Ignore memfd and anonymous mmap events if jitdump present
      
       - Refactor 'perf test' shell tests allowing subdirs
      
       - Fix an error handling path in 'parse_perf_probe_command()'
      
       - Fixes for the guest Intel PT tracing patchkit in the 1st batch of
         this merge window
      
       - Print debuginfod queries if -v option is used, to explain delays in
         processing when debuginfo servers are enabled to fetch DSOs with
         richer symbol tables
      
       - Improve error message for 'perf record -p not_existing_pid'
      
       - Fix openssl and libbpf feature detection
      
       - Add PMU pai_crypto event description for IBM z16 on 'perf list'
      
       - Fix typos and duplicated words on comments in various places
      
      * tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (81 commits)
        perf test: Refactor shell tests allowing subdirs
        perf vendor events: Update events for snowridgex
        perf vendor events: Update events and metrics for skylakex
        perf vendor events: Update metrics for sapphirerapids
        perf vendor events: Update events for knightslanding
        perf vendor events: Update metrics for jaketown
        perf vendor events: Update metrics for ivytown
        perf vendor events: Update events and metrics for icelakex
        perf vendor events: Update events and metrics for haswellx
        perf vendor events: Update events and metrics for cascadelakex
        perf vendor events: Update events and metrics for broadwellx
        perf vendor events: Update metrics for broadwellde
        perf jevents: Fold strings optimization
        perf jevents: Compress the pmu_events_table
        perf metrics: Copy entire pmu_event in find metric
        perf pmu-events: Hide the pmu_events
        perf pmu-events: Don't assume pmu_event is an array
        perf pmu-events: Move test events/metrics to JSON
        perf test: Use full metric resolution
        perf pmu-events: Hide pmu_events_map
        ...
      96f86ff0
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d785610f
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Ensure we never emit lwarx with EH=1 on 32-bit, because some 32-bit
         CPUs trap on it rather than ignoring it as they should.
      
       - Fix ftrace when building with clang, which was broken by some
         refactoring.
      
       - A couple of other minor fixes.
      
      Thanks to Christophe Leroy, Naveen N.  Rao, Nick Desaulniers, Ondrej
      Mosnacek, Pali Rohár, Russell Currey, and Segher Boessenkool.
      
      * tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kexec: Fix build failure from uninitialised variable
        powerpc/ppc-opcode: Fix PPC_RAW_TW()
        powerpc64/ftrace: Fix ftrace for clang builds
        powerpc: Make eh value more explicit when using lwarx
        powerpc: Don't hide eh field of lwarx behind a macro
        powerpc: Fix eh field when calling lwarx on PPC32
      d785610f
    • Linus Torvalds's avatar
      Merge tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · aea23e7c
      Linus Torvalds authored
      Pull /proc/mounts fix from Al Viro:
       "Fix for /proc/mounts escaping - escape the '#' character too"
      
      * tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: escape hash as well
      aea23e7c
    • Linus Torvalds's avatar
      Merge tag '5.20-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6 · 332019e2
      Linus Torvalds authored
      Pull more cifs updates from Steve French:
      
       - two fixes for stable, one for a lock length miscalculation, and
         another fixes a lease break timeout bug
      
       - improvement to handle leases, allows the close timeout to be
         configured more safely
      
       - five restructuring/cleanup patches
      
      * tag '5.20-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Do not access tcon->cfids->cfid directly from is_path_accessible
        cifs: Add constructor/destructors for tcon->cfid
        SMB3: fix lease break timeout when multiple deferred close handles for the same file.
        smb3: allow deferred close timeout to be configurable
        cifs: Do not use tcon->cfid directly, use the cfid we get from open_cached_dir
        cifs: Move cached-dir functions into a separate file
        cifs: Remove {cifs,nfs}_fscache_release_page()
        cifs: fix lock length calculation
      332019e2
    • David Howells's avatar
      afs: Enable multipage folio support · 8549a263
      David Howells authored
      Enable multipage folio support for the afs filesystem.
      
      Support has already been implemented in netfslib, fscache and cachefiles
      and in most of afs, but I've waited for Matthew Wilcox's latest folio
      changes.
      
      Note that it does require a change to afs_write_begin() to return the
      correct subpage.  This is a "temporary" change as we're working on
      getting rid of the need for ->write_begin() and ->write_end()
      completely, at least as far as network filesystems are concerned - but
      it doesn't prevent afs from making use of the capability.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Tested-by: kafs-testing@auristor.com
      Cc: Marc Dionne <marc.dionne@auristor.com>
      Cc: linux-afs@lists.infradead.org
      Link: https://lore.kernel.org/lkml/2274528.1645833226@warthog.procyon.org.uk/Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8549a263
  2. 13 Aug, 2022 34 commits
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f6eb0fed
      Linus Torvalds authored
      Pull timer fixes from Ingo Molnar:
       "Misc timer fixes:
      
         - fix a potential use-after-free bug in posix timers
      
         - correct a prototype
      
         - address a build warning"
      
      * tag 'timers-urgent-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        posix-cpu-timers: Cleanup CPU timers before freeing them during exec
        time: Correct the prototype of ns_to_kernel_old_timeval and ns_to_timespec64
        posix-timers: Make do_clock_gettime() static
      f6eb0fed
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c5f1e32e
      Linus Torvalds authored
      Pull x86 fix from Ingo Molnar:
       "Fix the 'IBPB mitigated RETBleed' mode of operation on AMD CPUs (not
        turned on by default), which also need STIBP enabled (if available) to
        be '100% safe' on even the shortest speculation windows"
      
      * tag 'x86-urgent-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/bugs: Enable STIBP for IBPB mitigated RETBleed
      c5f1e32e
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-5.20-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 04734361
      Linus Torvalds authored
      Pull more i2c updates from Wolfram Sang:
      
       - two driver fixes for issues introduced this cycle
      
       - one trivial driver improvement regarding ACPI
      
       - more DTS conversion and additions
      
       - documentation updates
      
       - subsystem-wide move from strlcpy to strscpy
      
      * tag 'i2c-for-5.20-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        docs: i2c: i2c-sysfs: fix hyperlinks
        docs: i2c: i2c-sysfs: improve wording
        docs: i2c: instantiating-devices: add syntax coloring to dts and C blocks
        docs: i2c: smbus-protocol: improve DataLow/DataHigh definition
        docs: i2c: i2c-protocol: remove unused legend items
        docs: i2c: i2c-protocol,smbus-protocol: remove nonsense words
        docs: i2c: i2c-protocol: update introductory paragraph
        i2c: move core from strlcpy to strscpy
        i2c: move drivers from strlcpy to strscpy
        i2c: kempld: Support ACPI I2C device declaration
        i2c: mediatek: add i2c compatible for MT8188
        dt-bindings: i2c: update bindings for mt8188 soc
        i2c: microchip-corei2c: fix erroneous late ack send
        dt-bindings: i2c: qcom,i2c-cci: convert to dtschema
        i2c: qcom-geni: Fix GPI DMA buffer sync-back
      04734361
    • Linus Torvalds's avatar
      Merge tag 'ntb-5.20' of https://github.com/jonmason/ntb · a976835f
      Linus Torvalds authored
      Pull NTB updates from Jon Mason:
       "Non-Transparent Bridge updates.
      
        Fix of heap data and clang warnings, support for a new Intel NTB
        device, and NTB EndPoint Function (EPF) support and the various fixes
        for that"
      
      * tag 'ntb-5.20' of https://github.com/jonmason/ntb:
        MAINTAINERS: add PCI Endpoint NTB drivers to NTB files
        NTB: EPF: Tidy up some bounds checks
        NTB: EPF: Fix error code in epf_ntb_bind()
        PCI: endpoint: pci-epf-vntb: reduce several globals to statics
        PCI: endpoint: pci-epf-vntb: fix error handle in epf_ntb_mw_bar_init()
        PCI: endpoint: Fix Kconfig dependency
        NTB: EPF: set pointer addr to null using NULL rather than 0
        Documentation: PCI: extend subheading underline for "lspci output" section
        Documentation: PCI: Use code-block block for scratchpad registers diagram
        Documentation: PCI: Add specification for the PCI vNTB function device
        PCI: endpoint: Support NTB transfer between RC and EP
        NTB: epf: Allow more flexibility in the memory BAR map method
        PCI: designware-ep: Allow pci_epc_set_bar() update inbound map address
        ntb: intel: add GNR support for Intel PCIe gen5 NTB
        NTB: ntb_tool: uninitialized heap data in tool_fn_write()
        ntb: idt: fix clang -Wformat warnings
      a976835f
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.20-merge-8' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 9872e4a8
      Linus Torvalds authored
      Pull more xfs updates from Darrick Wong:
       "There's not a lot this time around, just the usual bug fixes and
        corrections for missing error returns.
      
         - Return error codes from block device flushes to userspace
      
         - Fix a deadlock between reclaim and mount time quotacheck
      
         - Fix an unnecessary ENOSPC return when doing COW on a filesystem
           with severe free space fragmentation
      
         - Fix a miscalculation in the transaction reservation computations
           for file removal operations"
      
      * tag 'xfs-5.20-merge-8' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: fix inode reservation space for removing transaction
        xfs: Fix false ENOSPC when performing direct write on a delalloc extent in cow fork
        xfs: fix intermittent hang during quotacheck
        xfs: check return codes when flushing block devices
      9872e4a8
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · e140f731
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "Mostly small bug fixes and trivial updates.
      
        The major new core update is a change to the way device, target and
        host reference counting is done to try to make it more robust (this
        change has soaked for a while to try to winkle out any bugs)"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: pm8001: Fix typo 'the the' in comment
        scsi: megaraid_sas: Remove redundant variable cmd_type
        scsi: FlashPoint: Remove redundant variable bm_int_st
        scsi: zfcp: Fix missing auto port scan and thus missing target ports
        scsi: core: Call blk_mq_free_tag_set() earlier
        scsi: core: Simplify LLD module reference counting
        scsi: core: Make sure that hosts outlive targets
        scsi: core: Make sure that targets outlive devices
        scsi: ufs: ufs-pci: Correct check for RESET DSM
        scsi: target: core: De-RCU of se_lun and se_lun acl
        scsi: target: core: Fix race during ACL removal
        scsi: ufs: core: Correct ufshcd_shutdown() flow
        scsi: ufs: core: Increase the maximum data buffer size
        scsi: lpfc: Check the return value of alloc_workqueue()
      e140f731
    • Linus Torvalds's avatar
      Merge tag 'block-6.0-2022-08-12' of git://git.kernel.dk/linux-block · abe7a481
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request
           - print nvme connect Linux error codes properly (Amit Engel)
           - fix the fc_appid_store return value (Christoph Hellwig)
           - fix a typo in an error message (Christophe JAILLET)
           - add another non-unique identifier quirk (Dennis P. Kliem)
           - check if the queue is allocated before stopping it in nvme-tcp
             (Maurizio Lombardi)
           - restart admin queue if the caller needs to restart queue in
             nvme-fc (Ming Lei)
           - use kmemdup instead of kmalloc + memcpy in nvme-auth (Zhang
             Xiaoxu)
      
       - __alloc_disk_node() error handling fix (Rafael)
      
      * tag 'block-6.0-2022-08-12' of git://git.kernel.dk/linux-block:
        block: Do not call blk_put_queue() if gendisk allocation fails
        nvme-pci: add NVME_QUIRK_BOGUS_NID for ADATA XPG GAMMIX S70
        nvme-tcp: check if the queue is allocated before stopping it
        nvme-fabrics: Fix a typo in an error message
        nvme-fabrics: parse nvme connect Linux error codes
        nvmet-auth: use kmemdup instead of kmalloc + memcpy
        nvme-fc: fix the fc_appid_store return value
        nvme-fc: restart admin queue if the caller needs to restart queue
      abe7a481
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.0-2022-08-13' of git://git.kernel.dk/linux-block · 1da8cf96
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - Regression fix for this merge window, fixing a wrong order of
         arguments for io_req_set_res() for passthru (Dylan)
      
       - Fix for the audit code leaking context memory (Peilin)
      
       - Ensure that provided buffers are memcg accounted (Pavel)
      
       - Correctly handle short zero-copy sends (Pavel)
      
       - Sparse warning fixes for the recvmsg multishot command (Dylan)
      
       - Error handling fix for passthru (Anuj)
      
       - Remove randomization of struct kiocb fields, to avoid it growing in
         size if re-arranged in such a fashion that it grows more holes or
         padding (Keith, Linus)
      
       - Small series improving type safety of the sqe fields (Stefan)
      
      * tag 'io_uring-6.0-2022-08-13' of git://git.kernel.dk/linux-block:
        io_uring: add missing BUILD_BUG_ON() checks for new io_uring_sqe fields
        io_uring: make io_kiocb_to_cmd() typesafe
        fs: don't randomize struct kiocb fields
        io_uring: consistently make use of io_notif_to_data()
        io_uring: fix error handling for io_uring_cmd
        io_uring: fix io_recvmsg_prep_multishot sparse warnings
        io_uring/net: send retry for zerocopy
        io_uring: mem-account pbuf buckets
        audit, io_uring, io-wq: Fix memory leak in io_sq_thread() and io_wqe_worker()
        io_uring: pass correct parameters to io_req_set_res
      1da8cf96
    • Carsten Haitzler's avatar
      perf test: Refactor shell tests allowing subdirs · 7391db64
      Carsten Haitzler authored
      This is a prelude to adding more tests to shell tests and in order to
      support putting those tests into subdirectories, I need to change the
      test code that scans/finds and runs them.
      
      To support subdirs I have to recurse so it's time to refactor the code
      to allow this and centralize the shell script finding into one location
      and only one single scan that builds a list of all the found tests in
      memory instead of it being duplicated in 3 places.
      
      This code also optimizes things like knowing the max width of desciption
      strings (as we can do that while we scan instead of a whole new pass of
      opening files).
      
      It also more cleanly filters scripts to see only *.sh files thus
      skipping random other files in directories like *~ backup files, other
      random junk/data files that may appear and the scripts must be
      executable to make the cut (this ensures the script lib dir is not seen
      as scripts to run).
      
      This avoids perf test running previous older versions of test scripts
      that are editor backup files as well as skipping perf.data files that
      may appear and so on.
      Reviewed-by: default avatarLeo Yan <leo.yan@linaro.org>
      Signed-off-by: default avatarCarsten Haitzler <carsten.haitzler@arm.com>
      Tested-by: default avatarLeo Yan <leo.yan@linaro.org>
      Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
      Cc: coresight@lists.linaro.org
      Link: https://lore.kernel.org/r/20220812121641.336465-2-carsten.haitzler@foss.arm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7391db64
    • Zhengjun Xing's avatar
      perf vendor events: Update events for snowridgex · aa0d6e9c
      Zhengjun Xing authored
      Update the events to v1.20, update events for snowridgex by the latest
      event converter tools.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the snowridgex files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-12-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      aa0d6e9c
    • Zhengjun Xing's avatar
      perf vendor events: Update events and metrics for skylakex · ce87616d
      Zhengjun Xing authored
      Update the events to v1.28, the metrics are based on TMA 4.4 full, update
      events and metrics for skylakex by the latest event converter tools.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the skylakex files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-11-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ce87616d
    • Zhengjun Xing's avatar
      perf vendor events: Update metrics for sapphirerapids · 74d8ca6d
      Zhengjun Xing authored
      The metrics are based on TMA 4.4 full, add new metrics “UNCORE_FREQ” for
      sapphirerapids.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the sapphirerapids files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-10-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      74d8ca6d
    • Zhengjun Xing's avatar
      perf vendor events: Update events for knightslanding · 107630e6
      Zhengjun Xing authored
      Update the events to v9, update events for knightslanding by the latest
      event converter tools.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the knightslanding files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-9-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      107630e6
    • Zhengjun Xing's avatar
      perf vendor events: Update metrics for jaketown · b823ee18
      Zhengjun Xing authored
      The metrics are based on TMA 4.4 full, add new metrics “UNCORE_FREQ” for
      jaketown.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the jaketown files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-8-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b823ee18
    • Zhengjun Xing's avatar
      perf vendor events: Update metrics for ivytown · cb73eeb9
      Zhengjun Xing authored
      The metrics are based on TMA 4.4 full, add new metrics “UNCORE_FREQ” for
      ivytown.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the ivytown files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-7-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      cb73eeb9
    • Zhengjun Xing's avatar
      perf vendor events: Update events and metrics for icelakex · b8d4fbfb
      Zhengjun Xing authored
      Update the events to v1.15, the metrics are based on TMA 4.4 full, update
      events and metrics for icelakex by the latest event converter tools.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the icelakex files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-6-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b8d4fbfb
    • Zhengjun Xing's avatar
      perf vendor events: Update events and metrics for haswellx · 575c3640
      Zhengjun Xing authored
      Update the events to v25, the metrics are based on TMA 4.4 full, update
      events and metrics for haswellx by the latest event converter tools.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the haswellx files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-5-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      575c3640
    • Zhengjun Xing's avatar
      perf vendor events: Update events and metrics for cascadelakex · c6e9c044
      Zhengjun Xing authored
      Update to v16, the metrics are based on TMA 4.4 full, update events and add
      new metrics “UNCORE_FREQ” for cascadelakex.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the cascadelakex files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-4-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c6e9c044
    • Zhengjun Xing's avatar
      perf vendor events: Update events and metrics for broadwellx · e349fa6c
      Zhengjun Xing authored
      Update to v19, the metrics are based on TMA 4.4 full, update events and add
      new metrics “UNCORE_FREQ” for broadwellx.
      
      Use script at:
      https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the broadwellx files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-3-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e349fa6c
    • Zhengjun Xing's avatar
      perf vendor events: Update metrics for broadwellde · bf79e18f
      Zhengjun Xing authored
      The metrics are based on TMA 4.4 full, add new metrics “UNCORE_FREQ” for
      broadwellde.
      
      Use script at:
      
        https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py
      
      to download and generate the latest events and metrics. Manually copy
      the broadwellde files into perf.
      Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
      Tested-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220812085239.3089231-2-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      bf79e18f
    • Ian Rogers's avatar
      perf jevents: Fold strings optimization · d0313e62
      Ian Rogers authored
      If a shorter string ends a longer string then the shorter string may
      reuse the longer string at an offset. For example, on x86 the event
      arith.cycles_div_busy and cycles_div_busy can be folded, even though
      they have difference names the strings are identical after 6
      characters. cycles_div_busy can reuse the arith.cycles_div_busy string
      at an offset of 6.
      
      In pmu-events.c this looks like the following where the 'also:' lists
      folded strings:
      
      /* offset=177541 */ "arith.cycles_div_busy\000\000pipeline\000Cycles the divider is busy\000\000\000event=0x14,period=2000000,umask=0x1\000\000\000\000\000\000\000\000\000" /* also: cycles_div_busy\000\000pipeline\000Cycles the divider is busy\000\000\000event=0x14,period=2000000,umask=0x1\000\000\000\000\000\000\000\000\000 */
      
      As jevents.py combines multiple strings for an event into a larger
      string, the amount of folding is minimal as all parts of the event must
      align. Other organizations can benefit more from folding, but lose space
      by say recording more offsets.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-15-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      d0313e62
    • Ian Rogers's avatar
      perf jevents: Compress the pmu_events_table · 9118259c
      Ian Rogers authored
      The pmu_events array requires 15 pointers per entry which in position
      independent code need relocating. Change the array to be an array of
      offsets within a big C string. Only the offset of the first variable is
      required, subsequent variables are stored in order after the \0
      terminator (requiring a byte per variable rather than 4 bytes per
      offset).
      
      The file size savings are:
      
      no jevents - the same 19,788,464bytes
      x86 jevents - ~16.7% file size saving 23,744,288bytes vs 28,502,632bytes
      all jevents - ~19.5% file size saving 24,469,056bytes vs 30,379,920bytes
      default build options plus NO_LIBBFD=1.
      
      For example, the x86 build savings come from .rela.dyn and
      .data.rel.ro becoming smaller by 3,157,032bytes and 3,042,016bytes
      respectively. .rodata increases by 1,432,448bytes, giving an overall
      4,766,600bytes saving.
      
      To make metric strings more shareable, the topic is changed from say
      'skx metrics' to just 'metrics'.
      
      To try to help with the memory layout the pmu_events are ordered as used
      by perf qsort comparator functions.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-14-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9118259c
    • Ian Rogers's avatar
      perf metrics: Copy entire pmu_event in find metric · d3abd7b8
      Ian Rogers authored
      The pmu_event passed to the pmu_events_table_for_each_event is invalid
      after the loop. Copy the entire struct in metricgroup__find_metric.
      Reduce the scope of this function to static.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-13-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      d3abd7b8
    • Ian Rogers's avatar
      perf pmu-events: Hide the pmu_events · 1ba3752a
      Ian Rogers authored
      Hide that the pmu_event structs are an array with a new wrapper struct.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-12-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1ba3752a
    • Ian Rogers's avatar
      perf pmu-events: Don't assume pmu_event is an array · 660842e4
      Ian Rogers authored
      The current code assumes that a struct pmu_event can be iterated over
      forward until a NULL pmu_event is encountered.
      
      This makes it difficult to refactor pmu_event.
      
      Add a loop function taking a callback function that's passed the struct
      pmu_event.
      
      This way the pmu_event is only needed for one element and not an entire
      array.
      
      Switch existing code iterating over the pmu_event arrays to use the new
      loop function pmu_events_table_for_each_event.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-11-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      660842e4
    • Ian Rogers's avatar
      perf pmu-events: Move test events/metrics to JSON · 7ae5c03a
      Ian Rogers authored
      Move arrays of pmu_events into the JSON code so that it may be
      regenerated and modified by the jevents.py script.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-10-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7ae5c03a
    • Ian Rogers's avatar
      perf test: Use full metric resolution · 64234c14
      Ian Rogers authored
      The simple metric resolution doesn't handle recursion properly, switch
      to use the full resolution as with the parse-metric tests which also
      increases coverage. Don't set the values for the metric backward as
      failures to generate a result are ignored.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-9-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      64234c14
    • Ian Rogers's avatar
      perf pmu-events: Hide pmu_events_map · 29be2fe0
      Ian Rogers authored
      Move usage of the table to pmu-events.c so it may be hidden. By
      abstracting the table the implementation can later be changed.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-8-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      29be2fe0
    • Ian Rogers's avatar
      perf pmu-events: Avoid passing pmu_events_map · eeac7730
      Ian Rogers authored
      Preparation for hiding pmu_events_map as an implementation detail. While
      the map is passed, the table of events is all that is normally wanted.
      
      While modifying the function's types, rename pmu_events_map__find to
      pmu_events_table__find to match later encapsulation. Similarly rename
      pmu_add_cpu_aliases_map to pmu_add_cpu_aliases_table.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-7-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      eeac7730
    • Ian Rogers's avatar
      perf pmu-events: Hide pmu_sys_event_tables · 2519db2a
      Ian Rogers authored
      Move usage of the table to pmu-events.c so it may be hidden. By
      abstracting the table the implementation can later be changed.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-6-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      2519db2a
    • Ian Rogers's avatar
      perf jevents: Sort JSON files entries · 7b2f844c
      Ian Rogers authored
      Sort the JSON files entries on conversion to C. The sort order tries to
      replicated cmp_sevent from pmu.c so that the input there is already
      sorted except for sysfs events. Specifically, the sort order is given by
      the tuple:
      
      (not j.desc is None, fix_none(j.topic), fix_none(j.name), fix_none(j.pmu), fix_none(j.metric_name))
      
      which is putting events with descriptions and topics before those
      without, then sorting by name, then pmu and finally metric_name
      
      Add the topic to JsonEvent on reading to simplify. Remove an unnecessary
      lambda in the JSON reading.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-5-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7b2f844c
    • Ian Rogers's avatar
      perf jevents: Provide path to JSON file on error · ee2ce6fd
      Ian Rogers authored
      If a JSONDecoderError or similar is raised then it is useful to know the
      path. Print this and then raise the exception agan.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-4-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ee2ce6fd
    • Ian Rogers's avatar
      perf jevents: Remove the type/version variables · f793ae18
      Ian Rogers authored
      pmu_events_map has a type variable that is always initialized to "core"
      and a version variable that is never read. Remove these from the API as
      it is straightforward to add them back when necessary.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-3-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f793ae18
    • Ian Rogers's avatar
      perf jevent: Add an 'all' architecture argument · 099b157c
      Ian Rogers authored
      When 'all' is passed as the architecture generate a mapping table for
      all architectures. This simplifies testing. To identify the table for an
      architecture add an arch variable to the pmu_events_map.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: https://lore.kernel.org/r/20220812230949.683239-2-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      099b157c