Skip to content
  1. Apr 27, 2022
    • Masami Hiramatsu's avatar
      bootconfig: Make the bootconfig.o as a normal object file · 6014a236
      Masami Hiramatsu authored
      
      
      Since the APIs defined in the bootconfig.o are not individually used,
      it is meaningless to build it as library by lib-y. Use obj-y for that.
      
      Link: https://lkml.kernel.org/r/164921225875.1090670.15565363126983098971.stgit@devnote2
      
      Cc: Padmanabha Srinivasaiah <treasure4paddy@gmail.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Sami Tolvanen <samitolvanen@google.com>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>
      Reported-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      6014a236
    • Yang Li's avatar
      tracing: Fix tracing_map_sort_entries() kernel-doc comment · adaa0a9f
      Yang Li authored
      
      
      Add the description of @n_sort_keys and make @sort_key ->
      @sort_keys in tracing_map_sort_entries() kernel-doc comment
      to remove warnings found by running scripts/kernel-doc, which
      is caused by using 'make W=1'.
      
      kernel/trace/tracing_map.c:1073: warning: Function parameter or member
      'sort_keys' not described in 'tracing_map_sort_entries'
      kernel/trace/tracing_map.c:1073: warning: Function parameter or member
      'n_sort_keys' not described in 'tracing_map_sort_entries'
      kernel/trace/tracing_map.c:1073: warning: Excess function parameter
      'sort_key' description in 'tracing_map_sort_entries'
      
      Link: https://lkml.kernel.org/r/20220402072015.45864-1-yang.lee@linux.alibaba.com
      
      Reported-by: default avatarAbaci Robot <abaci@linux.alibaba.com>
      Signed-off-by: default avatarYang Li <yang.lee@linux.alibaba.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      adaa0a9f
    • Christophe Leroy's avatar
      MAINTAINERS: Enlarge coverage of TRACING inside architectures · 3eaf17f5
      Christophe Leroy authored
      
      
      Most architectures have ftrace related stuff in arch/*/kernel/ftrace.c
      but powerpc has it spread in multiple files located in
      arch/powerpc/kernel/trace/
      In several architectures, there are also additional files containing
      'ftrace' as part of the name but with some prefix or suffix.
      
      Use wildcards to enlarge coverage.
      
      With arch/*/*/*/*ftrace*:
      	arch/alpha/include/asm/ftrace.h
      	arch/arm64/include/asm/ftrace.h
      	arch/arm/include/asm/ftrace.h
      	arch/csky/include/asm/ftrace.h
      	arch/csky/kernel/probes/ftrace.c
      	arch/ia64/include/asm/ftrace.h
      	arch/m68k/include/asm/ftrace.h
      	arch/microblaze/include/asm/ftrace.h
      	arch/mips/include/asm/ftrace.h
      	arch/nds32/include/asm/ftrace.h
      	arch/parisc/include/asm/ftrace.h
      	arch/powerpc/include/asm/ftrace.h
      	arch/powerpc/kernel/trace/ftrace_64_pg.S
      	arch/powerpc/kernel/trace/ftrace.c
      	arch/powerpc/kernel/trace/ftrace_low.S
      	arch/powerpc/kernel/trace/ftrace_mprofile.S
      	arch/riscv/include/asm/ftrace.h
      	arch/riscv/kernel/probes/ftrace.c
      	arch/s390/include/asm/ftrace.h
      	arch/s390/include/asm/ftrace.lds.h
      	arch/sh/include/asm/ftrace.h
      	arch/sparc/include/asm/ftrace.h
      	arch/x86/include/asm/ftrace.h
      	arch/x86/kernel/kprobes/ftrace.c
      	arch/xtensa/include/asm/ftrace.h
      
      With arch/*/*/*ftrace*:
      	arch/arm64/kernel/entry-ftrace.S
      	arch/arm64/kernel/ftrace.c
      	arch/arm/kernel/entry-ftrace.S
      	arch/arm/kernel/ftrace.c
      	arch/csky/kernel/ftrace.c
      	arch/ia64/kernel/ftrace.c
      	arch/microblaze/kernel/ftrace.c
      	arch/mips/kernel/ftrace.c
      	arch/nds32/kernel/ftrace.c
      	arch/parisc/kernel/ftrace.c
      	arch/powerpc/kernel/kprobes-ftrace.c
      	arch/riscv/kernel/ftrace.c
      	arch/s390/kernel/ftrace.c
      	arch/s390/kernel/ftrace.h
      	arch/sh/kernel/ftrace.c
      	arch/sparc/kernel/ftrace.c
      	arch/x86/kernel/ftrace_32.S
      	arch/x86/kernel/ftrace_64.S
      	arch/x86/kernel/ftrace.c
      
      Link: https://lkml.kernel.org/r/e8338c0ad0e73991cbd8f31c215b16ea4efe212d.1648189904.git.christophe.leroy@csgroup.eu
      
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      3eaf17f5
    • Jiapeng Chong's avatar
      tracing: Fix kernel-doc · 3b57d847
      Jiapeng Chong authored
      
      
      Fix the following W=1 kernel warnings:
      
      kernel/trace/trace.c:1181: warning: expecting prototype for
      tracing_snapshot_cond_data(). Prototype was for
      tracing_cond_snapshot_data() instead.
      
      Link: https://lkml.kernel.org/r/20220218100849.122038-1-jiapeng.chong@linux.alibaba.com
      
      Reported-by: default avatarAbaci Robot <abaci@linux.alibaba.com>
      Signed-off-by: default avatarJiapeng Chong <jiapeng.chong@linux.alibaba.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      3b57d847
    • Oscar Shiang's avatar
      tracing: Fix inconsistent style of mini-HOWTO · cf2adec7
      Oscar Shiang authored
      
      
      Each description should start with a hyphen and a space. Insert
      spaces to fix it.
      
      Link: https://lkml.kernel.org/r/TYCP286MB19130AA4A9C6FC5A8793DED2A1359@TYCP286MB1913.JPNP286.PROD.OUTLOOK.COM
      
      Signed-off-by: default avatarOscar Shiang <oscar0225@livemail.tw>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      cf2adec7
    • Tom Zanussi's avatar
      tracing: Separate hist state updates from hist registration · a7e6b7dc
      Tom Zanussi authored
      
      
      hist_register_trigger() handles both new hist registration as well as
      existing hist registration through event_command.reg().
      
      Adding a new function, existing_hist_update_only(), that checks and
      updates existing histograms and exits after doing so allows the
      confusing logic in event_hist_trigger_parse() to be simplified.
      
      Link: https://lkml.kernel.org/r/211b2cd3e3d7e00f4f8ad45ef8b33063da6a7e05.1644010576.git.zanussi@kernel.org
      
      Signed-off-by: default avatarTom Zanussi <zanussi@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      a7e6b7dc
    • Tom Zanussi's avatar
      tracing: Have existing event_command.parse() implementations use helpers · e1f187d0
      Tom Zanussi authored
      
      
      Simplify the existing event_command.parse() implementations by having
      them make use of the helper functions previously introduced.
      
      Link: https://lkml.kernel.org/r/b353e3427a81f9d3adafd98fd7d73e78a8209f43.1644010576.git.zanussi@kernel.org
      
      Signed-off-by: default avatarTom Zanussi <zanussi@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      e1f187d0
    • Tom Zanussi's avatar
      tracing: Remove redundant trigger_ops params · 47670541
      Tom Zanussi authored
      
      
      Since event_trigger_data contains the .ops trigger_ops field, there's
      no reason to pass the trigger_ops separately. Remove it as a param
      from functions whenever event_trigger_data is passed.
      
      Link: https://lkml.kernel.org/r/9856c9bc81bde57077f5b8d6f8faa47156c6354a.1644010575.git.zanussi@kernel.org
      
      Signed-off-by: default avatarTom Zanussi <zanussi@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      47670541
    • Tom Zanussi's avatar
      tracing: Remove logic for registering multiple event triggers at a time · b8cc44a4
      Tom Zanussi authored
      
      
      Code for registering triggers assumes it's possible to register more
      than one trigger at a time.  In fact, it's unimplemented and there
      doesn't seem to be a reason to do that.
      
      Remove the n_registered param from event_trigger_register() and fix up
      callers.
      
      Doing so simplifies the logic in event_trigger_register to the point
      that it just becomes a wrapper calling event_command.reg().
      
      It also removes the problematic call to event_command.unreg() in case
      of failure.  A new function, event_trigger_unregister() is also added
      for callers to call themselves.
      
      The changes to trace_events_hist.c simply allow compilation; a
      separate patch follows which updates the hist triggers to work
      correctly with the new changes.
      
      Link: https://lkml.kernel.org/r/6149fec7a139d93e84fa4535672fb5bef88006b0.1644010575.git.zanussi@kernel.org
      
      Signed-off-by: default avatarTom Zanussi <zanussi@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      b8cc44a4
    • Tom Rix's avatar
      tracing: Cleanup double word in comment · 217d8c05
      Tom Rix authored
      
      
      Remove the second 'is' and 'to'.
      
      Link: https://lkml.kernel.org/r/20220207131216.2059997-1-trix@redhat.com
      
      Signed-off-by: default avatarTom Rix <trix@redhat.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      217d8c05
  2. Apr 14, 2022
    • Kurt Kanzenbach's avatar
      timekeeping: Introduce fast accessor to clock tai · 3dc6ffae
      Kurt Kanzenbach authored
      
      
      Introduce fast/NMI safe accessor to clock tai for tracing. The Linux kernel
      tracing infrastructure has support for using different clocks to generate
      timestamps for trace events. Especially in TSN networks it's useful to have TAI
      as trace clock, because the application scheduling is done in accordance to the
      network time, which is based on TAI. With a tai trace_clock in place, it becomes
      very convenient to correlate network activity with Linux kernel application
      traces.
      
      Use the same implementation as ktime_get_boot_fast_ns() does by reading the
      monotonic time and adding the TAI offset. The same limitations as for the fast
      boot implementation apply. The TAI offset may change at run time e.g., by
      setting the time or using adjtimex() with an offset. However, these kind of
      offset changes are rare events. Nevertheless, the user has to be aware and deal
      with it in post processing.
      
      An alternative approach would be to use the same implementation as
      ktime_get_real_fast_ns() does. However, this requires to add an additional u64
      member to the tk_read_base struct. This struct together with a seqcount is
      designed to fit into a single cache line on 64 bit architectures. Adding a new
      member would violate this constraint.
      
      Signed-off-by: default avatarKurt Kanzenbach <kurt@linutronix.de>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: https://lore.kernel.org/r/20220414091805.89667-2-kurt@linutronix.de
      3dc6ffae
  3. Apr 11, 2022
    • Linus Torvalds's avatar
      Linux 5.18-rc2 · ce522ba9
      Linus Torvalds authored
      ce522ba9
    • Linus Torvalds's avatar
      Merge tag 'tty-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 8b57b304
      Linus Torvalds authored
      Pull serial driver fix from Greg KH:
       "This is a single serial driver fix for a build issue that showed up
        due to changes that came in through the tty tree in 5.18-rc1 that were
        missed previously. It resolves a build error with the mpc52xx_uart
        driver.
      
        It has been in linux-next this week with no reported problems"
      
      * tag 'tty-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: serial: mpc52xx_uart: make rx/tx hooks return unsigned, part II.
      8b57b304
    • Linus Torvalds's avatar
      Merge tag 'staging-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 95aa17c3
      Linus Torvalds authored
      Pull staging driver fix from Greg KH:
       "Here is a single staging driver fix for 5.18-rc2 that resolves an
        endian issue for the r8188eu driver. It has been in linux-next all
        this week with no reported problems"
      
      * tag 'staging-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: r8188eu: Fix PPPoE tag insertion on little endian systems
      95aa17c3
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.18-rc2' of... · 33563138
      Linus Torvalds authored
      Merge tag 'driver-core-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core updates from Greg KH:
       "Here are two small driver core changes for 5.18-rc2.
      
        They are the final bits in the removal of the default_attrs field in
        struct kobj_type. I had to wait until after 5.18-rc1 for all of the
        changes to do this came in through different development trees, and
        then one new user snuck in. So this series has two changes:
      
         - removal of the default_attrs field in the powerpc/pseries/vas code.
      
           The change has been acked by the PPC maintainers to come through
           this tree
      
         - removal of default_attrs from struct kobj_type now that all
           in-kernel users are removed.
      
           This cleans up the kobject code a little bit and removes some
           duplicated functionality that confused people (now there is only
           one way to do default groups)
      
        Both of these have been in linux-next for all of this week with no
        reported problems"
      
      * tag 'driver-core-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        kobject: kobj_type: remove default_attrs
        powerpc/pseries/vas: use default_groups in kobj_type
      33563138
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · f58d3410
      Linus Torvalds authored
      Pull char/misc driver fix from Greg KH:
       "A single driver fix. It resolves the build warning issue on 32bit
        systems in the habannalabs driver that came in during the 5.18-rc1
        merge cycle.
      
        It has been in linux-next for all this week with no reported problems"
      
      * tag 'char-misc-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        habanalabs: Fix test build failures
      f58d3410
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 4ea3c642
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix KVM "lost kick" race, where an attempt to pull a vcpu out of the
         guest could be lost (or delayed until the next guest exit).
      
       - Disable SCV (system call vectored) when PR KVM guests could be run.
      
       - Fix KVM PR guests using SCV, by disallowing AIL != 0 for KVM PR
         guests.
      
       - Add a new KVM CAP to indicate if AIL == 3 is supported.
      
       - Fix a regression when hotplugging a CPU to a memoryless/cpuless node.
      
       - Make virt_addr_valid() stricter for 64-bit Book3E & 32-bit, which
         fixes crashes seen due to hardened usercopy.
      
       - Revert a change to max_mapnr which broke HIGHMEM.
      
      Thanks to Christophe Leroy, Fabiano Rosas, Kefeng Wang, Nicholas Piggin,
      and Srikar Dronamraju.
      
      * tag 'powerpc-5.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        Revert "powerpc: Set max_mapnr correctly"
        powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit
        KVM: PPC: Move kvmhv_on_pseries() into kvm_ppc.h
        powerpc/numa: Handle partially initialized numa nodes
        powerpc/64: Fix build failure with allyesconfig in book3s_64_entry.S
        KVM: PPC: Use KVM_CAP_PPC_AIL_MODE_3
        KVM: PPC: Book3S PR: Disallow AIL != 0
        KVM: PPC: Book3S PR: Disable SCV when AIL could be disabled
        KVM: PPC: Book3S HV P9: Fix "lost kick" race
      4ea3c642
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2022-04-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1519610b
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A set of interrupt chip driver fixes:
      
         - A fix for a long standing bug in the ARM GICv3 redistributor
           polling which uses the wrong bit number to test.
      
         - Prevent translation of bogus ACPI table entries which map device
           interrupts into the IPI space on ARM GICs.
      
         - Don't write into the pending register of ARM GICV4 before the scan
           in hardware has completed.
      
         - A set of build and correctness fixes for the Qualcomm MPM driver"
      
      * tag 'irq-urgent-2022-04-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic, gic-v3: Prevent GSI to SGI translations
        irqchip/gic-v3: Fix GICR_CTLR.RWP polling
        irqchip/gic-v4: Wait for GICR_VPENDBASER.Dirty to clear before descheduling
        irqchip/irq-qcom-mpm: fix return value check in qcom_mpm_init()
        irq/qcom-mpm: Fix build error without MAILBOX
      1519610b
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9c6913b7
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - Fix the MSI message data struct definition
      
       - Use local labels in the exception table macros to avoid symbol
         conflicts with clang LTO builds
      
       - A couple of fixes to objtool checking of the relatively newly added
         SLS and IBT code
      
       - Rename a local var in the WARN* macro machinery to prevent shadowing
      
      * tag 'x86_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/msi: Fix msi message data shadow struct
        x86/extable: Prefer local labels in .set directives
        x86,bpf: Avoid IBT objtool warning
        objtool: Fix SLS validation for kcov tail-call replacement
        objtool: Fix IBT tail-call detection
        x86/bug: Prevent shadowing in __WARN_FLAGS
        x86/mm/tlb: Revert retpoline avoidance approach
      9c6913b7
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b51f86e9
      Linus Torvalds authored
      Pull perf fixes from Borislav Petkov:
      
       - A couple of fixes to cgroup-related handling of perf events
      
       - A couple of fixes to event encoding on Sapphire Rapids
      
       - Pass event caps of inherited events so that perf doesn't fail wrongly
         at fork()
      
       - Add support for a new Raptor Lake CPU
      
      * tag 'perf_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/core: Always set cpuctx cgrp when enable cgroup event
        perf/core: Fix perf_cgroup_switch()
        perf/core: Use perf_cgroup_info->active to check if cgroup is active
        perf/core: Don't pass task around when ctx sched in
        perf/x86/intel: Update the FRONTEND MSR mask on Sapphire Rapids
        perf/x86/intel: Don't extend the pseudo-encoding to GP counters
        perf/core: Inherit event_caps
        perf/x86/uncore: Add Raptor Lake uncore support
        perf/x86/msr: Add Raptor Lake CPU support
        perf/x86/cstate: Add Raptor Lake support
        perf/x86: Add Intel Raptor Lake support
      b51f86e9
    • Linus Torvalds's avatar
      Merge tag 'locking_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 50c94de6
      Linus Torvalds authored
      Pull locking fixes from Borislav Petkov:
      
       - Allow the compiler to optimize away unused percpu accesses and change
         the local_lock_* macros back to inline functions
      
       - A couple of fixes to static call insn patching
      
      * tag 'locking_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "mm/page_alloc: mark pagesets as __maybe_unused"
        Revert "locking/local_lock: Make the empty local_lock_*() function a macro."
        x86/percpu: Remove volatile from arch_raw_cpu_ptr().
        static_call: Remove __DEFINE_STATIC_CALL macro
        static_call: Properly initialise DEFINE_STATIC_CALL_RET0()
        static_call: Don't make __static_call_return0 static
        x86,static_call: Fix __static_call_return0 for i386
      50c94de6
    • Linus Torvalds's avatar
      Merge tag 'sched_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7136849e
      Linus Torvalds authored
      Pull scheduler fixes from Borislav Petkov:
      
       - Use the correct static key checking primitive on the IRQ exit path
      
       - Two fixes for the new forceidle balancer
      
      * tag 'sched_urgent_for_v5.18_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        entry: Fix compile error in dynamic_irqentry_exit_cond_resched()
        sched: Teach the forced-newidle balancer about CPU affinity limitation.
        sched/core: Fix forceidle balancing
      7136849e
  4. Apr 10, 2022
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v5.18-2022-04-09' of... · 1862a69c
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v5.18-2022-04-09' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix the clang command line option probing and remove some options to
         filter out, fixing the build with the latest clang versions
      
       - Fix 'perf bench' futex and epoll benchmarks to deal with machines
         with more than 1K CPUs
      
       - Fix 'perf test tsc' error message when not supported
      
       - Remap perf ring buffer if there is no space for event, fixing perf
         usage in 32-bit ChromeOS
      
       - Drop objdump stderr to avoid getting stuck waiting for stdout output
         in 'perf annotate'
      
       - Fix up garbled output by now showing unwind error messages when
         augmenting frame in best effort mode
      
       - Fix perf's libperf_print callback, use the va_args eprintf() variant
      
       - Sync vhost and arm64 cputype headers with the kernel sources
      
       - Fix 'perf report --mem-mode' with ARM SPE
      
       - Add missing external commands ('iiostat', etc) to 'perf --list-cmds'
      
      * tag 'perf-tools-fixes-for-v5.18-2022-04-09' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf annotate: Drop objdump stderr to avoid getting stuck waiting for stdout output
        perf tools: Add external commands to list-cmds
        perf docs: Add perf-iostat link to manpages
        perf session: Remap buf if there is no space for event
        perf bench: Fix epoll bench to correct usage of affinity for machines with #CPUs > 1K
        perf bench: Fix futex bench to correct usage of affinity for machines with #CPUs > 1K
        perf tools: Fix perf's libperf_print callback
        perf: arm-spe: Fix perf report --mem-mode
        perf unwind: Don't show unwind error messages when augmenting frame pointer stack
        tools headers arm64: Sync arm64's cputype.h with the kernel sources
        perf test tsc: Fix error message when not supported
        perf build: Don't use -ffat-lto-objects in the python feature test when building with clang-13
        perf python: Fix probing for some clang command line options
        tools build: Filter out options and warnings not supported by clang
        tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts
        tools include UAPI: Sync linux/vhost.h with the kernel sources
      1862a69c
    • Linus Torvalds's avatar
      Merge tag 'cxl+nvdimm-for-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 94a4c2bb
      Linus Torvalds authored
      Pull cxl and nvdimm fixes from Dan Williams:
      
       - Fix a compile error in the nvdimm unit tests
      
       - Fix a shadowed variable warning in the CXL PCI driver
      
      * tag 'cxl+nvdimm-for-5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        cxl/pci: Drop shadowed variable
        tools/testing/nvdimm: Fix security_init() symbol collision
      94a4c2bb
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · fa3b895d
      Linus Torvalds authored
      Pull gpio fix from Bartosz Golaszewski:
      
       - fix a race condition with consumers accessing the fields of GPIO IRQ
         chips before they're fully initialized
      
      * tag 'gpio-fixes-for-v5.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: Restrict usage of GPIO chip irq members before initialization
      fa3b895d
    • Thomas Gleixner's avatar
      Merge tag 'irqchip-fixes-5.18-1' of... · 63ef1a8a
      Thomas Gleixner authored
      Merge tag 'irqchip-fixes-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent
      
      Pull irqchip fixes from Marc Zyngier:
      
       - Fix GICv3 polling for RWP in redistributors
      
       - Reject ACPI attempts to use SGIs on GIC/GICv3
      
       - Fix unpredictible behaviour when making a VPE non-resident
         with GICv4
      
       - A couple of fixes for the newly merged qcom-mpm driver
      
      Link: https://lore.kernel.org/lkml/20220409094229.267649-1-maz@kernel.org
      63ef1a8a
    • Ian Rogers's avatar
      perf annotate: Drop objdump stderr to avoid getting stuck waiting for stdout output · 940a445a
      Ian Rogers authored
      
      
      If objdump writes to stderr it can block waiting for it to be read. As
      perf doesn't read stderr then progress stops with perf waiting for
      stdout output.
      
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Alexandre Truong <alexandre.truong@arm.com>
      Cc: Dave Marchevsky <davemarchevsky@fb.com>
      Cc: Denis Nikitin <denik@chromium.org>
      Cc: German Gomez <german.gomez@arm.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Lexi Shao <shaolexi@huawei.com>
      Cc: Li Huafei <lihuafei1@huawei.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Martin Liška <mliska@suse.cz>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Michael Petlan <mpetlan@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: Remi Bernon <rbernon@codeweavers.com>
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: Song Liu <songliubraving@fb.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Thomas Richter <tmricht@linux.ibm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: William Cohen <wcohen@redhat.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: http://lore.kernel.org/lkml/20220407230503.1265036-2-irogers@google.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      940a445a
    • Michael Petlan's avatar
      perf tools: Add external commands to list-cmds · 3e6b43be
      Michael Petlan authored
      
      
      The `perf --list-cmds` output prints only internal commands, although
      there is no reason for that from users' perspective.
      
      Adding the external commands to commands array with NULL function
      pointer allows printing all perf commands while not changing the logic
      of command handler selection.
      
      Signed-off-by: default avatarMichael Petlan <mpetlan@redhat.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: https://lore.kernel.org/r/20220404221541.30312-2-mpetlan@redhat.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3e6b43be
    • Michael Petlan's avatar
      perf docs: Add perf-iostat link to manpages · 0ff26efe
      Michael Petlan authored
      
      
      Signed-off-by: default avatarMichael Petlan <mpetlan@redhat.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: https://lore.kernel.org/r/20220404221541.30312-1-mpetlan@redhat.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      0ff26efe
    • Denis Nikitin's avatar
      perf session: Remap buf if there is no space for event · bc21e74d
      Denis Nikitin authored
      If a perf event doesn't fit into remaining buffer space return NULL to
      remap buf and fetch the event again.
      
      Keep the logic to error out on inadequate input from fuzzing.
      
      This fixes perf failing on ChromeOS (with 32b userspace):
      
        $ perf report -v -i perf.data
        ...
        prefetch_event: head=0x1fffff8 event->header_size=0x30, mmap_size=0x2000000: fuzzed or compressed perf.data?
        Error:
        failed to process sample
      
      Fixes: 57fc032a
      
       ("perf session: Avoid infinite loop when seeing invalid header.size")
      Reviewed-by: default avatarJames Clark <james.clark@arm.com>
      Signed-off-by: default avatarDenis Nikitin <denik@chromium.org>
      Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Alexey Budankov <alexey.budankov@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20220330031130.2152327-1-denik@chromium.org
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      bc21e74d
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · e1f700eb
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
      
       - add support for new devices (ufs, mvsas)
      
       - a major set of fixes in lpfc
      
       - get rid of a driver specific ioctl in pcmraid
      
       - a major rework of aha152x to get rid of the scsi_pointer.
      
       - minor fixes and obvious changes including several spelling updates.
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (36 commits)
        scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan
        scsi: ufs: ufshpb: Fix a NULL check on list iterator
        scsi: sd: Clean up gendisk if device_add_disk() failed
        scsi: message: fusion: Remove redundant variable dmp
        scsi: mvsas: Add PCI ID of RocketRaid 2640
        scsi: sd: sd_read_cpr() requires VPD pages
        scsi: mpt3sas: Fail reset operation if config request timed out
        scsi: sym53c500_cs: Stop using struct scsi_pointer
        scsi: ufs: ufs-pci: Add support for Intel MTL
        scsi: mpt3sas: Fix mpt3sas_check_same_4gb_region() kdoc comment
        scsi: scsi_debug: Fix sdebug_blk_mq_poll() in_use_bm bitmap use
        scsi: bnx2i: Fix spelling mistake "mis-match" -> "mismatch"
        scsi: bnx2fc: Fix spelling mistake "mis-match" -> "mismatch"
        scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()
        scsi: aic7xxx: Use standard PCI subsystem, subdevice defines
        scsi: ufs: qcom: Drop custom Android boot parameters
        scsi: core: sysfs: Remove comments that conflict with the actual logic
        scsi: hisi_sas: Remove stray fallthrough annotation
        scsi: virtio-scsi: Eliminate anonymous module_init & module_exit
        scsi: isci: Fix spelling mistake "doesnt" -> "doesn't"
        ...
      e1f700eb
  5. Apr 09, 2022
    • Athira Rajeev's avatar
      perf bench: Fix epoll bench to correct usage of affinity for machines with #CPUs > 1K · 299687e1
      Athira Rajeev authored
      
      
      The 'perf bench epoll' testcase fails on systems with more than 1K CPUs.
      
      Testcase: perf bench epoll all
      
      Result snippet:
      <<>>
      Run summary [PID 106497]: 1399 threads monitoring on 64 file-descriptors for 8 secs.
      
      perf: pthread_create: No such file or directory
      <<>>
      
      In epoll benchmarks (ctl, wait) pthread_create is invoked in do_threads
      from respective bench_epoll_*  function. Though the logs shows direct
      failure from pthread_create, the actual failure is from
      "sched_setaffinity" returning EINVAL (invalid argument).
      
      This happens because the default mask size in glibc is 1024. To overcome
      this 1024 CPUs mask size limitation of cpu_set_t, change the mask size
      using the CPU_*_S macros.
      
      Patch addresses this by fixing all the epoll benchmarks to use CPU_ALLOC
      to allocate cpumask, CPU_ALLOC_SIZE for size, and CPU_SET_S to set the
      mask.
      
      Reported-by: default avatarDisha Goel <disgoel@linux.vnet.ibm.com>
      Signed-off-by: default avatarAthira Jajeev <atrajeev@linux.vnet.ibm.com>
      Tested-by: default avatarDisha Goel <disgoel@linux.vnet.ibm.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kajol Jain <kjain@linux.ibm.com>
      Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Nageswara R Sastry <rnsastry@linux.ibm.com>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: linuxppc-dev@lists.ozlabs.org
      Link: https://lore.kernel.org/r/20220406175113.87881-3-atrajeev@linux.vnet.ibm.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      299687e1
    • Athira Rajeev's avatar
      perf bench: Fix futex bench to correct usage of affinity for machines with #CPUs > 1K · c9c2a427
      Athira Rajeev authored
      
      
      The 'perf bench futex' testcase fails on systems with more than 1K CPUs.
      
      Testcase: perf bench futex all
      
      Failure snippet:
      <<>>Running futex/hash benchmark...
      
      perf: pthread_create: No such file or directory
      <<>>
      
      All the futex benchmarks (ie hash, lock-api, requeue, wake,
      wake-parallel), pthread_create is invoked in respective bench_futex_*
      function. Though the logs shows direct failure from pthread_create,
      strace logs showed that actual failure is from  "sched_setaffinity"
      returning EINVAL (invalid argument).
      
      This happens because the default mask size in glibc is 1024. To overcome
      this 1024 CPUs mask size limitation of cpu_set_t, change the mask size
      using the CPU_*_S macros.
      
      Patch addresses this by fixing all the futex benchmarks to use CPU_ALLOC
      to allocate cpumask, CPU_ALLOC_SIZE for size, and CPU_SET_S to set the
      mask.
      
      Reported-by: default avatarDisha Goel <disgoel@linux.vnet.ibm.com>
      Reviewed-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
      Signed-off-by: default avatarAthira Jajeev <atrajeev@linux.vnet.ibm.com>
      Tested-by: default avatarDisha Goel <disgoel@linux.vnet.ibm.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kajol Jain <kjain@linux.ibm.com>
      Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Nageswara R Sastry <rnsastry@linux.ibm.com>
      Cc: linuxppc-dev@lists.ozlabs.org
      Link: https://lore.kernel.org/r/20220406175113.87881-2-atrajeev@linux.vnet.ibm.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c9c2a427
    • Adrian Hunter's avatar
      perf tools: Fix perf's libperf_print callback · aeee9dc5
      Adrian Hunter authored
      
      
      eprintf() does not expect va_list as the type of the 4th parameter.
      
      Use veprintf() because it does.
      
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Fixes: 428dab81
      
       ("libperf: Merge libperf_set_print() into libperf_init()")
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: https://lore.kernel.org/r/20220408132625.2451452-1-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      aeee9dc5
    • James Clark's avatar
      perf: arm-spe: Fix perf report --mem-mode · ffab4870
      James Clark authored
      Since commit bb30acae ("perf report: Bail out --mem-mode if mem
      info is not available") "perf mem report" and "perf report --mem-mode"
      don't allow opening the file unless one of the events has
      PERF_SAMPLE_DATA_SRC set.
      
      SPE doesn't have this set even though synthetic memory data is generated
      after it is decoded. Fix this issue by setting DATA_SRC on SPE events.
      This has no effect on the data collected because the SPE driver doesn't
      do anything with that flag and doesn't generate samples.
      
      Fixes: bb30acae
      
       ("perf report: Bail out --mem-mode if mem info is not available")
      Signed-off-by: default avatarJames Clark <james.clark@arm.com>
      Tested-by: default avatarLeo Yan <leo.yan@linaro.org>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: German Gomez <german.gomez@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
      Cc: Will Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20220408144056.1955535-1-james.clark@arm.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ffab4870
    • James Clark's avatar
      perf unwind: Don't show unwind error messages when augmenting frame pointer stack · fa7095c5
      James Clark authored
      Commit Fixes: b9f6fbb3 ("perf arm64: Inject missing frames when
      using 'perf record --call-graph=fp'") intended to add a 'best effort'
      DWARF unwind that improved the frame pointer stack in most scenarios.
      
      It's expected that the unwind will fail sometimes, but this shouldn't be
      reported as an error. It only works when the return address can be
      determined from the contents of the link register alone.
      
      Fix the error shown when the unwinder requires extra registers by adding
      a new flag that suppresses error messages. This flag is not set in the
      normal --call-graph=dwarf unwind mode so that behavior is not changed.
      
      Fixes: b9f6fbb3
      
       ("perf arm64: Inject missing frames when using 'perf record --call-graph=fp'")
      Reported-by: default avatarJohn Garry <john.garry@huawei.com>
      Signed-off-by: default avatarJames Clark <james.clark@arm.com>
      Tested-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Alexandre Truong <alexandre.truong@arm.com>
      Cc: German Gomez <german.gomez@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20220406145651.1392529-1-james.clark@arm.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      fa7095c5
    • Arnaldo Carvalho de Melo's avatar
      tools headers arm64: Sync arm64's cputype.h with the kernel sources · 278aaba2
      Arnaldo Carvalho de Melo authored
      To get the changes in:
      
        83bea32a
      
       ("arm64: Add part number for Arm Cortex-A78AE")
      
      That addresses this perf build warning:
      
        Warning: Kernel ABI header at 'tools/arch/arm64/include/asm/cputype.h' differs from latest version at 'arch/arm64/include/asm/cputype.h'
        diff -u tools/arch/arm64/include/asm/cputype.h arch/arm64/include/asm/cputype.h
      
      Cc: Ali Saidi <alisaidi@amazon.com>
      Cc: Andrew Kilroy <andrew.kilroy@arm.com>
      Cc: Chanho Park <chanho61.park@samsung.com>
      Cc: German Gomez <german.gomez@arm.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Will Deacon <will@kernel.org>
      Link: http://lore.kernel.org/lkml/
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      278aaba2
    • Chengdong Li's avatar
      perf test tsc: Fix error message when not supported · 290fa68b
      Chengdong Li authored
      
      
      By default `perf test tsc` does not return the error message when the
      child process detected kernel does not support it. Instead, the child
      process prints an error message to stderr, unfortunately stderr is
      redirected to /dev/null when verbose <= 0.
      
      This patch does:
      
      - return TEST_SKIP to the parent process instead of TEST_OK when
        perf_read_tsc_conversion() is not supported.
      
      - Add a new subtest of testing if TSC is supported on current
        architecture by moving exist code to a separate function.
        It avoids two places in test__perf_time_to_tsc() that return
        TEST_SKIP by doing this.
      
      - Extend the test suite definition to contain above two subtests.
        Current test_suite and test_case structs do not support printing skip
        reason when the number of subtest less than 1. To print skip reason, it
        is necessary to extend current test suite definition.
      
      Reviewed-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Signed-off-by: default avatarChengdong Li <chengdongli@tencent.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: likexu@tencent.com
      Link: https://lore.kernel.org/r/20220408084748.43707-1-chengdongli@tencent.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      290fa68b
    • Arnaldo Carvalho de Melo's avatar
      perf build: Don't use -ffat-lto-objects in the python feature test when building with clang-13 · 3a8a0475
      Arnaldo Carvalho de Melo authored
      
      
      Using -ffat-lto-objects in the python feature test when building with
      clang-13 results in:
      
        clang-13: error: optimization flag '-ffat-lto-objects' is not supported [-Werror,-Wignored-optimization-argument]
        error: command '/usr/sbin/clang' failed with exit code 1
        cp: cannot stat '/tmp/build/perf/python_ext_build/lib/perf*.so': No such file or directory
        make[2]: *** [Makefile.perf:639: /tmp/build/perf/python/perf.so] Error 1
      
      Noticed when building on a docker.io/library/archlinux:base container.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Fangrui Song <maskray@google.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Keeping <john@metanate.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Michael Petlan <mpetlan@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Sedat Dilek <sedat.dilek@gmail.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3a8a0475
    • Arnaldo Carvalho de Melo's avatar
      perf python: Fix probing for some clang command line options · dd6e1fe9
      Arnaldo Carvalho de Melo authored
      
      
      The clang compiler complains about some options even without a source
      file being available, while others require one, so use the simple
      tools/build/feature/test-hello.c file.
      
      Then check for the "is not supported" string in its output, in addition
      to the "unknown argument" already being looked for.
      
      This was noticed when building with clang-13 where -ffat-lto-objects
      isn't supported and since we were looking just for "unknown argument"
      and not providing a source code to clang, was mistakenly assumed as
      being available and not being filtered to set of command line options
      provided to clang, leading to a build failure.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Fangrui Song <maskray@google.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Keeping <john@metanate.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Michael Petlan <mpetlan@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Sedat Dilek <sedat.dilek@gmail.com>
      Link: http://lore.kernel.org/lkml/
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      dd6e1fe9