Skip to content
Permalink
Yi-Zhuang/powe…
Switch branches/tags

Commits on Jul 14, 2021

  1. powerpc/rtas_flash: fix a potential buffer overflow

    Since snprintf() returns the possible output size instead of the
    actual output size, the available flash_msg length returned by
    get_validate_flash_msg may exceed the given buffer limit when
    simple_read_from_buffer calls copy_to_user
    
    Signed-off-by: Yi Zhuang <zhuangyi1@huawei.com>
    Yi Zhuang authored and intel-lab-lkp committed Jul 14, 2021

Commits on Jul 2, 2021

  1. Merge tag 'powerpc-5.14-1' of git://git.kernel.org/pub/scm/linux/kern…

    …el/git/powerpc/linux
    
    Pull powerpc updates from Michael Ellerman:
    
     - A big series refactoring parts of our KVM code, and converting some
       to C.
    
     - Support for ARCH_HAS_SET_MEMORY, and ARCH_HAS_STRICT_MODULE_RWX on
       some CPUs.
    
     - Support for the Microwatt soft-core.
    
     - Optimisations to our interrupt return path on 64-bit.
    
     - Support for userspace access to the NX GZIP accelerator on PowerVM on
       Power10.
    
     - Enable KUAP and KUEP by default on 32-bit Book3S CPUs.
    
     - Other smaller features, fixes & cleanups.
    
    Thanks to: Andy Shevchenko, Aneesh Kumar K.V, Arnd Bergmann, Athira
    Rajeev, Baokun Li, Benjamin Herrenschmidt, Bharata B Rao, Christophe
    Leroy, Daniel Axtens, Daniel Henrique Barboza, Finn Thain, Geoff Levand,
    Haren Myneni, Jason Wang, Jiapeng Chong, Joel Stanley, Jordan Niethe,
    Kajol Jain, Nathan Chancellor, Nathan Lynch, Naveen N. Rao, Nicholas
    Piggin, Nick Desaulniers, Paul Mackerras, Russell Currey, Sathvika
    Vasireddy, Shaokun Zhang, Stephen Rothwell, Sudeep Holla, Suraj Jitindar
    Singh, Tom Rix, Vaibhav Jain, YueHaibing, Zhang Jianhua, and Zhen Lei.
    
    * tag 'powerpc-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (218 commits)
      powerpc: Only build restart_table.c for 64s
      powerpc/64s: move ret_from_fork etc above __end_soft_masked
      powerpc/64s/interrupt: clean up interrupt return labels
      powerpc/64/interrupt: add missing kprobe annotations on interrupt exit symbols
      powerpc/64: enable MSR[EE] in irq replay pt_regs
      powerpc/64s/interrupt: preserve regs->softe for NMI interrupts
      powerpc/64s: add a table of implicit soft-masked addresses
      powerpc/64e: remove implicit soft-masking and interrupt exit restart logic
      powerpc/64e: fix CONFIG_RELOCATABLE build warnings
      powerpc/64s: fix hash page fault interrupt handler
      powerpc/4xx: Fix setup_kuep() on SMP
      powerpc/32s: Fix setup_{kuap/kuep}() on SMP
      powerpc/interrupt: Use names in check_return_regs_valid()
      powerpc/interrupt: Also use exit_must_hard_disable() on PPC32
      powerpc/sysfs: Replace sizeof(arr)/sizeof(arr[0]) with ARRAY_SIZE
      powerpc/ptrace: Refactor regs_set_return_{msr/ip}
      powerpc/ptrace: Move set_return_regs_changed() before regs_set_return_{msr/ip}
      powerpc/stacktrace: Fix spurious "stale" traces in raise_backtrace_ipi()
      powerpc/pseries/vas: Include irqdomain.h
      powerpc: mark local variables around longjmp as volatile
      ...
    torvalds committed Jul 2, 2021
  2. Merge tag 'asm-generic-unaligned-5.14' of git://git.kernel.org/pub/sc…

    …m/linux/kernel/git/arnd/asm-generic
    
    Pull asm/unaligned.h unification from Arnd Bergmann:
     "Unify asm/unaligned.h around struct helper
    
      The get_unaligned()/put_unaligned() helpers are traditionally
      architecture specific, with the two main variants being the
      "access-ok.h" version that assumes unaligned pointer accesses always
      work on a particular architecture, and the "le-struct.h" version that
      casts the data to a byte aligned type before dereferencing, for
      architectures that cannot always do unaligned accesses in hardware.
    
      Based on the discussion linked below, it appears that the access-ok
      version is not realiable on any architecture, but the struct version
      probably has no downsides. This series changes the code to use the
      same implementation on all architectures, addressing the few
      exceptions separately"
    
    Link: https://lore.kernel.org/lkml/75d07691-1e4f-741f-9852-38c0b4f520bc@synopsys.com/
    Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100363
    Link: https://lore.kernel.org/lkml/20210507220813.365382-14-arnd@kernel.org/
    Link: git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git unaligned-rework-v2
    Link: https://lore.kernel.org/lkml/CAHk-=whGObOKruA_bU3aPGZfoDqZM1_9wBkwREp0H0FgR-90uQ@mail.gmail.com/
    
    * tag 'asm-generic-unaligned-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
      asm-generic: simplify asm/unaligned.h
      asm-generic: uaccess: 1-byte access is always aligned
      netpoll: avoid put_unaligned() on single character
      mwifiex: re-fix for unaligned accesses
      apparmor: use get_unaligned() only for multi-byte words
      partitions: msdos: fix one-byte get_unaligned()
      asm-generic: unaligned always use struct helpers
      asm-generic: unaligned: remove byteshift helpers
      powerpc: use linux/unaligned/le_struct.h on LE power7
      m68k: select CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
      sh: remove unaligned access for sh4a
      openrisc: always use unaligned-struct header
      asm-generic: use asm-generic/unaligned.h for most architectures
    torvalds committed Jul 2, 2021
  3. Merge tag 'perf-tools-for-v5.14-2021-07-01' of git://git.kernel.org/p…

    …ub/scm/linux/kernel/git/acme/linux
    
    Pull perf tool updates from Arnaldo Carvalho de Melo:
     "Tools:
    
       - Add cgroup support for 'perf top' (-G).
    
       - Add support for KVM MSRs in 'perf kvm stat'
    
       - Support probes on init functions in 'perf probe', to support the
         bootconfig format.
    
       - Improve error reporting in 'perf probe'.
    
       - No need to synthesize BUILD_ID records in 'perf inject' if the
         MMAP2 records have build ids already.
    
       - Allow toggling source code ('s' hotkey) in 'perf annotate' in all
         lines.
    
       - Add itrace options support to 'perf annotate'.
    
       - Support to custom DSO filters for 'perf script'.
    
      Hardware enablement:
    
       - Support the HYBRID_TOPOLOGY and HYBRID_CPU_PMU_CAPS features in the
         perf.data file header.
    
       - Support PMU prefix for mem-load and mem-store events, to support
         hybrid (BIG little) CPUs such as Intel's Alderlake.
    
       - Support hybrid CPUs in 'perf mem' and 'perf c2c'.
    
      Hardware tracing:
    
       - Intel PT now supports tracing KVM guests.
    
       - Timestamp improvements for ARM's Coresight.
    
      Build:
    
       - Add 'make -C tools/perf build-test' entries for
         libopencsd/CORESIGHT=1 and libbpf/LIBBPF_DYNAMIC=1.
    
       - Use bison's --file-prefix-map option to avoid storing full paths
         when using O= in the perf build.
    
      Tests:
    
       - Improve the 'perf test' entries for libpfm4 and BPF counters.
    
      Misc:
    
       - Sync msr-index.h, mount.h, kvm headers with the kernel originals.
    
       - Add vendor events and metrics for Intel's Icelake Server & Client"
    
    * tag 'perf-tools-for-v5.14-2021-07-01' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (123 commits)
      perf session: Add missing evlist__delete when deleting a session
      perf annotate: Allow 's' on source code lines
      perf dlfilter: Add object_code() to perf_dlfilter_fns
      perf dlfilter: Add attr() to perf_dlfilter_fns
      perf dlfilter: Add srcline() to perf_dlfilter_fns
      perf dlfilter: Add insn() to perf_dlfilter_fns
      perf dlfilter: Add resolve_address() to perf_dlfilter_fns
      perf build: Install perf_dlfilter.h
      perf script: Add option to pass arguments to dlfilters
      perf script: Add option to list dlfilters
      perf script: Add dlfilter__filter_event_early()
      perf script: Add API for filtering via dynamically loaded shared object
      perf llvm: Return -ENOMEM when asprintf() fails
      perf cs-etm: Delay decode of non-timeless data until cs_etm__flush_events()
      tools headers UAPI: Synch KVM's svm.h header with the kernel
      tools kvm headers arm64: Update KVM headers from the kernel sources
      tools headers UAPI: Sync linux/kvm.h with the kernel sources
      tools headers cpufeatures: Sync with the kernel sources
      tools include UAPI: Update linux/mount.h copy
      tools arch x86: Sync the msr-index.h copy with the kernel sources
      ...
    torvalds committed Jul 2, 2021
  4. Merge branch 'akpm' (patches from Andrew)

    Merge more updates from Andrew Morton:
     "190 patches.
    
      Subsystems affected by this patch series: mm (hugetlb, userfaultfd,
      vmscan, kconfig, proc, z3fold, zbud, ras, mempolicy, memblock,
      migration, thp, nommu, kconfig, madvise, memory-hotplug, zswap,
      zsmalloc, zram, cleanups, kfence, and hmm), procfs, sysctl, misc,
      core-kernel, lib, lz4, checkpatch, init, kprobes, nilfs2, hfs,
      signals, exec, kcov, selftests, compress/decompress, and ipc"
    
    * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (190 commits)
      ipc/util.c: use binary search for max_idx
      ipc/sem.c: use READ_ONCE()/WRITE_ONCE() for use_global_lock
      ipc: use kmalloc for msg_queue and shmid_kernel
      ipc sem: use kvmalloc for sem_undo allocation
      lib/decompressors: remove set but not used variabled 'level'
      selftests/vm/pkeys: exercise x86 XSAVE init state
      selftests/vm/pkeys: refill shadow register after implicit kernel write
      selftests/vm/pkeys: handle negative sys_pkey_alloc() return code
      selftests/vm/pkeys: fix alloc_random_pkey() to make it really, really random
      kcov: add __no_sanitize_coverage to fix noinstr for all architectures
      exec: remove checks in __register_bimfmt()
      x86: signal: don't do sas_ss_reset() until we are certain that sigframe won't be abandoned
      hfsplus: report create_date to kstat.btime
      hfsplus: remove unnecessary oom message
      nilfs2: remove redundant continue statement in a while-loop
      kprobes: remove duplicated strong free_insn_page in x86 and s390
      init: print out unknown kernel parameters
      checkpatch: do not complain about positive return values starting with EPOLL
      checkpatch: improve the indented label test
      checkpatch: scripts/spdxcheck.py now requires python3
      ...
    torvalds committed Jul 2, 2021
  5. Merge branch 'for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/tj/cgroup
    
    Pull cgroup updates from Tejun Heo:
    
     - cgroup.kill is added which implements atomic killing of the whole
       subtree.
    
       Down the line, this should be able to replace the multiple userland
       implementations of "keep killing till empty".
    
     - PSI can now be turned off at boot time to avoid overhead for
       configurations which don't care about PSI.
    
    * 'for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
      cgroup: make per-cgroup pressure stall tracking configurable
      cgroup: Fix kernel-doc
      cgroup: inline cgroup_task_freeze()
      tests/cgroup: test cgroup.kill
      tests/cgroup: move cg_wait_for(), cg_prepare_for_wait()
      tests/cgroup: use cgroup.kill in cg_killall()
      docs/cgroup: add entry for cgroup.kill
      cgroup: introduce cgroup.kill
    torvalds committed Jul 2, 2021
  6. Merge branch 'for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/dennis/percpu
    
    Pull percpu updates from Dennis Zhou:
    
     - percpu chunk depopulation - depopulate backing pages for chunks with
       empty pages when we exceed a global threshold without those pages.
       This lets us reclaim a portion of memory that would previously be
       lost until the full chunk would be freed (possibly never).
    
     - memcg accounting cleanup - previously separate chunks were managed
       for normal allocations and __GFP_ACCOUNT allocations. These are now
       consolidated which cleans up the code quite a bit.
    
     - a few misc clean ups for clang warnings
    
    * 'for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu:
      percpu: optimize locking in pcpu_balance_workfn()
      percpu: initialize best_upa variable
      percpu: rework memcg accounting
      mm, memcg: introduce mem_cgroup_kmem_disabled()
      mm, memcg: mark cgroup_memory_nosocket, nokmem and noswap as __ro_after_init
      percpu: make symbol 'pcpu_free_slot' static
      percpu: implement partial chunk depopulation
      percpu: use pcpu_free_slot instead of pcpu_nr_slots - 1
      percpu: factor out pcpu_check_block_hint()
      percpu: split __pcpu_balance_workfn()
      percpu: fix a comment about the chunks ordering
    torvalds committed Jul 2, 2021
  7. Merge tag 'mips_5.14' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/mips/linux
    
    Pull MIPS updates from Thomas Bogendoerfer:
    
     - add support for OpeneEmbed SOM9331 board
    
     - Ingenic fixes/improvments
    
     - other fixes and cleanups
    
    * tag 'mips_5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (39 commits)
      MIPS: Fix PKMAP with 32-bit MIPS huge page support
      MIPS: CI20: Add second percpu timer for SMP.
      MIPS: CI20: Reduce clocksource to 750 kHz.
      MIPS: Ingenic: Add MAC syscon nodes for Ingenic SoCs.
      dt-bindings: clock: Add documentation for MAC PHY control bindings.
      MIPS: X1830: Respect cell count of common properties.
      MIPS: set mips32r5 for virt extensions
      MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops
      MIPS: MT extensions are not available on MIPS32r1
      mips/kvm: Use BUG_ON instead of if condition followed by BUG
      MIPS: OCTEON: octeon-usb: Use devm_platform_get_and_ioremap_resource()
      MIPS: add PMD table accounting into MIPS'pmd_alloc_one
      MIPS: Loongson64: fix spelling of SPDX tag
      MIPS: ingenic: rs90: Add dedicated VRAM memory region
      MIPS: ingenic: gcw0: Set codec to cap-less mode for FM radio
      MIPS: ingenic: jz4780: Fix I2C nodes to match DT doc
      MIPS: ingenic: Select CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
      MIPS: Kconfig: ingenic: Ensure MACH_INGENIC_GENERIC selects all SoCs
      MIPS: cpu-probe: Fix FPU detection on Ingenic JZ4760(B)
      MIPS: boot: Support specifying UART port on Ingenic SoCs
      ...
    torvalds committed Jul 2, 2021

