Skip to content
  1. Apr 22, 2022
    • Marco Elver's avatar
      signal: Deliver SIGTRAP on perf event asynchronously if blocked · 78ed93d7
      Marco Elver authored
      With SIGTRAP on perf events, we have encountered termination of
      processes due to user space attempting to block delivery of SIGTRAP.
      Consider this case:
      
          <set up SIGTRAP on a perf event>
          ...
          sigset_t s;
          sigemptyset(&s);
          sigaddset(&s, SIGTRAP | <and others>);
          sigprocmask(SIG_BLOCK, &s, ...);
          ...
          <perf event triggers>
      
      When the perf event triggers, while SIGTRAP is blocked, force_sig_perf()
      will force the signal, but revert back to the default handler, thus
      terminating the task.
      
      This makes sense for error conditions, but not so much for explicitly
      requested monitoring. However, the expectation is still that signals
      generated by perf events are synchronous, which will no longer be the
      case if the signal is blocked and delivered later.
      
      To give user space the ability to clearly distinguish synchronous from
      asynchronous signals, introduce siginfo_t::si_perf_flags and
      TRAP_PERF_FLAG_ASYNC (opted for flags in case more binary information is
      required in future).
      
      The resolution to the problem is then to (a) no longer force the signal
      (avoiding the terminations), but (b) tell user space via si_perf_flags
      if the signal was synchronous or not, so that such signals can be
      handled differently (e.g. let user space decide to ignore or consider
      the data imprecise).
      
      The alternative of making the kernel ignore SIGTRAP on perf events if
      the signal is blocked may work for some usecases, but likely causes
      issues in others that then have to revert back to interception of
      sigprocmask() (which we want to avoid). [ A concrete example: when using
      breakpoint perf events to track data-flow, in a region of code where
      signals are blocked, data-flow can no longer be tracked accurately.
      When a relevant asynchronous signal is received after unblocking the
      signal, the data-flow tracking logic needs to know its state is
      imprecise. ]
      
      Fixes: 97ba62b2
      
       ("perf: Add support for SIGTRAP on perf events")
      Reported-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Signed-off-by: default avatarMarco Elver <elver@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Tested-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Link: https://lore.kernel.org/r/20220404111204.935357-1-elver@google.com
      78ed93d7
  2. Apr 05, 2022
    • Yang Jihong's avatar
      perf/x86: Unify format of events sysfs show · 7bebfe9d
      Yang Jihong authored
      
      
      Sysfs show formats of files in /sys/devices/cpu/events/ are not unified,
      some end with "\n", and some do not. Modify sysfs show format of events
      defined by EVENT_ATTR_STR to end with "\n".
      
      Before:
        $ ls /sys/devices/cpu/events/* | xargs -i sh -c 'echo -n "{}: "; cat -A {}; echo'
        branch-instructions: event=0xc4$
      
        branch-misses: event=0xc5$
      
        bus-cycles: event=0x3c,umask=0x01$
      
        cache-misses: event=0x2e,umask=0x41$
      
        cache-references: event=0x2e,umask=0x4f$
      
        cpu-cycles: event=0x3c$
      
        instructions: event=0xc0$
      
        ref-cycles: event=0x00,umask=0x03$
      
        slots: event=0x00,umask=0x4
        topdown-bad-spec: event=0x00,umask=0x81
        topdown-be-bound: event=0x00,umask=0x83
        topdown-fe-bound: event=0x00,umask=0x82
        topdown-retiring: event=0x00,umask=0x80
      
      After:
        $ ls /sys/devices/cpu/events/* | xargs -i sh -c 'echo -n "{}: "; cat -A {}; echo'
        /sys/devices/cpu/events/branch-instructions: event=0xc4$
      
        /sys/devices/cpu/events/branch-misses: event=0xc5$
      
        /sys/devices/cpu/events/bus-cycles: event=0x3c,umask=0x01$
      
        /sys/devices/cpu/events/cache-misses: event=0x2e,umask=0x41$
      
        /sys/devices/cpu/events/cache-references: event=0x2e,umask=0x4f$
      
        /sys/devices/cpu/events/cpu-cycles: event=0x3c$
      
        /sys/devices/cpu/events/instructions: event=0xc0$
      
        /sys/devices/cpu/events/ref-cycles: event=0x00,umask=0x03$
      
        /sys/devices/cpu/events/slots: event=0x00,umask=0x4$
      
      Signed-off-by: default avatarYang Jihong <yangjihong1@huawei.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lkml.kernel.org/r/20220324031957.135595-1-yangjihong1@huawei.com
      7bebfe9d
    • Stephane Eranian's avatar
      perf/x86/amd: Add idle hooks for branch sampling · d5616bac
      Stephane Eranian authored
      
      
      On AMD Fam19h Zen3, the branch sampling (BRS) feature must be disabled before
      entering low power and re-enabled (if was active) when returning from low
      power. Otherwise, the NMI interrupt may be held up for too long and cause
      problems. Stopping BRS will cause the NMI to be delivered if it was held up.
      
      Define a perf_amd_brs_lopwr_cb() callback to stop/restart BRS.  The callback
      is protected by a jump label which is enabled only when AMD BRS is detected.
      In all other cases, the callback is never called.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      [peterz: static_call() and build fixes]
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220322221517.2510440-10-eranian@google.com
      d5616bac
    • Stephane Eranian's avatar
      ACPI: Add perf low power callback · 2a606a18
      Stephane Eranian authored
      
      
      Add an optional callback needed by some PMU features, e.g., AMD
      BRS, to give a chance to the perf_events code to change its state before
      a CPU goes to low power and after it comes back.
      
      The callback is void when the PERF_NEEDS_LOPWR_CB flag is not set.
      This flag must be set in arch specific perf_event.h header whenever needed.
      When not set, there is no impact on the ACPI code.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      [peterz: build fix]
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220322221517.2510440-9-eranian@google.com
      2a606a18
    • Stephane Eranian's avatar
      perf/x86/amd: Make Zen3 branch sampling opt-in · cc37e520
      Stephane Eranian authored
      
      
      Add a kernel config option CONFIG_PERF_EVENTS_AMD_BRS
      to make the support for AMD Zen3 Branch Sampling (BRS) an opt-in
      compile time option.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220322221517.2510440-8-eranian@google.com
      cc37e520
    • Stephane Eranian's avatar
      perf/x86/amd: Add AMD branch sampling period adjustment · ba2fe750
      Stephane Eranian authored
      
      
      Add code to adjust the sampling event period when used with the Branch
      Sampling feature (BRS). Given the depth of the BRS (16), the period is
      reduced by that depth such that in the best case scenario, BRS saturates at
      the desired sampling period. In practice, though, the processor may execute
      more branches. Given a desired period P and a depth D, the kernel programs
      the actual period at P - D. After P occurrences of the sampling event, the
      counter overflows. It then may take X branches (skid) before the NMI is
      caught and held by the hardware and BRS activates. Then, after D branches,
      BRS saturates and the NMI is delivered.  With no skid, the effective period
      would be (P - D) + D = P. In practice, however, it will likely be (P - D) +
      X + D. There is no way to eliminate X or predict X.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220322221517.2510440-7-eranian@google.com
      ba2fe750
    • Stephane Eranian's avatar
      perf/x86/amd: Enable branch sampling priv level filtering · 8910075d
      Stephane Eranian authored
      
      
      The AMD Branch Sampling features does not provide hardware filtering by
      privilege level. The associated PMU counter does but not the branch sampling
      by itself. Given how BRS operates there is a possibility that BRS captures
      kernel level branches even though the event is programmed to count only at
      the user level.
      
      Implement a workaround in software by removing the branches which belong to
      the wrong privilege level. The privilege level is evaluated on the target of
      the branch and not the source so as to be compatible with other architectures.
      As a consequence of this patch, the number of entries in the
      PERF_RECORD_BRANCH_STACK buffer may be less than the maximum (16).  It could
      even be zero. Another consequence is that consecutive entries in the branch
      stack may not reflect actual code path and may have discontinuities, in case
      kernel branches were suppressed. But this is no different than what happens
      on other architectures.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220322221517.2510440-6-eranian@google.com
      8910075d
    • Stephane Eranian's avatar
      perf/x86/amd: Add branch-brs helper event for Fam19h BRS · 44175993
      Stephane Eranian authored
      
      
      Add a pseudo event called branch-brs to help use the FAM Fam19h
      Branch Sampling feature (BRS). BRS samples taken branches, so it is best used
      when sampling on a retired taken branch event (0xc4) which is what BRS
      captures.  Instead of trying to remember the event code or actual event name,
      users can simply do:
      
      $ perf record -b -e cpu/branch-brs/ -c 1000037 .....
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220322221517.2510440-5-eranian@google.com
      44175993
    • Stephane Eranian's avatar
      perf/x86/amd: Add AMD Fam19h Branch Sampling support · ada54345
      Stephane Eranian authored
      
      
      Add support for the AMD Fam19h 16-deep branch sampling feature as
      described in the AMD PPR Fam19h Model 01h Revision B1.  This is a model
      specific extension. It is not an architected AMD feature.
      
      The Branch Sampling (BRS) operates with a 16-deep saturating buffer in MSR
      registers. There is no branch type filtering. All control flow changes are
      captured. BRS relies on specific programming of the core PMU of Fam19h.  In
      particular, the following requirements must be met:
       - the sampling period be greater than 16 (BRS depth)
       - the sampling period must use a fixed and not frequency mode
      
      BRS interacts with the NMI interrupt as well. Because enabling BRS is
      expensive, it is only activated after P event occurrences, where P is the
      desired sampling period.  At P occurrences of the event, the counter
      overflows, the CPU catches the interrupt, activates BRS for 16 branches until
      it saturates, and then delivers the NMI to the kernel.  Between the overflow
      and the time BRS activates more branches may be executed skewing the period.
      All along, the sampling event keeps counting. The skid may be attenuated by
      reducing the sampling period by 16 (subsequent patch).
      
      BRS is integrated into perf_events seamlessly via the same
      PERF_RECORD_BRANCH_STACK sample format. BRS generates perf_branch_entry
      records in the sampling buffer. No prediction information is supported. The
      branches are stored in reverse order of execution.  The most recent branch is
      the first entry in each record.
      
      No modification to the perf tool is necessary.
      
      BRS can be used with any sampling event. However, it is recommended to use
      the RETIRED_BRANCH_INSTRUCTIONS event because it matches what the BRS
      captures.
      
      $ perf record -b -c 1000037 -e cpu/event=0xc2,name=ret_br_instructions/ test
      
      $ perf report -D
      56531696056126 0x193c000 [0x1a8]: PERF_RECORD_SAMPLE(IP, 0x2): 18122/18230: 0x401d24 period: 1000037 addr: 0
      ... branch stack: nr:16
      .....  0: 0000000000401d24 -> 0000000000401d5a 0 cycles      0
      .....  1: 0000000000401d5c -> 0000000000401d24 0 cycles      0
      .....  2: 0000000000401d22 -> 0000000000401d5c 0 cycles      0
      .....  3: 0000000000401d5e -> 0000000000401d22 0 cycles      0
      .....  4: 0000000000401d20 -> 0000000000401d5e 0 cycles      0
      .....  5: 0000000000401d3e -> 0000000000401d20 0 cycles      0
      .....  6: 0000000000401d42 -> 0000000000401d3e 0 cycles      0
      .....  7: 0000000000401d3c -> 0000000000401d42 0 cycles      0
      .....  8: 0000000000401d44 -> 0000000000401d3c 0 cycles      0
      .....  9: 0000000000401d3a -> 0000000000401d44 0 cycles      0
      ..... 10: 0000000000401d46 -> 0000000000401d3a 0 cycles      0
      ..... 11: 0000000000401d38 -> 0000000000401d46 0 cycles      0
      ..... 12: 0000000000401d48 -> 0000000000401d38 0 cycles      0
      ..... 13: 0000000000401d36 -> 0000000000401d48 0 cycles      0
      ..... 14: 0000000000401d4a -> 0000000000401d36 0 cycles      0
      ..... 15: 0000000000401d34 -> 0000000000401d4a 0 cycles      0
       ... thread: test:18230
       ...... dso: test
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220322221517.2510440-4-eranian@google.com
      ada54345
    • Stephane Eranian's avatar
      x86/cpufeatures: Add AMD Fam19h Branch Sampling feature · a77d41ac
      Stephane Eranian authored
      
      
      Add a cpu feature for AMD Fam19h Branch Sampling feature as bit
      31 of EBX on CPUID leaf function 0x80000008.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220322221517.2510440-3-eranian@google.com
      a77d41ac
    • Stephane Eranian's avatar
      perf/core: Add perf_clear_branch_entry_bitfields() helper · bfe4daf8
      Stephane Eranian authored
      
      
      Make it simpler to reset all the info fields on the
      perf_branch_entry by adding a helper inline function.
      
      The goal is to centralize the initialization to avoid missing
      a field in case more are added.
      
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20220322221517.2510440-2-eranian@google.com
      bfe4daf8
  3. Apr 04, 2022
    • Linus Torvalds's avatar
      Linux 5.18-rc1 · 31231092
      Linus Torvalds authored
      v5.18-rc1
      31231092
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 09bb8856
      Linus Torvalds authored
      Pull more tracing updates from Steven Rostedt:
      
       - Rename the staging files to give them some meaning. Just
         stage1,stag2,etc, does not show what they are for
      
       - Check for NULL from allocation in bootconfig
      
       - Hold event mutex for dyn_event call in user events
      
       - Mark user events to broken (to work on the API)
      
       - Remove eBPF updates from user events
      
       - Remove user events from uapi header to keep it from being installed.
      
       - Move ftrace_graph_is_dead() into inline as it is called from hot
         paths and also convert it into a static branch.
      
      * tag 'trace-v5.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Move user_events.h temporarily out of include/uapi
        ftrace: Make ftrace_graph_is_dead() a static branch
        tracing: Set user_events to BROKEN
        tracing/user_events: Remove eBPF interfaces
        tracing/user_events: Hold event_mutex during dyn_event_add
        proc: bootconfig: Add null pointer check
        tracing: Rename the staging files for trace_events
      09bb8856
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 34a53ff9
      Linus Torvalds authored
      Pull clk fix from Stephen Boyd:
       "A single revert to fix a boot regression seen when clk_put() started
        dropping rate range requests. It's best to keep various systems
        booting so we'll kick this out and try again next time"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        Revert "clk: Drop the rate range on clk_put()"
      34a53ff9
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2022-04-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8b5656bc
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "A set of x86 fixes and updates:
      
         - Make the prctl() for enabling dynamic XSTATE components correct so
           it adds the newly requested feature to the permission bitmap
           instead of overwriting it. Add a selftest which validates that.
      
         - Unroll string MMIO for encrypted SEV guests as the hypervisor
           cannot emulate it.
      
         - Handle supervisor states correctly in the FPU/XSTATE code so it
           takes the feature set of the fpstate buffer into account. The
           feature sets can differ between host and guest buffers. Guest
           buffers do not contain supervisor states. So far this was not an
           issue, but with enabling PASID it needs to be handled in the buffer
           offset calculation and in the permission bitmaps.
      
         - Avoid a gazillion of repeated CPUID invocations in by caching the
           values early in the FPU/XSTATE code.
      
         - Enable CONFIG_WERROR in x86 defconfig.
      
         - Make the X86 defconfigs more useful by adapting them to Y2022
           reality"
      
      * tag 'x86-urgent-2022-04-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu/xstate: Consolidate size calculations
        x86/fpu/xstate: Handle supervisor states in XSTATE permissions
        x86/fpu/xsave: Handle compacted offsets correctly with supervisor states
        x86/fpu: Cache xfeature flags from CPUID
        x86/fpu/xsave: Initialize offset/size cache early
        x86/fpu: Remove unused supervisor only offsets
        x86/fpu: Remove redundant XCOMP_BV initialization
        x86/sev: Unroll string mmio with CC_ATTR_GUEST_UNROLL_STRING_IO
        x86/config: Make the x86 defconfigs a bit more usable
        x86/defconfig: Enable WERROR
        selftests/x86/amx: Update the ARCH_REQ_XCOMP_PERM test
        x86/fpu/xstate: Fix the ARCH_REQ_XCOMP_PERM implementation
      8b5656bc
    • Linus Torvalds's avatar
      Merge tag 'core-urgent-2022-04-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e235f419
      Linus Torvalds authored
      Pull RT signal fix from Thomas Gleixner:
       "Revert the RT related signal changes. They need to be reworked and
        generalized"
      
      * tag 'core-urgent-2022-04-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "signal, x86: Delay calling signals in atomic on RT enabled kernels"
      e235f419
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.18-1' of git://git.infradead.org/users/hch/dma-mapping · 63d12cc3
      Linus Torvalds authored
      Pull more dma-mapping updates from Christoph Hellwig:
      
       - fix a regression in dma remap handling vs AMD memory encryption (me)
      
       - finally kill off the legacy PCI DMA API (Christophe JAILLET)
      
      * tag 'dma-mapping-5.18-1' of git://git.infradead.org/users/hch/dma-mapping:
        dma-mapping: move pgprot_decrypted out of dma_pgprot
        PCI/doc: cleanup references to the legacy PCI DMA API
        PCI: Remove the deprecated "pci-dma-compat.h" API
      63d12cc3
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 5dee8721
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
      
       - avoid unnecessary rebuilds for library objects
      
       - fix return value of __setup handlers
      
       - fix invalid input check for "crashkernel=" kernel option
      
       - silence KASAN warnings in unwind_frame
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame()
        ARM: 9190/1: kdump: add invalid input check for 'crashkernel=0'
        ARM: 9187/1: JIVE: fix return value of __setup handler
        ARM: 9189/1: decompressor: fix unneeded rebuilds of library objects
      5dee8721
  4. Apr 03, 2022
    • Stephen Boyd's avatar
      Revert "clk: Drop the rate range on clk_put()" · 859c2c7b
      Stephen Boyd authored
      This reverts commit 7dabfa2b
      
      . There are
      multiple reports that this breaks boot on various systems. The common
      theme is that orphan clks are having rates set on them when that isn't
      expected. Let's revert it out for now so that -rc1 boots.
      
      Reported-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Reported-by: default avatarTony Lindgren <tony@atomide.com>
      Reported-by: default avatarAlexander Stein <alexander.stein@ew.tq-group.com>
      Reported-by: default avatarNaresh Kamboju <naresh.kamboju@linaro.org>
      Link: https://lore.kernel.org/r/366a0232-bb4a-c357-6aa8-636e398e05eb@samsung.com
      Cc: Maxime Ripard <maxime@cerno.tech>
      Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      Link: https://lore.kernel.org/r/20220403022818.39572-1-sboyd@kernel.org
      859c2c7b
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v5.18-2022-04-02' of... · be2d3ece
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v5.18-2022-04-02' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tools updates from Arnaldo Carvalho de Melo:
      
       - Avoid SEGV if core.cpus isn't set in 'perf stat'.
      
       - Stop depending on .git files for building PERF-VERSION-FILE, used in
         'perf --version', fixing some perf tools build scenarios.
      
       - Convert tracepoint.py example to python3.
      
       - Update UAPI header copies from the kernel sources: socket,
         mman-common, msr-index, KVM, i915 and cpufeatures.
      
       - Update copy of libbpf's hashmap.c.
      
       - Directly return instead of using local ret variable in
         evlist__create_syswide_maps(), found by coccinelle.
      
      * tag 'perf-tools-for-v5.18-2022-04-02' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf python: Convert tracepoint.py example to python3
        perf evlist: Directly return instead of using local ret variable
        perf cpumap: More cpu map reuse by merge.
        perf cpumap: Add is_subset function
        perf evlist: Rename cpus to user_requested_cpus
        perf tools: Stop depending on .git files for building PERF-VERSION-FILE
        tools headers cpufeatures: Sync with the kernel sources
        tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
        tools headers UAPI: Sync linux/kvm.h with the kernel sources
        tools kvm headers arm64: Update KVM headers from the kernel sources
        tools arch x86: Sync the msr-index.h copy with the kernel sources
        tools headers UAPI: Sync asm-generic/mman-common.h with the kernel
        perf beauty: Update copy of linux/socket.h with the kernel sources
        perf tools: Update copy of libbpf's hashmap.c
        perf stat: Avoid SEGV if core.cpus isn't set
      be2d3ece
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.18' of... · d897b680
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Fix empty $(PYTHON) expansion.
      
       - Fix UML, which got broken by the attempt to suppress Clang warnings.
      
       - Fix warning message in modpost.
      
      * tag 'kbuild-fixes-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        modpost: restore the warning message for missing symbol versions
        Revert "um: clang: Strip out -mno-global-merge from USER_CFLAGS"
        kbuild: Remove '-mno-global-merge'
        kbuild: fix empty ${PYTHON} in scripts/link-vmlinux.sh
        kconfig: remove stale comment about removed kconfig_print_symbol()
      d897b680
    • Linus Torvalds's avatar
      Merge tag 'mips_5.18_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 0b0fa57a
      Linus Torvalds authored
      Pull MIPS fixes from Thomas Bogendoerfer:
      
       - build fix for gpio
      
       - fix crc32 build problems
      
       - check for failed memory allocations
      
      * tag 'mips_5.18_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: crypto: Fix CRC32 code
        MIPS: rb532: move GPIOD definition into C-files
        MIPS: lantiq: check the return value of kzalloc()
        mips: sgi-ip22: add a check for the return of kzalloc()
      0b0fa57a
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 38904911
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
      
       - Only do MSR filtering for MSRs accessed by rdmsr/wrmsr
      
       - Documentation improvements
      
       - Prevent module exit until all VMs are freed
      
       - PMU Virtualization fixes
      
       - Fix for kvm_irq_delivery_to_apic_fast() NULL-pointer dereferences
      
       - Other miscellaneous bugfixes
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (42 commits)
        KVM: x86: fix sending PV IPI
        KVM: x86/mmu: do compare-and-exchange of gPTE via the user address
        KVM: x86: Remove redundant vm_entry_controls_clearbit() call
        KVM: x86: cleanup enter_rmode()
        KVM: x86: SVM: fix tsc scaling when the host doesn't support it
        kvm: x86: SVM: remove unused defines
        KVM: x86: SVM: move tsc ratio definitions to svm.h
        KVM: x86: SVM: fix avic spec based definitions again
        KVM: MIPS: remove reference to trap&emulate virtualization
        KVM: x86: document limitations of MSR filtering
        KVM: x86: Only do MSR filtering when access MSR by rdmsr/wrmsr
        KVM: x86/emulator: Emulate RDPID only if it is enabled in guest
        KVM: x86/pmu: Fix and isolate TSX-specific performance event logic
        KVM: x86: mmu: trace kvm_mmu_set_spte after the new SPTE was set
        KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
        KVM: x86: Trace all APICv inhibit changes and capture overall status
        KVM: x86: Add wrappers for setting/clearing APICv inhibits
        KVM: x86: Make APICv inhibit reasons an enum and cleanup naming
        KVM: X86: Handle implicit supervisor access with SMAP
        KVM: X86: Rename variable smap to not_smap in permission_fault()
        ...
      38904911
    • Masahiro Yamada's avatar
      modpost: restore the warning message for missing symbol versions · bf5c0c22
      Masahiro Yamada authored
      This log message was accidentally chopped off.
      
      I was wondering why this happened, but checking the ML log, Mark
      precisely followed my suggestion [1].
      
      I just used "..." because I was too lazy to type the sentence fully.
      Sorry for the confusion.
      
      [1]: https://lore.kernel.org/all/CAK7LNAR6bXXk9-ZzZYpTqzFqdYbQsZHmiWspu27rtsFxvfRuVA@mail.gmail.com/
      
      Fixes: 4a679593
      
       ("kbuild: modpost: Explicitly warn about unprototyped symbols")
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Acked-by: default avatarMark Brown <broonie@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      bf5c0c22
    • Linus Torvalds's avatar
      Merge tag 'for-5.18/drivers-2022-04-02' of git://git.kernel.dk/linux-block · 6f34f8c3
      Linus Torvalds authored
      Pull block driver fix from Jens Axboe:
       "Got two reports on nbd spewing warnings on load now, which is a
        regression from a commit that went into your tree yesterday.
      
        Revert the problematic change for now"
      
      * tag 'for-5.18/drivers-2022-04-02' of git://git.kernel.dk/linux-block:
        Revert "nbd: fix possible overflow on 'first_minor' in nbd_dev_add()"
      6f34f8c3
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.18-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 9a212aaf
      Linus Torvalds authored
      Pull pci fix from Bjorn Helgaas:
      
       - Fix Hyper-V "defined but not used" build issue added during merge
         window (YueHaibing)
      
      * tag 'pci-v5.18-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: hv: Remove unused hv_set_msi_entry_from_desc()
      9a212aaf
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v5.18' of... · 02d4f8a3
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Benson Leung:
       "cros_ec_typec:
      
         - Check for EC device - Fix a crash when using the cros_ec_typec
           driver on older hardware not capable of typec commands
      
         - Make try power role optional
      
         - Mux configuration reorganization series from Prashant
      
        cros_ec_debugfs:
      
         - Fix use after free. Thanks Tzung-bi
      
        sensorhub:
      
         - cros_ec_sensorhub fixup - Split trace include file
      
        misc:
      
         - Add new mailing list for chrome-platform development:
      
      	chrome-platform@lists.linux.dev
      
           Now with patchwork!"
      
      * tag 'tag-chrome-platform-for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: cros_ec_debugfs: detach log reader wq from devm
        platform: chrome: Split trace include file
        platform/chrome: cros_ec_typec: Update mux flags during partner removal
        platform/chrome: cros_ec_typec: Configure muxes at start of port update
        platform/chrome: cros_ec_typec: Get mux state inside configure_mux
        platform/chrome: cros_ec_typec: Move mux flag checks
        platform/chrome: cros_ec_typec: Check for EC device
        platform/chrome: cros_ec_typec: Make try power role optional
        MAINTAINERS: platform-chrome: Add new chrome-platform@lists.linux.dev list
      02d4f8a3
    • Jens Axboe's avatar
      Revert "nbd: fix possible overflow on 'first_minor' in nbd_dev_add()" · 7198bfc2
      Jens Axboe authored
      This reverts commit 6d35d04a
      
      .
      
      Both Gabriel and Borislav report that this commit casues a regression
      with nbd:
      
      sysfs: cannot create duplicate filename '/dev/block/43:0'
      
      Revert it before 5.18-rc1 and we'll investigage this separately in
      due time.
      
      Link: https://lore.kernel.org/all/YkiJTnFOt9bTv6A2@zn.tnic/
      Reported-by: default avatarGabriel L. Somlo <somlo@cmu.edu>
      Reported-by: default avatarBorislav Petkov <bp@alien8.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      7198bfc2
    • Eric Dumazet's avatar
      watch_queue: Free the page array when watch_queue is dismantled · b4902070
      Eric Dumazet authored
      Commit 7ea1a012
      
       ("watch_queue: Free the alloc bitmap when the
      watch_queue is torn down") took care of the bitmap, but not the page
      array.
      
        BUG: memory leak
        unreferenced object 0xffff88810d9bc140 (size 32):
        comm "syz-executor335", pid 3603, jiffies 4294946994 (age 12.840s)
        hex dump (first 32 bytes):
          40 a7 40 04 00 ea ff ff 00 00 00 00 00 00 00 00  @.@.............
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        backtrace:
           kmalloc_array include/linux/slab.h:621 [inline]
           kcalloc include/linux/slab.h:652 [inline]
           watch_queue_set_size+0x12f/0x2e0 kernel/watch_queue.c:251
           pipe_ioctl+0x82/0x140 fs/pipe.c:632
           vfs_ioctl fs/ioctl.c:51 [inline]
           __do_sys_ioctl fs/ioctl.c:874 [inline]
           __se_sys_ioctl fs/ioctl.c:860 [inline]
           __x64_sys_ioctl+0xfc/0x140 fs/ioctl.c:860
           do_syscall_x64 arch/x86/entry/common.c:50 [inline]
      
      Reported-by: default avatar <syzbot+25ea042ae28f3888727a@syzkaller.appspotmail.com>
      Fixes: c73be61c
      
       ("pipe: Add general notification queue support")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Jann Horn <jannh@google.com>
      Link: https://lore.kernel.org/r/20220322004654.618274-1-eric.dumazet@gmail.com/
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b4902070
    • Steven Rostedt (Google)'s avatar
      tracing: mark user_events as BROKEN · 1cd927ad
      Steven Rostedt (Google) authored
      
      
      After being merged, user_events become more visible to a wider audience
      that have concerns with the current API.
      
      It is too late to fix this for this release, but instead of a full
      revert, just mark it as BROKEN (which prevents it from being selected in
      make config).  Then we can work finding a better API.  If that fails,
      then it will need to be completely reverted.
      
      To not have the code silently bitrot, still allow building it with
      COMPILE_TEST.
      
      And to prevent the uapi header from being installed, then later changed,
      and then have an old distro user space see the old version, move the
      header file out of the uapi directory.
      
      Surround the include with CONFIG_COMPILE_TEST to the current location,
      but when the BROKEN tag is taken off, it will use the uapi directory,
      and fail to compile.  This is a good way to remind us to move the header
      back.
      
      Link: https://lore.kernel.org/all/20220330155835.5e1f6669@gandalf.local.home
      Link: https://lkml.kernel.org/r/20220330201755.29319-1-mathieu.desnoyers@efficios.com
      Suggested-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1cd927ad
  5. Apr 02, 2022