Commits on Jul 1, 2021

  1. Merge tag 'pinctrl-v5.14-1' of git://git.kernel.org/pub/scm/linux/ker…

    …nel/git/linusw/linux-pinctrl
    
    Pull pin control updates from Linus Walleij:
     "This is the bulk of pin control changes for the v5.14 kernel. Not so
      much going on. No core changes, just drivers.
    
      The most interesting would be that MIPS Ralink is migrating to pin
      control and we have some bindings but not yet code for the Apple M1
      pin controller.
    
      New drivers:
    
       - Last merge window we created a driver for the Ralink RT2880. We are
         now moving the Ralink SoC pin control drivers out of the MIPS
         architecture code and into the pin control subsystem. This concerns
         RT288X, MT7620, RT305X, RT3883 and MT7621.
    
       - Qualcomm SM6125 SoC pin control driver.
    
       - Qualcomm spmi-gpio support for PM7325.
    
       - Qualcomm spmi-mpp also handles PMI8994 (just a compatible string)
    
       - Mediatek MT8365 SoC pin controller.
    
       - New device HID for the AMD GPIO controller.
    
      Improvements:
    
       - Pin bias config support for a slew of Renesas pin controllers.
    
       - Incremental improvements and non-urgent bug fixes to the Renesas
         SoC drivers.
    
       - Implement irq_set_wake on the AMD pin controller so we can wake up
         from external pin events.
    
      Misc:
    
       - Devicetree bindings for the Apple M1 pin controller, we will
         probably see a proper driver for this soon as well"
    
    * tag 'pinctrl-v5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (54 commits)
      pinctrl: ralink: rt305x: add missing include
      pinctrl: stm32: check for IRQ MUX validity during alloc()
      pinctrl: zynqmp: some code cleanups
      drivers: qcom: pinctrl: Add pinctrl driver for sm6125
      dt-bindings: pinctrl: qcom: sm6125: Document SM6125 pinctrl driver
      dt-bindings: pinctrl: mcp23s08: add documentation for reset-gpios
      pinctrl: mcp23s08: Add optional reset GPIO
      pinctrl: mediatek: fix mode encoding
      pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
      pinctrl: bcm: Constify static pinmux_ops
      pinctrl: bcm: Constify static pinctrl_ops
      pinctrl: ralink: move RT288X SoC pinmux config into a new 'pinctrl-rt288x.c' file
      pinctrl: ralink: move MT7620 SoC pinmux config into a new 'pinctrl-mt7620.c' file
      pinctrl: ralink: move RT305X SoC pinmux config into a new 'pinctrl-rt305x.c' file
      pinctrl: ralink: move RT3883 SoC pinmux config into a new 'pinctrl-rt3883.c' file
      pinctrl: ralink: move MT7621 SoC pinmux config into a new 'pinctrl-mt7621.c' file
      pinctrl: ralink: move ralink architecture pinmux header into the driver
      pinctrl: single: config: enable the pin's input
      pinctrl: mtk: Fix mt8365 Kconfig dependency
      pinctrl: mcp23s08: fix race condition in irq handler
      ...
    torvalds committed Jul 1, 2021
  2. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/rdma/rdma
    
    Pull rdma updates from Jason Gunthorpe:
     "This contains a replacement driver for Intel iWarp hardware. This new
      driver supports the old ethernet hardware and also newer chips that
      can do ROCE.
    
      Other than that, this contains the typical mix of patches:
    
       - Driver updates and cleanups for bnxt_re, cxgb4, mlx4, and mlx5
    
       - Many static checker driven code clean ups, including a wide
         refcount_t conversion
    
       - Several series for the hns driver, more HIP09 HW capabilities,
         migration to new HW register manipulators, and code cleanups
    
       - Minor fixes and improvements in srp, rts, and cm
    
       - Improvements throughout for sysfs related code to use
         DEVICE_ATTR_*, make the ib_port sysfs first-class, and overall use
         sysfs APIs properly
    
       - Intel's new irdma driver replacing i40iw
    
       - rxe general clean ups and Memory Window support"
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (211 commits)
      RDMA/core: Always release restrack object
      RDMA/mlx5: Don't access NULL-cleared mpi pointer
      RDMA/irdma: Fix potential overflow expression in irdma_prm_get_pbles
      RDMA/irdma: Check contents of user-space irdma_mem_reg_req object
      RDMA/rxe: Missing unlock on error in get_srq_wqe()
      RDMA/cma: Fix rdma_resolve_route() memory leak
      RDMA/core/sa_query: Remove unused argument
      RDMA/cma: Fix incorrect Packet Lifetime calculation
      RDMA/cma: Protect RMW with qp_mutex
      RDMA/cma: Remove unnecessary INIT->INIT transition
      RDMA/hns: Add window selection field of congestion control
      RDMA/hfi1: Remove use of kmap()
      RDMA/irdma: Remove use of kmap()
      RDMA/bnxt_re: Fix uninitialized struct bit field rsvd1
      IB/isert: Align target max I/O size to initiator size
      RDMA/hns: Fix incorrect vlan enable bit in QPC
      MAINTAINERS: Update Broadcom RDMA maintainers
      RDMA/irdma: Use the queried port attributes
      RDMA/rxe: Fix redundant skb_put_zero
      RDMA/rxe: Fix extra copy in prepare_ack_packet
      ...
    torvalds committed Jul 1, 2021
  3. Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/clk/linux
    
    Pull clk updates from Stephen Boyd:
     "This round has a diffstat dominated by Qualcomm clk drivers. Honestly
      though that's just a bunch of data so the diffstat reflects that.
      Looking beyond that there's just a bunch of updates all around in
      various clk drivers. Renesas and NXP (for i.MX) are two SoC vendors
      that have a lot of patches in here.
    
      Overall the driver changes look to be mostly enabling more clks and
      non-critical fixes that we could hold until the next merge window.
    
      I'm especially excited about the series from Arnd that graduates
      clkdev to be the only implementation of clk_get() and clk_put().
      That's a good step in the right direction to migreate eveerything over
      to the common clk framework. Now we don't have to worry about clkdev
      specific details, they're just part of the clk API now.
    
      Core:
       - clkdev is now the only option, i.e. clk_get()/clk_put() is
         implemented in only one place in the kernel instead of in
         drivers/clk/clkdev.c and in architectures that want their own
         implementation
    
      New Drivers:
       - Texas Instruments' LMK04832 Ultra Low-Noise JESD204B Compliant
         Clock Jitter Cleaner With Dual Loop PLLs
       - Qualcomm MDM9607 GCC
       - Qualcomm SC8180X display clks
       - Qualcomm SM6125 GCC
       - Qualcomm SM8250 CAMCC (camera)
       - Renesas RZ/G2L SoC
       - Hisilicon hi3559A SoC
    
      Updates:
       - Stop using clock-output-names in ST clk drivers (yay!)
       - Support secure mode of STM32MP1 SoCs
       - Improve clock support for Actions S500 SoC
       - duty cycle setting support on qcom clks
       - Add TI am33xx spread spectrum clock support
       - Use determine_rate() for the Amlogic pll ops instead of
         round_rate()
       - Restrict Amlogic gp0/1 and audio plls range on g12a/sm1
       - Improve Amlogic axg-audio controller error on deferral
       - Add NNA clocks on Amlogic g12a
       - Reduce memory footprint of Rockchip PLL rate tables
       - A fix for the newly added Rockchip rk3568 clk driver
       - Exported clock for the newly added Rockchip video decoder
       - Remove audio ipg clock from i.MX8MP
       - Remove deprecated legacy clock binding for i.MX SCU clock driver
       - Use common clk-imx8qxp for both i.MX8QXP and i.MX8QM
       - Add multiple clocks to clk-imx8qxp driver (enet, hdmi, lcdif,
         audio, parallel interface)
       - Add dedicated clock ops for i.MX paralel interface
       - Different fixes for clocks controlled by ATF on i.MX SoCs
       - Add A53/A72 frequency scaling support i.MX clk-scu driver
       - Add special case for DCSS clock on suspend for i.MX clk-scu driver
       - Add parent save/restore on suspend/resume to i.MX clk-scu driver
       - Skip runtime PM enablement for CPU clocks in i.MX clk-scu driver
       - Remove the sys1_pll/sys2_pll clock gates for i.MX8MQ and their
         bindings
       - Tegra clk driver no longer deasserts resets on clk_enable as it
         gets in the way of certain power-up sequences
       - Fix compile testing for Tegra clk driver
       - One patch to fix a divider on the Allwinner v3s Audio PLL
       - Add support for CPU core clock boost modes on Renesas R-Car Gen3
       - Add ISPCS (Image Signal Processor) clocks on Renesas R-Car V3U
       - Switch SH/R-Mobile and R-Car "DIV6" clocks to .determine_rate() and
         improve support for multiple parents
       - Switch Renesas RZ/N1 divider clocks to .determine_rate()
       - Add ZA2 (Audio Clock Generator) clock on Renesas R-Car D3
       - Convert ar7 to common clk framework
       - Convert ralink to common clk framework"
    
    * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (161 commits)
      clk: zynqmp: Handle divider specific read only flag
      clk: zynqmp: Use firmware specific mux clock flags
      clk: zynqmp: Use firmware specific divider clock flags
      clk: zynqmp: Use firmware specific common clock flags
      clk: lmk04832: Use of match table
      clk: lmk04832: Depend on SPI
      clk: stm32mp1: new compatible for secure RCC support
      dt-bindings: clock: stm32mp1 new compatible for secure rcc
      dt-bindings: reset: add MCU HOLD BOOT ID for SCMI reset domains on stm32mp15
      dt-bindings: reset: add IDs for SCMI reset domains on stm32mp15
      dt-bindings: clock: add IDs for SCMI clocks on stm32mp15
      reset: stm32mp1: remove stm32mp1 reset
      clk: hisilicon: Add clock driver for hi3559A SoC
      dt-bindings: Document the hi3559a clock bindings
      clk: si5341: Add sysfs properties to allow checking/resetting device faults
      clk: si5341: Add silabs,iovdd-33 property
      clk: si5341: Add silabs,xaxb-ext-clk property
      clk: si5341: Allow different output VDD_SEL values
      clk: si5341: Update initialization magic
      clk: si5341: Check for input clock presence and PLL lock on startup
      ...
    torvalds committed Jul 1, 2021
  4. Merge tag 'drm-next-2021-07-01' of git://anongit.freedesktop.org/drm/drm

    Pull drm updates from Dave Airlie:
     "Highlights:
    
       - AMD enables two more GPUs, with resulting header files
    
       - i915 has started to move to TTM for discrete GPU and enable DG1
         discrete GPU support (not by default yet)
    
       - new HyperV drm driver
    
       - vmwgfx adds arm64 support
    
       - TTM refactoring ongoing
    
       - 16bpc display support for AMD hw
    
      Otherwise it's just the usual insane amounts of work all over the
      place in lots of drivers and the core, as mostly summarised below:
    
      Core:
       - mark AGP ioctls as legacy
       - disable force probing for non-master clients
       - HDR metadata property helpers
       - HDMI infoframe signal colorimetry support
       - remove drm_device.pdev pointer
       - remove DRM_KMS_FB_HELPER config option
       - remove drm_pci_alloc/free
       - drm_err_*/drm_dbg_* helpers
       - use drm driver names for fbdev
       - leaked DMA handle fix
       - 16bpc fixed point format fourcc
       - add prefetching memcpy for WC
       - Documentation fixes
    
      aperture:
       - add aperture ownership helpers
    
      dp:
       - aux fixes
       - downstream 0 port handling
       - use extended base receiver capability DPCD
       - Rename DP_PSR_SELECTIVE_UPDATE to better mach eDP spec
       - mst: use khz as link rate during init
       - VCPI fixes for StarTech hub
    
      ttm:
       - provide tt_shrink file via debugfs
       - warn about freeing pinned BOs
       - fix swapping error handling
       - move page alignment into BO
       - cleanup ttm_agp_backend
       - add ttm_sys_manager
       - don't override vm_ops
       - ttm_bo_mmap removed
       - make ttm_resource base of all managers
       - remove VM_MIXEDMAP usage
    
      panel:
       - sysfs_emit support
       - simple: runtime PM support
       - simple: power up panel when reading EDID + caching
    
      bridge:
       - MHDP8546: HDCP support + DT bindings
       - MHDP8546: Register DP AUX channel with userspace
       - TI SN65DSI83 + SN65DSI84: add driver
       - Sil8620: Fix module dependencies
       - dw-hdmi: make CEC driver loading optional
       - Ti-sn65dsi86: refclk fixes, subdrivers, runtime pm
       - It66121: Add driver + DT bindings
       - Adv7511: Support I2S IEC958 encoding
       - Anx7625: fix power-on delay
       - Nwi-dsi: Modesetting fixes; Cleanups
       - lt6911: add missing MODULE_DEVICE_TABLE
       - cdns: fix PM reference leak
    
      hyperv:
       - add new DRM driver for HyperV graphics
    
      efifb:
       - non-PCI device handling fixes
    
      i915:
       - refactor IP/device versioning
       - XeLPD Display IP preperation work
       - ADL-P enablement patches
       - DG1 uAPI behind BROKEN
       - disable mmap ioctl for discerte GPUs
       - start enabling HuC loading for Gen12+
       - major GuC backend rework for new platforms
       - initial TTM support for Discrete GPUs
       - locking rework for TTM prep
       - use correct max source link rate for eDP
       - %p4cc format printing
       - GLK display fixes
       - VLV DSI panel power fixes
       - PSR2 disabled for RKL and ADL-S
       - ACPI _DSM invalid access fixed
       - DMC FW path abstraction
       - ADL-S PCI ID update
       - uAPI headers converted to kerneldoc
       - initial LMEM support for DG1
       - x86/gpu: add Jasperlake to gen11 early quirks
    
      amdgpu:
       - Aldebaran updates + initial SR-IOV
       - new GPU: Beige Goby and Yellow Carp support
       - more LTTPR display work
       - Vangogh updates
       - SDMA 5.x GCR fixes
       - PCIe ASPM support
       - Renoir TMZ enablement
       - initial multiple eDP panel support
       - use fdinfo to track devices/process info
       - pin/unpin TTM fixes
       - free resource on fence usage query
       - fix fence calculation
       - fix hotunplug/suspend issues
       - GC/MM register access macro cleanup for SR-IOV
       - W=1 fixes
       - ACPI ATCS/ATIF handling rework
       - 16bpc fixed point format support
       - Initial smartshift support
       - RV/PCO power tuning fixes
       - new INFO query for additional vbios info
    
      amdkfd:
       - SR-IOV aldebaran support
       - HMM SVM support
    
      radeon:
       - SMU regression fixes
       - Oland flickering fix
    
      vmwgfx:
       - enable console with fbdev emulation
       - fix cpu updates of coherent multisample surfaces
       - remove reservation semaphore
       - add initial SVGA3 support
       - support arm64
    
      msm:
       - devcoredump support for display errors
       - dpu/dsi: yaml bindings conversion
       - mdp5: alpha/blend_mode/zpos support
       - a6xx: cached coherent buffer support
       - gpu iova fault improvement
       - a660 support
    
      rockchip:
       - RK3036 win1 scaling support
       - RK3066/3188 missing register support
       - RK3036/3066/3126/3188 alpha support
    
      mediatek:
       - MT8167 HDMI support
       - MT8183 DPI dual edge support
    
      tegra:
       - fixed YUV support/scaling on Tegra186+
    
      ast:
       - use pcim_iomap
       - fix DP501 EDID
    
      bochs:
       - screen blanking support
    
      etnaviv:
       - export more GPU ID values to userspace
       - add HWDB entry for GPU on i.MX8MP
       - rework linear window calcs
    
      exynos:
       - pm runtime changes
    
      imx:
       - Annotate dma_fence critical section
       - fix PRG modifiers after drmm conversion
       - Add 8 pixel alignment fix for 1366x768
       - fix YUV advertising
       - add color properties
    
      ingenic:
       - IPU planes fix
    
      panfrost:
       - Mediatek MT8183 support + DT bindings
       - export AFBC_FEATURES register to userspace
    
      simpledrm:
       - %pr for printing resources
    
      nouveau:
       - pin/unpin TTM fixes
    
      qxl:
       - unpin shadow BO
    
      virtio:
       - create dumb BOs as guest blob
    
      vkms:
       - drmm_universal_plane_alloc
       - add XRGB plane composition
       - overlay support"
    
    * tag 'drm-next-2021-07-01' of git://anongit.freedesktop.org/drm/drm: (1570 commits)
      drm/i915: Reinstate the mmap ioctl for some platforms
      drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc
      Revert "drm/msm/mdp5: provide dynamic bandwidth management"
      drm/msm/mdp5: provide dynamic bandwidth management
      drm/msm/mdp5: add perf blocks for holding fudge factors
      drm/msm/mdp5: switch to standard zpos property
      drm/msm/mdp5: add support for alpha/blend_mode properties
      drm/msm/mdp5: use drm_plane_state for pixel blend mode
      drm/msm/mdp5: use drm_plane_state for storing alpha value
      drm/msm/mdp5: use drm atomic helpers to handle base drm plane state
      drm/msm/dsi: do not enable PHYs when called for the slave DSI interface
      drm/msm: Add debugfs to trigger shrinker
      drm/msm/dpu: Avoid ABBA deadlock between IRQ modules
      drm/msm: devcoredump iommu fault support
      iommu/arm-smmu-qcom: Add stall support
      drm/msm: Improve the a6xx page fault handler
      iommu/arm-smmu-qcom: Add an adreno-smmu-priv callback to get pagefault info
      iommu/arm-smmu: Add support for driver IOMMU fault handlers
      drm/msm: export hangcheck_period in debugfs
      drm/msm/a6xx: add support for Adreno 660 GPU
      ...
    torvalds committed Jul 1, 2021
  5. Merge tag 'for-5.14/io_uring-2021-06-30' of git://git.kernel.dk/linux…

    …-block
    
    Pull io_uring updates from Jens Axboe:
    
     - Multi-queue iopoll improvement (Fam)
    
     - Allow configurable io-wq CPU masks (me)
    
     - renameat/linkat tightening (me)
    
     - poll re-arm improvement (Olivier)
    
     - SQPOLL race fix (Olivier)
    
     - Cancelation unification (Pavel)
    
     - SQPOLL cleanups (Pavel)
    
     - Enable file backed buffers for shmem/memfd (Pavel)
    
     - A ton of cleanups and performance improvements (Pavel)
    
     - Followup and misc fixes (Colin, Fam, Hao, Olivier)
    
    * tag 'for-5.14/io_uring-2021-06-30' of git://git.kernel.dk/linux-block: (83 commits)
      io_uring: code clean for kiocb_done()
      io_uring: spin in iopoll() only when reqs are in a single queue
      io_uring: pre-initialise some of req fields
      io_uring: refactor io_submit_flush_completions
      io_uring: optimise hot path restricted checks
      io_uring: remove not needed PF_EXITING check
      io_uring: mainstream sqpoll task_work running
      io_uring: refactor io_arm_poll_handler()
      io_uring: reduce latency by reissueing the operation
      io_uring: add IOPOLL and reserved field checks to IORING_OP_UNLINKAT
      io_uring: add IOPOLL and reserved field checks to IORING_OP_RENAMEAT
      io_uring: refactor io_openat2()
      io_uring: simplify struct io_uring_sqe layout
      io_uring: update sqe layout build checks
      io_uring: fix code style problems
      io_uring: refactor io_sq_thread()
      io_uring: don't change sqpoll creds if not needed
      io_uring: Create define to modify a SQPOLL parameter
      io_uring: Fix race condition when sqp thread goes to sleep
      io_uring: improve in tctx_task_work() resubmission
      ...
    torvalds committed Jul 1, 2021
  6. perf session: Add missing evlist__delete when deleting a session

    ASan reports a memory leak caused by evlist not being deleted on exit in
    perf-report, perf-script and perf-data.
    The problem is caused by evlist->session not being deleted, which is
    allocated in perf_session__read_header, called in perf_session__new if
    perf_data is in read mode.
    In case of write mode, the session->evlist is filled by the caller.
    This patch solves the problem by calling evlist__delete in
    perf_session__delete if perf_data is in read mode.
    
    Changes in v2:
     - call evlist__delete from within perf_session__delete
    
    v1: https://lore.kernel.org/lkml/20210621234317.235545-1-rickyman7@gmail.com/
    
    ASan report follows:
    
    $ ./perf script report flamegraph
    =================================================================
    ==227640==ERROR: LeakSanitizer: detected memory leaks
    
    <SNIP unrelated>
    
    Indirect leak of 2704 byte(s) in 1 object(s) allocated from:
        #0 0x4f4137 in calloc (/home/user/linux/tools/perf/perf+0x4f4137)
        #1 0xbe3d56 in zalloc /home/user/linux/tools/lib/perf/../../lib/zalloc.c:8:9
        #2 0x7f999e in evlist__new /home/user/linux/tools/perf/util/evlist.c:77:26
        #3 0x8ad938 in perf_session__read_header /home/user/linux/tools/perf/util/header.c:3797:20
        #4 0x8ec714 in perf_session__open /home/user/linux/tools/perf/util/session.c:109:6
        #5 0x8ebe83 in perf_session__new /home/user/linux/tools/perf/util/session.c:213:10
        torvalds#6 0x60c6de in cmd_script /home/user/linux/tools/perf/builtin-script.c:3856:12
        torvalds#7 0x7b2930 in run_builtin /home/user/linux/tools/perf/perf.c:313:11
        torvalds#8 0x7b120f in handle_internal_command /home/user/linux/tools/perf/perf.c:365:8
        torvalds#9 0x7b2493 in run_argv /home/user/linux/tools/perf/perf.c:409:2
        torvalds#10 0x7b0c89 in main /home/user/linux/tools/perf/perf.c:539:3
        torvalds#11 0x7f5260654b74  (/lib64/libc.so.6+0x27b74)
    
    Indirect leak of 568 byte(s) in 1 object(s) allocated from:
        #0 0x4f4137 in calloc (/home/user/linux/tools/perf/perf+0x4f4137)
        #1 0xbe3d56 in zalloc /home/user/linux/tools/lib/perf/../../lib/zalloc.c:8:9
        #2 0x80ce88 in evsel__new_idx /home/user/linux/tools/perf/util/evsel.c:268:24
        #3 0x8aed93 in evsel__new /home/user/linux/tools/perf/util/evsel.h:210:9
        #4 0x8ae07e in perf_session__read_header /home/user/linux/tools/perf/util/header.c:3853:11
        #5 0x8ec714 in perf_session__open /home/user/linux/tools/perf/util/session.c:109:6
        torvalds#6 0x8ebe83 in perf_session__new /home/user/linux/tools/perf/util/session.c:213:10
        torvalds#7 0x60c6de in cmd_script /home/user/linux/tools/perf/builtin-script.c:3856:12
        torvalds#8 0x7b2930 in run_builtin /home/user/linux/tools/perf/perf.c:313:11
        torvalds#9 0x7b120f in handle_internal_command /home/user/linux/tools/perf/perf.c:365:8
        torvalds#10 0x7b2493 in run_argv /home/user/linux/tools/perf/perf.c:409:2
        torvalds#11 0x7b0c89 in main /home/user/linux/tools/perf/perf.c:539:3
        torvalds#12 0x7f5260654b74  (/lib64/libc.so.6+0x27b74)
    
    Indirect leak of 264 byte(s) in 1 object(s) allocated from:
        #0 0x4f4137 in calloc (/home/user/linux/tools/perf/perf+0x4f4137)
        #1 0xbe3d56 in zalloc /home/user/linux/tools/lib/perf/../../lib/zalloc.c:8:9
        #2 0xbe3e70 in xyarray__new /home/user/linux/tools/lib/perf/xyarray.c:10:23
        #3 0xbd7754 in perf_evsel__alloc_id /home/user/linux/tools/lib/perf/evsel.c:361:21
        #4 0x8ae201 in perf_session__read_header /home/user/linux/tools/perf/util/header.c:3871:7
        #5 0x8ec714 in perf_session__open /home/user/linux/tools/perf/util/session.c:109:6
        torvalds#6 0x8ebe83 in perf_session__new /home/user/linux/tools/perf/util/session.c:213:10
        torvalds#7 0x60c6de in cmd_script /home/user/linux/tools/perf/builtin-script.c:3856:12
        torvalds#8 0x7b2930 in run_builtin /home/user/linux/tools/perf/perf.c:313:11
        torvalds#9 0x7b120f in handle_internal_command /home/user/linux/tools/perf/perf.c:365:8
        torvalds#10 0x7b2493 in run_argv /home/user/linux/tools/perf/perf.c:409:2
        torvalds#11 0x7b0c89 in main /home/user/linux/tools/perf/perf.c:539:3
        torvalds#12 0x7f5260654b74  (/lib64/libc.so.6+0x27b74)
    
    Indirect leak of 32 byte(s) in 1 object(s) allocated from:
        #0 0x4f4137 in calloc (/home/user/linux/tools/perf/perf+0x4f4137)
        #1 0xbe3d56 in zalloc /home/user/linux/tools/lib/perf/../../lib/zalloc.c:8:9
        #2 0xbd77e0 in perf_evsel__alloc_id /home/user/linux/tools/lib/perf/evsel.c:365:14
        #3 0x8ae201 in perf_session__read_header /home/user/linux/tools/perf/util/header.c:3871:7
        #4 0x8ec714 in perf_session__open /home/user/linux/tools/perf/util/session.c:109:6
        #5 0x8ebe83 in perf_session__new /home/user/linux/tools/perf/util/session.c:213:10
        torvalds#6 0x60c6de in cmd_script /home/user/linux/tools/perf/builtin-script.c:3856:12
        torvalds#7 0x7b2930 in run_builtin /home/user/linux/tools/perf/perf.c:313:11
        torvalds#8 0x7b120f in handle_internal_command /home/user/linux/tools/perf/perf.c:365:8
        torvalds#9 0x7b2493 in run_argv /home/user/linux/tools/perf/perf.c:409:2
        torvalds#10 0x7b0c89 in main /home/user/linux/tools/perf/perf.c:539:3
        torvalds#11 0x7f5260654b74  (/lib64/libc.so.6+0x27b74)
    
    Indirect leak of 7 byte(s) in 1 object(s) allocated from:
        #0 0x4b8207 in strdup (/home/user/linux/tools/perf/perf+0x4b8207)
        #1 0x8b4459 in evlist__set_event_name /home/user/linux/tools/perf/util/header.c:2292:16
        #2 0x89d862 in process_event_desc /home/user/linux/tools/perf/util/header.c:2313:3
        #3 0x8af319 in perf_file_section__process /home/user/linux/tools/perf/util/header.c:3651:9
        #4 0x8aa6e9 in perf_header__process_sections /home/user/linux/tools/perf/util/header.c:3427:9
        #5 0x8ae3e7 in perf_session__read_header /home/user/linux/tools/perf/util/header.c:3886:2
        torvalds#6 0x8ec714 in perf_session__open /home/user/linux/tools/perf/util/session.c:109:6
        torvalds#7 0x8ebe83 in perf_session__new /home/user/linux/tools/perf/util/session.c:213:10
        torvalds#8 0x60c6de in cmd_script /home/user/linux/tools/perf/builtin-script.c:3856:12
        torvalds#9 0x7b2930 in run_builtin /home/user/linux/tools/perf/perf.c:313:11
        torvalds#10 0x7b120f in handle_internal_command /home/user/linux/tools/perf/perf.c:365:8
        torvalds#11 0x7b2493 in run_argv /home/user/linux/tools/perf/perf.c:409:2
        torvalds#12 0x7b0c89 in main /home/user/linux/tools/perf/perf.c:539:3
        torvalds#13 0x7f5260654b74  (/lib64/libc.so.6+0x27b74)
    
    SUMMARY: AddressSanitizer: 3728 byte(s) leaked in 7 allocation(s).
    
    Signed-off-by: Riccardo Mancini <rickyman7@gmail.com>
    Acked-by: Ian Rogers <irogers@google.com>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210624231926.212208-1-rickyman7@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Manciukic authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  7. perf annotate: Allow 's' on source code lines

    In perf annotate, when 's' is pressed on a line containing source code,
    it shows the message "Only available for assembly lines".
    
    This patch gets rid of the error, moving the cursr to the next available
    asm line (or the closest previous one if no asm line is found moving
    forwards), before hiding source code lines.
    
    Changes in v2:
     - handle case of no asm line found in
       annotate_browser__find_next_asm_line by returning NULL and
       handling error in caller.
    
    Signed-off-by: Riccardo Mancini <rickyman7@gmail.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Acked-by: Ian Rogers <irogers@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Martin Liška <mliska@suse.cz>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210624223423.189550-1-rickyman7@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Manciukic authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  8. perf dlfilter: Add object_code() to perf_dlfilter_fns

    Add a function, for use by dlfilters, to read object code.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-11-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  9. perf dlfilter: Add attr() to perf_dlfilter_fns

    Add a function, for use by dlfilters, to return the perf_event_attr
    structure.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-10-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  10. perf dlfilter: Add srcline() to perf_dlfilter_fns

    Add a function, for use by dlfilters, to return source code file name and
    line number.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-9-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  11. perf dlfilter: Add insn() to perf_dlfilter_fns

    Add a function, for use by dlfilters, to return instruction bytes.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-8-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  12. perf dlfilter: Add resolve_address() to perf_dlfilter_fns

    Add a function, for use by dlfilters, to resolve addresses from branch
    stacks or callchains.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-7-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  13. perf build: Install perf_dlfilter.h

    Users of the --dlfilter option need to include perf_dlfilter.h
    in their filters. Install it to the include path.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-6-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  14. perf script: Add option to pass arguments to dlfilters

    Add option --dlarg to pass arguments to dlfilters. The --dlarg option can
    be repeated to pass more than 1 argument.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-5-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  15. perf script: Add option to list dlfilters

    Add option --list-dlfilters to list dlfilters in the current directory or
    the exec-path e.g. ~/libexec/perf-core/dlfilters. Use with option -v (must
    come before option --list-dlfilters) to show long descriptions.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-4-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  16. perf script: Add dlfilter__filter_event_early()

    filter_event_early() can be more than 30% faster than filter_event()
    because it is called before internal filtering. In other respects it
    is the same as filter_event(), except that it will be passed events
    that have yet to be filtered out.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-3-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  17. perf script: Add API for filtering via dynamically loaded shared object

    In some cases, users want to filter very large amounts of data (e.g.
    from AUX area tracing like Intel PT) looking for something specific.
    While scripting such as Python can be used, Python is 10 to 20 times
    slower than C. So define a C API so that custom filters can be written
    and loaded.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210627131818.810-2-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ahunter6 authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  18. perf llvm: Return -ENOMEM when asprintf() fails

    Zhihao sent a patch but it made llvm__compile_bpf() return what
    asprintf() returns on error, which is just -1, but since this function
    returns -errno, fix it by returning -ENOMEM for this case instead.
    
    Fixes: cb76371 ("perf llvm: Allow passing options to llc ...")
    Fixes: 5eab5a7 ("perf llvm: Display eBPF compiling command ...")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Reported-by: Zhihao Cheng <chengzhihao1@huawei.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Andrii Nakryiko <andrii@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Yu Kuai <yukuai3@huawei.com>
    Cc: clang-built-linux@googlegroups.com
    Link: http://lore.kernel.org/lkml/20210609115945.2193194-1-chengzhihao1@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed Jul 1, 2021
  19. perf cs-etm: Delay decode of non-timeless data until cs_etm__flush_ev…

    …ents()
    
    Currently, timeless mode starts the decode on PERF_RECORD_EXIT, and
    non-timeless mode starts decoding on the fist PERF_RECORD_AUX record.
    
    This can cause the "data has no samples!" error if the first
    PERF_RECORD_AUX record comes before the first (or any relevant)
    PERF_RECORD_MMAP2 record because the mmaps are required by the decoder
    to access the binary data.
    
    This change pushes the start of non-timeless decoding to the very end of
    parsing the file. The PERF_RECORD_EXIT event can't be used because it
    might not exist in system-wide or snapshot modes.
    
    I have not been able to find the exact cause for the events to be
    intermittently in the wrong order in the basic scenario:
    
    	perf record -e cs_etm/@tmc_etr0/u top
    
    But it can be made to happen every time with the --delay option. This is
    because "enable_on_exec" is disabled, which causes tracing to start
    before the process to be launched is exec'd. For example:
    
    	perf record -e cs_etm/@tmc_etr0/u --delay=1 top
    	perf report -D | grep 'AUX\|MAP'
    
    	0 16714475632740 0x520 [0x40]: PERF_RECORD_AUX offset: 0 size: 0x30 flags: 0 []
    	0 16714476494960 0x5d0 [0x40]: PERF_RECORD_AUX offset: 0x30 size: 0x30 flags: 0 []
    	0 16714478208900 0x660 [0x40]: PERF_RECORD_AUX offset: 0x60 size: 0x30 flags: 0 []
    	4294967295 16714478293340 0x700 [0x70]: PERF_RECORD_MMAP2 8712/8712: [0x557a460000(0x54000) @ 0 00:17 5329258 0]: r-xp /usr/bin/top
    	4294967295 16714478353020 0x770 [0x88]: PERF_RECORD_MMAP2 8712/8712: [0x7f86f72000(0x34000) @ 0 00:17 5214354 0]: r-xp /usr/lib/aarch64-linux-gnu/ld-2.31.so
    
    Another scenario in which decoding from the first aux record fails is a
    workload that forks. Although the aux record comes after 'bash', it
    comes before 'top', which is what we are interested in. For example:
    
    	perf record -e cs_etm/@tmc_etr0/u -- bash -c top
    	perf report -D | grep 'AUX\|MAP'
    
    	4294967295 16853946421300 0x510 [0x70]: PERF_RECORD_MMAP2 8723/8723: [0x558f280000(0x142000) @ 0 00:17 5213953 0]: r-xp /usr/bin/bash
    	4294967295 16853946543560 0x580 [0x88]: PERF_RECORD_MMAP2 8723/8723: [0x7fbba6e000(0x34000) @ 0 00:17 5214354 0]: r-xp /usr/lib/aarch64-linux-gnu/ld-2.31.so
    	4294967295 16853946628420 0x608 [0x68]: PERF_RECORD_MMAP2 8723/8723: [0x7fbba9e000(0x1000) @ 0 00:00 0 0]: r-xp [vdso]
    	0 16853947067300 0x690 [0x40]: PERF_RECORD_AUX offset: 0 size: 0x3a60 flags: 0 []
    	...
    	0 16853966602580 0x1758 [0x40]: PERF_RECORD_AUX offset: 0xc2470 size: 0x30 flags: 0 []
    	4294967295 16853967119860 0x1818 [0x70]: PERF_RECORD_MMAP2 8723/8723: [0x5559e70000(0x54000) @ 0 00:17 5329258 0]: r-xp /usr/bin/top
    	4294967295 16853967181620 0x1888 [0x88]: PERF_RECORD_MMAP2 8723/8723: [0x7f9ed06000(0x34000) @ 0 00:17 5214354 0]: r-xp /usr/lib/aarch64-linux-gnu/ld-2.31.so
    	4294967295 16853967237180 0x1910 [0x68]: PERF_RECORD_MMAP2 8723/8723: [0x7f9ed36000(0x1000) @ 0 00:00 0 0]: r-xp [vdso]
    
    A third scenario is when the majority of time is spent in a shared
    library that is not loaded at startup. For example a dynamically loaded
    plugin.
    
    Testing
    =======
    
    Testing was done by checking if any samples that are present in the
    old output are missing from the new output. Timestamps must be
    stripped out with awk because now they are set to the last AUX sample,
    rather than the first:
    
    	./perf script $4 | awk '!($4="")' > new.script
    	./perf-default script $4 | awk '!($4="")' > default.script
    	comm -13 <(sort -u new.script) <(sort -u default.script)
    
    Testing showed that the new output is a superset of the old. When lines
    appear in the comm output, it is not because they are missing but
    because [unknown] is now resolved to sensible locations. For example
    last putp branch here now resolves to libtinfo, so it's not missing
    from the output, but is actually improved:
    
    Old:
    	top 305 [001]  1 branches:uH: 402830 _init+0x30 (/usr/bin/top.procps) => 404a1c [unknown] (/usr/bin/top.procps)
    	top 305 [001]  1 branches:uH: 404a20 [unknown] (/usr/bin/top.procps) => 402970 putp@plt+0x0 (/usr/bin/top.procps)
    	top 305 [001]  1 branches:uH: 40297c putp@plt+0xc (/usr/bin/top.procps) => 0 [unknown] ([unknown])
    New:
    	top 305 [001]  1 branches:uH: 402830 _init+0x30 (/usr/bin/top.procps) => 404a1c [unknown] (/usr/bin/top.procps)
    	top 305 [001]  1 branches:uH: 404a20 [unknown] (/usr/bin/top.procps) => 402970 putp@plt+0x0 (/usr/bin/top.procps)
    	top 305 [001]  1 branches:uH: 40297c putp@plt+0xc (/usr/bin/top.procps) => 7f8ab39208 putp+0x0 (/lib/libtinfo.so.5.9)
    
    In the following two modes, decoding now works and the "data has no
    samples!" error is not displayed any more:
    
    	perf record -e cs_etm/@tmc_etr0/u -- bash -c top
    	perf record -e cs_etm/@tmc_etr0/u --delay=1 top
    
    In snapshot mode, there is also an improvement to decoding. Previously
    samples for the 'kill' process that was used to send SIGUSR2 were
    completely missing, because the process hadn't started yet. But now
    there are additional samples present:
    
    	perf record -e cs_etm/@tmc_etr0/u --snapshot -a
    	perf script
    
    		stress 19380 [003] 161627.938153:    1000000    instructions:uH:      aaaabb612fb4 [unknown] (/usr/bin/stress)
    		  kill 19644 [000] 161627.938153:    1000000    instructions:uH:      ffffae0ef210 [unknown] (/lib/aarch64-linux-gnu/ld-2.27.so)
    		stress 19380 [003] 161627.938153:    1000000    instructions:uH:      ffff9e754d40 random_r+0x20 (/lib/aarch64-linux-gnu/libc-2.27.so)
    
    Also tested was the round trip of 'perf inject' followed by 'perf
    report' which has the same differences and improvements.
    
    Signed-off-by: James Clark <james.clark@arm.com>
    Reviewed-by: Leo Yan <leo.yan@linaro.org>
    Tested-by: Leo Yan <leo.yan@linaro.org>
    Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Al Grant <al.grant@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Anshuman Khandual <anshuman.khandual@arm.com>
    Cc: Branislav Rankov <branislav.rankov@arm.com>
    Cc: Denis Nikitin <denik@chromium.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: John Garry <john.garry@huawei.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: coresight@lists.linaro.org
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lore.kernel.org/lkml/20210609130421.13934-1-james.clark@arm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    James-A-Clark authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  20. tools headers UAPI: Synch KVM's svm.h header with the kernel

    To pick up the changes from:
    
      59d21d6 ("KVM: SVM: Software reserved fields")
    
    Picking the new SVM_EXIT_SW exit reasons.
    
    Addressing this perf build warning:
    
      Warning: Kernel ABI header at 'tools/arch/x86/include/uapi/asm/svm.h' differs from latest version at 'arch/x86/include/uapi/asm/svm.h'
      diff -u tools/arch/x86/include/uapi/asm/svm.h arch/x86/include/uapi/asm/svm.h
    
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Vineeth Pillai <viremana@linux.microsoft.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed Jul 1, 2021
  21. tools kvm headers arm64: Update KVM headers from the kernel sources

    To pick the changes from:
    
      f0376ed ("KVM: arm64: Add ioctl to fetch/store tags in a guest")
    
    That don't causes any changes in tooling (when built on x86), only
    addresses this perf build warning:
    
      Warning: Kernel ABI header at 'tools/arch/arm64/include/uapi/asm/kvm.h' differs from latest version at 'arch/arm64/include/uapi/asm/kvm.h'
      diff -u tools/arch/arm64/include/uapi/asm/kvm.h arch/arm64/include/uapi/asm/kvm.h
    
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Steven Price <steven.price@arm.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed Jul 1, 2021
  22. tools headers UAPI: Sync linux/kvm.h with the kernel sources

    To pick the changes in:
    
      19238e7 ("kvm: x86: Allow userspace to handle emulation errors")
      cb082bf ("KVM: stats: Add fd-based API to read binary stats data")
      b87cc11 ("KVM: PPC: Book3S HV: Add KVM_CAP_PPC_RPT_INVALIDATE capability")
      f0376ed ("KVM: arm64: Add ioctl to fetch/store tags in a guest")
      0dbb112 ("KVM: X86: Introduce KVM_HC_MAP_GPA_RANGE hypercall")
      6dba940 ("KVM: x86: Introduce KVM_GET_SREGS2 / KVM_SET_SREGS2")
      644f706 ("KVM: x86: hyper-v: Introduce KVM_CAP_HYPERV_ENFORCE_CPUID")
    
    That automatically adds support for these new ioctls:
    
      $ tools/perf/trace/beauty/kvm_ioctl.sh > before
      $ cp include/uapi/linux/kvm.h tools/include/uapi/linux/kvm.h
      $ tools/perf/trace/beauty/kvm_ioctl.sh > after
      $ diff -u before after
      --- before	2021-07-01 13:42:07.006387354 -0300
      +++ after	2021-07-01 13:45:16.051649301 -0300
      @@ -95,6 +95,9 @@
       	[0xc9] = "XEN_HVM_SET_ATTR",
       	[0xca] = "XEN_VCPU_GET_ATTR",
       	[0xcb] = "XEN_VCPU_SET_ATTR",
      +	[0xcc] = "GET_SREGS2",
      +	[0xcd] = "SET_SREGS2",
      +	[0xce] = "GET_STATS_FD",
       	[0xe0] = "CREATE_DEVICE",
       	[0xe1] = "SET_DEVICE_ATTR",
       	[0xe2] = "GET_DEVICE_ATTR",
      $
    
    This silences these perf build warning:
    
      Warning: Kernel ABI header at 'tools/arch/x86/include/uapi/asm/kvm.h' differs from latest version at 'arch/x86/include/uapi/asm/kvm.h'
      diff -u tools/arch/x86/include/uapi/asm/kvm.h arch/x86/include/uapi/asm/kvm.h
      Warning: Kernel ABI header at 'tools/include/uapi/linux/kvm.h' differs from latest version at 'include/uapi/linux/kvm.h'
      diff -u tools/include/uapi/linux/kvm.h include/uapi/linux/kvm.h
    
    Cc: Aaron Lewis <aaronlewis@google.com>
    Cc: Ashish Kalra <ashish.kalra@amd.com>
    Cc: Bharata B Rao <bharata@linux.ibm.com>
    Cc: Jing Zhang <jingzhangos@google.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Maxim Levitsky <mlevitsk@redhat.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Steven Price <steven.price@arm.com>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed Jul 1, 2021
  23. tools headers cpufeatures: Sync with the kernel sources

    To pick the changes from:
    
      1348924 ("x86/msr: Define new bits in TSX_FORCE_ABORT MSR")
      cbcddaa ("perf/x86/rapl: Use CPUID bit on AMD and Hygon parts")
    
    This only causes these perf files to be rebuilt:
    
      CC       /tmp/build/perf/bench/mem-memcpy-x86-64-asm.o
      CC       /tmp/build/perf/bench/mem-memset-x86-64-asm.o
    
    And addresses this perf build warning:
    
      Warning: Kernel ABI header at 'tools/arch/x86/include/asm/cpufeatures.h' differs from latest version at 'arch/x86/include/asm/cpufeatures.h'
      diff -u tools/arch/x86/include/asm/cpufeatures.h arch/x86/include/asm/cpufeatures.h
    
    Cc: Andrew Cooper <andrew.cooper3@citrix.com>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed Jul 1, 2021
  24. tools include UAPI: Update linux/mount.h copy

    To pick the changes from:
    
      dd8b477 ("mount: Support "nosymfollow" in new mount api")
    
    That ends up adding support for the new MOUNT_ATTR_NOSYMFOLLOW mount
    attribute:
    
      $ tools/perf/trace/beauty/fsmount.sh > before
      $ cp include/uapi/linux/mount.h tools/include/uapi/linux/mount.h
      $ tools/perf/trace/beauty/fsmount.sh > after
      $ diff -u before after
      --- before	2021-07-01 13:34:04.542517355 -0300
      +++ after	2021-07-01 13:34:12.423694537 -0300
      @@ -7,4 +7,5 @@
       	[ilog2(0x00000020) + 1] = "STRICTATIME",
       	[ilog2(0x00000080) + 1] = "NODIRATIME",
       	[ilog2(0x00100000) + 1] = "IDMAP",
      +	[ilog2(0x00200000) + 1] = "NOSYMFOLLOW",
       };
      $
    
    So now one can use it in --filter expressions for tracepoints.
    
    This silences this perf build warnings:
    
      Warning: Kernel ABI header at 'tools/include/uapi/linux/mount.h' differs from latest version at 'include/uapi/linux/mount.h'
      diff -u tools/include/uapi/linux/mount.h include/uapi/linux/mount.h
    
    Cc: Christian Brauner <christian.brauner@ubuntu.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed Jul 1, 2021
  25. tools arch x86: Sync the msr-index.h copy with the kernel sources

    To pick up the changes from these csets:
    
      1348924 ("x86/msr: Define new bits in TSX_FORCE_ABORT MSR")
    
    That cause no changes to tooling:
    
      $ tools/perf/trace/beauty/tracepoints/x86_msr.sh > before
      $ cp arch/x86/include/asm/msr-index.h tools/arch/x86/include/asm/msr-index.h
      $ tools/perf/trace/beauty/tracepoints/x86_msr.sh > after
      $ diff -u before after
      $
    
    Just silences this perf build warning:
    
      Warning: Kernel ABI header at 'tools/arch/x86/include/asm/msr-index.h' differs from latest version at 'arch/x86/include/asm/msr-index.h'
      diff -u tools/arch/x86/include/asm/msr-index.h arch/x86/include/asm/msr-index.h
    
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed Jul 1, 2021
  26. perf arm-spe: Don't wait for PERF_RECORD_EXIT event

    When decode Arm SPE trace, it waits for PERF_RECORD_EXIT event (the last
    perf event) for processing trace data, which is needless and even might
    cause logic error, e.g. it might fail to correlate perf events with Arm
    SPE events correctly.
    
    So this patch removes the condition checking for PERF_RECORD_EXIT event.
    
    Signed-off-by: Leo Yan <leo.yan@linaro.org>
    Reviewed-by: James Clark <james.clark@arm.com>
    Tested-by: James Clark <james.clark@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Al Grant <Al.Grant@arm.com>
    Cc: Dave Martin <Dave.Martin@arm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: John Garry <john.garry@huawei.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20210519071939.1598923-6-leo.yan@linaro.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Leo-Yan authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
  27. perf arm-spe: Bail out if the trace is later than perf event

    It's possible that record in Arm SPE trace is later than perf event and
    vice versa.  This asks to correlate the perf events and Arm SPE
    synthesized events to be processed in the manner of correct timing.
    
    To achieve the time ordering, this patch reverses the flow, it firstly
    calls arm_spe_sample() and then calls arm_spe_decode().  By comparing
    the timestamp value and detect the perf event is coming earlier than Arm
    SPE trace data, it bails out from the decoding loop, the last record is
    pushed into auxtrace stack and is deferred to generate sample.  To track
    the timestamp, everytime it updates timestamp for the latest record.
    
    Signed-off-by: Leo Yan <leo.yan@linaro.org>
    Reviewed-by: James Clark <james.clark@arm.com>
    Tested-by: James Clark <james.clark@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Al Grant <Al.Grant@arm.com>
    Cc: Dave Martin <Dave.Martin@arm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: John Garry <john.garry@huawei.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Will Deacon <will@kernel.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Link: https://lore.kernel.org/r/20210519071939.1598923-5-leo.yan@linaro.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Leo-Yan authored and Arnaldo Carvalho de Melo committed Jul 1, 2021
Older