1. 20 May, 2022 1 commit
    • Kan Liang's avatar
      perf evsel: Fixes topdown events in a weak group for the hybrid platform · 39d5f412
      Kan Liang authored
      The patch ("perf evlist: Keep topdown counters in weak group") fixes the
      perf metrics topdown event issue when the topdown events are in a weak
      group on a non-hybrid platform. However, it doesn't work for the hybrid
      platform.
      
        $./perf stat -e '{cpu_core/slots/,cpu_core/topdown-bad-spec/,
        cpu_core/topdown-be-bound/,cpu_core/topdown-fe-bound/,
        cpu_core/topdown-retiring/,cpu_core/branch-instructions/,
        cpu_core/branch-misses/,cpu_core/bus-cycles/,cpu_core/cache-misses/,
        cpu_core/cache-references/,cpu_core/cpu-cycles/,cpu_core/instructions/,
        cpu_core/mem-loads/,cpu_core/mem-stores/,cpu_core/ref-cycles/,
        cpu_core/cache-misses/,cpu_core/cache-references/}:W' -a sleep 1
      
        Performance counter stats for 'system wide':
      
             751,765,068      cpu_core/slots/                        (84.07%)
         <not supported>      cpu_core/topdown-bad-spec/
         <not supported>      cpu_core/topdown-be-bound/
         <not supported>      cpu_core/topdown-fe-bound/
         <not supported>      cpu_core/topdown-retiring/
              12,398,197      cpu_core/branch-instructions/          (84.07%)
               1,054,218      cpu_core/branch-misses/                (84.24%)
             539,764,637      cpu_core/bus-cycles/                   (84.64%)
                  14,683      cpu_core/cache-misses/                 (84.87%)
               7,277,809      cpu_core/cache-references/             (77.30%)
             222,299,439      cpu_core/cpu-cycles/                   (77.28%)
              63,661,714      cpu_core/instructions/                 (84.85%)
                       0      cpu_core/mem-loads/                    (77.29%)
              12,271,725      cpu_core/mem-stores/                   (77.30%)
             542,241,102      cpu_core/ref-cycles/                   (84.85%)
                   8,854      cpu_core/cache-misses/                 (76.71%)
               7,179,013      cpu_core/cache-references/             (76.31%)
      
               1.003245250 seconds time elapsed
      
      A hybrid platform has a different PMU name for the core PMUs, while
      the current perf hard code the PMU name "cpu".
      
      The evsel->pmu_name can be used to replace the "cpu" to fix the issue.
      For a hybrid platform, the pmu_name must be non-NULL. Because there are
      at least two core PMUs. The PMU has to be specified.
      For a non-hybrid platform, the pmu_name may be NULL. Because there is
      only one core PMU, "cpu". For a NULL pmu_name, we can safely assume that
      it is a "cpu" PMU.
      
      In case other PMUs also define the "slots" event, checking the PMU type
      as well.
      
      With the patch,
      
        $ perf stat -e '{cpu_core/slots/,cpu_core/topdown-bad-spec/,
        cpu_core/topdown-be-bound/,cpu_core/topdown-fe-bound/,
        cpu_core/topdown-retiring/,cpu_core/branch-instructions/,
        cpu_core/branch-misses/,cpu_core/bus-cycles/,cpu_core/cache-misses/,
        cpu_core/cache-references/,cpu_core/cpu-cycles/,cpu_core/instructions/,
        cpu_core/mem-loads/,cpu_core/mem-stores/,cpu_core/ref-cycles/,
        cpu_core/cache-misses/,cpu_core/cache-references/}:W' -a sleep 1
      
        Performance counter stats for 'system wide':
      
           766,620,266   cpu_core/slots/                                        (84.06%)
            73,172,129   cpu_core/topdown-bad-spec/ #    9.5% bad speculation   (84.06%)
           193,443,341   cpu_core/topdown-be-bound/ #    25.0% backend bound    (84.06%)
           403,940,929   cpu_core/topdown-fe-bound/ #    52.3% frontend bound   (84.06%)
           102,070,237   cpu_core/topdown-retiring/ #    13.2% retiring         (84.06%)
            12,364,429   cpu_core/branch-instructions/                          (84.03%)
             1,080,124   cpu_core/branch-misses/                                (84.24%)
           564,120,383   cpu_core/bus-cycles/                                   (84.65%)
                36,979   cpu_core/cache-misses/                                 (84.86%)
             7,298,094   cpu_core/cache-references/                             (77.30%)
           227,174,372   cpu_core/cpu-cycles/                                   (77.31%)
            63,886,523   cpu_core/instructions/                                 (84.87%)
                     0   cpu_core/mem-loads/                                    (77.31%)
            12,208,782   cpu_core/mem-stores/                                   (77.31%)
           566,409,738   cpu_core/ref-cycles/                                   (84.87%)
                23,118   cpu_core/cache-misses/                                 (76.71%)
             7,212,602   cpu_core/cache-references/                             (76.29%)
      
             1.003228667 seconds time elapsed
      Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Link: https://lore.kernel.org/r/20220518143900.1493980-2-kan.liang@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      39d5f412
  2. 17 May, 2022 6 commits
    • Ian Rogers's avatar
      perf test: Add basic stat and topdown group test · 6a973e29
      Ian Rogers authored
      Add a basic stat test.
      
      Add two tests of grouping behavior for topdown events. Topdown events
      are special as they must be grouped with the slots event first.
      Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Florian Fischer <florian.fischer@muhq.space>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kim Phillips <kim.phillips@amd.com>
      Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Link: https://lore.kernel.org/r/20220517052724.283874-3-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      6a973e29
    • Ian Rogers's avatar
      perf evlist: Keep topdown counters in weak group · d98079c0
      Ian Rogers authored
      On Intel Icelake, topdown events must always be grouped with a slots
      event as leader. When a metric is parsed a weak group is formed and
      retried if perf_event_open fails. The retried events aren't grouped
      breaking the slots leader requirement. This change modifies the weak
      group "reset" behavior so that topdown events aren't broken from the
      group for the retry.
      
        $ perf stat -e '{slots,topdown-bad-spec,topdown-be-bound,topdown-fe-bound,topdown-retiring,branch-instructions,branch-misses,bus-cycles,cache-misses,cache-references,cpu-cycles,instructions,mem-loads,mem-stores,ref-cycles,baclears.any,ARITH.DIVIDER_ACTIVE}:W' -a sleep 1
      
         Performance counter stats for 'system wide':
      
          47,867,188,483      slots                                                         (92.27%)
         <not supported>      topdown-bad-spec
         <not supported>      topdown-be-bound
         <not supported>      topdown-fe-bound
         <not supported>      topdown-retiring
           2,173,346,937      branch-instructions                                           (92.27%)
              10,540,253      branch-misses             #    0.48% of all branches          (92.29%)
              96,291,140      bus-cycles                                                    (92.29%)
               6,214,202      cache-misses              #   20.120 % of all cache refs      (92.29%)
              30,886,082      cache-references                                              (76.91%)
          11,773,726,641      cpu-cycles                                                    (84.62%)
          11,807,585,307      instructions              #    1.00  insn per cycle           (92.31%)
                       0      mem-loads                                                     (92.32%)
           2,212,928,573      mem-stores                                                    (84.69%)
          10,024,403,118      ref-cycles                                                    (92.35%)
              16,232,978      baclears.any                                                  (92.35%)
              23,832,633      ARITH.DIVIDER_ACTIVE                                          (84.59%)
      
             0.981070734 seconds time elapsed
      
      After:
      
        $ perf stat -e '{slots,topdown-bad-spec,topdown-be-bound,topdown-fe-bound,topdown-retiring,branch-instructions,branch-misses,bus-cycles,cache-misses,cache-references,cpu-cycles,instructions,mem-loads,mem-stores,ref-cycles,baclears.any,ARITH.DIVIDER_ACTIVE}:W' -a sleep 1
      
         Performance counter stats for 'system wide':
      
             31040189283      slots                                                         (92.27%)
              8997514811      topdown-bad-spec          #     28.2% bad speculation         (92.27%)
             10997536028      topdown-be-bound          #     34.5% backend bound           (92.27%)
              4778060526      topdown-fe-bound          #     15.0% frontend bound          (92.27%)
              7086628768      topdown-retiring          #     22.2% retiring                (92.27%)
              1417611942      branch-instructions                                           (92.26%)
                 5285529      branch-misses             #    0.37% of all branches          (92.28%)
                62922469      bus-cycles                                                    (92.29%)
                 1440708      cache-misses              #    8.292 % of all cache refs      (92.30%)
                17374098      cache-references                                              (76.94%)
              8040889520      cpu-cycles                                                    (84.63%)
              7709992319      instructions              #    0.96  insn per cycle           (92.32%)
                       0      mem-loads                                                     (92.32%)
              1515669558      mem-stores                                                    (84.68%)
              6542411177      ref-cycles                                                    (92.35%)
                 4154149      baclears.any                                                  (92.35%)
                20556152      ARITH.DIVIDER_ACTIVE                                          (84.59%)
      
             1.010799593 seconds time elapsed
      Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Florian Fischer <florian.fischer@muhq.space>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Kim Phillips <kim.phillips@amd.com>
      Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Link: https://lore.kernel.org/r/20220517052724.283874-2-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      d98079c0
    • Adrian Hunter's avatar
      perf scripts python: intel-pt-events.py: Print ptwrite value as a string if it is ASCII · 75659c6f
      Adrian Hunter authored
      It can be convenient to put a string value into a ptwrite payload as
      a quick and easy way to identify what is being printed.
      
      To make that useful, if the Intel ptwrite payload value contains only
      printable ASCII characters padded with NULLs, then print it also as a
      string.
      
      Using the example program from the "Emulated PTWRITE" section of
      tools/perf/Documentation/perf-intel-pt.txt:
      
       $ echo -n "Hello" | od -t x8
       0000000 0000006f6c6c6548
       0000005
       $ perf record -e intel_pt//u ./eg_ptw 0x0000006f6c6c6548
       [ perf record: Woken up 1 times to write data ]
       [ perf record: Captured and wrote 0.016 MB perf.data ]
       $ perf script --itrace=ew intel-pt-events.py
       Intel PT Branch Trace, Power Events, Event Trace and PTWRITE
            Switch In   38524/38524 [001]     24166.044995916     0/0
                 eg_ptw 38524/38524 [001]     24166.045380004   ptwrite  jmp                   IP: 0 payload: 0x6f6c6c6548 Hello     56532c7ce196 perf_emulate_ptwrite+0x16 (/home/ahunter/git/work/eg_ptw)
       End
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: https://lore.kernel.org/r/20220509152400.376613-4-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      75659c6f
    • Adrian Hunter's avatar
      perf script: Print Intel ptwrite value as a string if it is ASCII · a5014310
      Adrian Hunter authored
      It can be convenient to put a string value into a ptwrite payload as
      a quick and easy way to identify what is being printed.
      
      To make that useful, if the Intel ptwrite payload value contains only
      printable ASCII characters padded with NULLs, then print it also as a
      string.
      
      Using the example program from the "Emulated PTWRITE" section of
      tools/perf/Documentation/perf-intel-pt.txt:
      
       $ echo -n "Hello" | od -t x8
       0000000 0000006f6c6c6548
       0000005
       $ perf record -e intel_pt//u ./eg_ptw 0x0000006f6c6c6548
       [ perf record: Woken up 1 times to write data ]
       [ perf record: Captured and wrote 0.016 MB perf.data ]
       $ perf script --itrace=ew
                 eg_ptw 35563 [005] 18256.087338:     ptwrite:  IP: 0 payload: 0x6f6c6c6548 Hello      55e764db5196 perf_emulate_ptwrite+0x16 (/home/user/eg_ptw)
       $
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: https://lore.kernel.org/r/20220509152400.376613-3-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      a5014310
    • Adrian Hunter's avatar
      perf intel-pt: Add support for emulated ptwrite · d7015e50
      Adrian Hunter authored
      ptwrite is an Intel x86 instruction that writes arbitrary values into an
      Intel PT trace. It is not supported on all hardware, so provide an
      alternative that makes use of TNT packets to convey the payload data.
      TNT packets encode Taken/Not-taken conditional branch information, so
      taking branches based on the payload value will encode the value into
      the TNT packet. Refer to the changes to the documentation file
      perf-intel-pt.txt in this patch for an example.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: https://lore.kernel.org/r/20220509152400.376613-2-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      d7015e50
    • Arnaldo Carvalho de Melo's avatar
      perf bench breakpoint: Fix build on 32-bit arches · df36d257
      Arnaldo Carvalho de Melo authored
      Cast pointers to unsigned long instead of to uint64_t to avoid this
      problem on 32-bit arches:
      
        31     6.89 debian:experimental-x-mips    : FAIL gcc version 11.2.0 (Debian 11.2.0-18)
          bench/breakpoint.c: In function 'breakpoint_setup':
          bench/breakpoint.c:56:24: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
             56 |         attr.bp_addr = (uint64_t)addr;
                |                        ^
          cc1: all warnings being treated as errors
          make[3]: *** [/git/perf-5.18.0-rc7/tools/build/Makefile.build:139: bench] Error 2
      
      Fixes: 68a6772f ("perf bench: Add breakpoint benchmarks")
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Dmitriy Vyukov <dvyukov@google.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Marco Elver <elver@google.com>
      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/YoLq1nHx1doi+VWl@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      df36d257
  3. 16 May, 2022 2 commits
  4. 15 May, 2022 8 commits
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.18-rc7' of... · 0cdd776e
      Linus Torvalds authored
      Merge tag 'driver-core-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core fixes from Greg KH:
       "Here is one fix, and three documentation updates for 5.18-rc7.
      
        The fix is for the firmware loader which resolves a long-reported
        problem where the credentials of the firmware loader could be set to a
        userspace process without enough permissions to actually load the
        firmware image. Many Android vendors have been reporting this for
        quite some time.
      
        The documentation updates are for the embargoed-hardware-issues.rst
        file to add a new entry, change an existing one, and sort the list to
        make changes easier in the future.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        Documentation/process: Update ARM contact for embargoed hardware issues
        Documentation/process: Add embargoed HW contact for Ampere Computing
        Documentation/process: Make groups alphabetical and use tabs consistently
        firmware_loader: use kernel credentials when reading firmware
      0cdd776e
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 5becde60
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are two small driver fixes for 5.18-rc7 that resolve reported
        problems:
      
         - slimbus driver irq bugfix
      
         - interconnect sync state bugfix
      
        Both of these have been in linux-next with no reported problems"
      
      * tag 'char-misc-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        slimbus: qcom: Fix IRQ check in qcom_slim_probe
        interconnect: Restore sync state by ignoring ipa-virt in provider count
      5becde60
    • Linus Torvalds's avatar
      Merge tag 'tty-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 6811a466
      Linus Torvalds authored
      Pull tty/serial driver fixes from Greg KH:
       "Here are some small tty n_gsm and serial driver fixes for 5.18-rc7
        that resolve reported problems. They include:
      
         - n_gsm fixes for reported issues
      
         - 8250_mtk driver fixes for some platforms
      
         - fsl_lpuart driver fix for reported problem.
      
         - digicolor driver fix for reported problem.
      
        All have been in linux-next for a while with no reported problems"
      
      * tag 'tty-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        fsl_lpuart: Don't enable interrupts too early
        tty: n_gsm: fix invalid gsmtty_write_room() result
        tty: n_gsm: fix mux activation issues in gsm_config()
        tty: n_gsm: fix buffer over-read in gsm_dlci_data()
        serial: 8250_mtk: Fix register address for XON/XOFF character
        serial: 8250_mtk: Make sure to select the right FEATURE_SEL
        serial: 8250_mtk: Fix UART_EFR register address
        tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
      6811a466
    • Linus Torvalds's avatar
      Merge tag 'usb-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · fc49583c
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some small fixes for reported issues with some USB drivers.
        They include:
      
         - xhci fixes for xhci-mtk platform driver
      
         - typec driver fixes for reported problems.
      
         - cdc-wdm read-stuck fix
      
         - gadget driver fix for reported race condition
      
         - new usb-serial driver ids
      
        All of these have been in linux-next with no reported problems"
      
      * tag 'usb-5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: xhci-mtk: remove bandwidth budget table
        usb: xhci-mtk: fix fs isoc's transfer error
        usb: gadget: fix race when gadget driver register via ioctl
        usb: typec: tcpci_mt6360: Update for BMC PHY setting
        usb: gadget: uvc: allow for application to cleanly shutdown
        usb: typec: tcpci: Don't skip cleanup in .remove() on error
        usb: cdc-wdm: fix reading stuck on device close
        USB: serial: qcserial: add support for Sierra Wireless EM7590
        USB: serial: option: add Fibocom MA510 modem
        USB: serial: option: add Fibocom L610 modem
        USB: serial: pl2303: add device id for HP LM930 Display
      fc49583c
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.18-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · bc403203
      Linus Torvalds authored
      Pull powerpc fix from Michael Ellerman:
      
       - Fix KVM PR on 32-bit, which was broken by some MMU code refactoring.
      
      Thanks to: Alexander Graf, and Matt Evans.
      
      * tag 'powerpc-5.18-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        KVM: PPC: Book3S PR: Enable MSR_DR for switch_mmu_context()
      bc403203
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 79dc4fc2
      Linus Torvalds authored
      Pull x86 fix from Thomas Gleixner:
       "A single fix for the handling of unpopulated sub-pmd spaces.
      
        The copy & pasta from the corresponding s390 code screwed up the
        address calculation for marking the sub-pmd ranges via memset by
        omitting the ALIGN_DOWN() to calculate the proper start address.
      
        It's a mystery why this code is not generic and shared because there
        is nothing architecture specific in there, but that's too intrusive
        for a backportable fix"
      
      * tag 'x86-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Fix marking of unused sub-pmd ranges
      79dc4fc2
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 990e798d
      Linus Torvalds authored
      Pull scheduler fix from Thomas Gleixner:
       "The recent expansion of the sched switch tracepoint inserted a new
        argument in the middle of the arguments. This reordering broke BPF
        programs which relied on the old argument list.
      
        While tracepoints are not considered stable ABI, it's not trivial to
        make BPF cope with such a change, but it's being worked on. For now
        restore the original argument order and move the new argument to the
        end of the argument list"
      
      * tag 'sched-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/tracing: Append prev_state to tp args instead
      990e798d
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fb756280
      Linus Torvalds authored
      Pull irq fix from Thomas Gleixner:
       "A single fix for a recent (introduced in 5.16) regression in the core
        interrupt code.
      
        The consolidation of the interrupt handler invocation code added an
        unconditional warning when generic_handle_domain_irq() is invoked from
        outside hard interrupt context. That's overbroad as the requirement
        for invoking these handlers in hard interrupt context is only required
        for certain interrupt types. The subsequently called code already
        contains a warning which triggers conditionally for interrupt chips
        which indicate this requirement in their properties.
      
        Remove the overbroad one"
      
      * tag 'irq-urgent-2022-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Remove WARN_ON_ONCE() in generic_handle_domain_irq()
      fb756280
  5. 14 May, 2022 1 commit
  6. 13 May, 2022 22 commits
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-05-14' of git://anongit.freedesktop.org/drm/drm · ec7f4961
      Linus Torvalds authored
      Pull more drm fixes from Dave Airlie:
       "Turns out I was right, some fixes hadn't made it to me yet. The vmwgfx
        ones also popped up later, but all seem like bad enough things to fix.
        The dma-buf, vc4 and nouveau ones are all pretty small.
      
        The fbdev fixes are a bit more complicated: a fix to cleanup fbdev
        devices properly, uncovered some use-after-free bugs in existing
        drivers. Then the fix for those bugs wasn't correct. This reverts that
        fix, and puts the proper fixes in place in the drivers to avoid the
        use-after-frees.
      
        This has had a fair number of eyes on it at this stage, and I'm
        confident enough that it puts things in the right place, and is less
        dangerous than reverting our way out of the initial change at this
        stage.
      
        fbdev:
         - revert NULL deref fix that turned into a use-after-free
         - prevent use-after-free in fbdev
         - efifb/simplefb/vesafb: fix cleanup paths to avoid use-after-frees
      
        dma-buf:
         - fix panic in stats setup
      
        vc4:
         - fix hdmi build
      
        nouveau:
         - tegra iommu present fix
         - fix leak in backlight name
      
        vmwgfx:
         - Black screen due to fences using FIFO checks on SVGA3
         - Random black screens on boot due to uninitialized drm_mode_fb_cmd2
         - Hangs on SVGA3 due to command buffers being used with gbobjects"
      
      * tag 'drm-fixes-2022-05-14' of git://anongit.freedesktop.org/drm/drm:
        drm/vmwgfx: Disable command buffers on svga3 without gbobjects
        drm/vmwgfx: Initialize drm_mode_fb_cmd2
        drm/vmwgfx: Fix fencing on SVGAv3
        drm/vc4: hdmi: Fix build error for implicit function declaration
        dma-buf: call dma_buf_stats_setup after dmabuf is in valid list
        fbdev: efifb: Fix a use-after-free due early fb_info cleanup
        drm/nouveau: Fix a potential theorical leak in nouveau_get_backlight_name()
        drm/nouveau/tegra: Stop using iommu_present()
        fbdev: vesafb: Cleanup fb_info in .fb_destroy rather than .remove
        fbdev: efifb: Cleanup fb_info in .fb_destroy rather than .remove
        fbdev: simplefb: Cleanup fb_info in .fb_destroy rather than .remove
        fbdev: Prevent possible use-after-free in fb_release()
        Revert "fbdev: Make fb_release() return -ENODEV if fbdev was unregistered"
      ec7f4961
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2022-05-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · eb7bac39
      Dave Airlie authored
      Multiple fixes to fbdev to address a regression at unregistration, an
      iommu detection improvement for nouveau, a memory leak fix for nouveau,
      pointer dereference fix for dma_buf_file_release(), and a build breakage
      fix for vc4
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <maxime@cerno.tech>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220513073044.ymayac7x7bzatrt7@houat
      eb7bac39
    • Dave Airlie's avatar
      Merge tag 'vmwgfx-drm-fixes-5.18-2022-05-13' of... · 30c60ba3
      Dave Airlie authored
      Merge tag 'vmwgfx-drm-fixes-5.18-2022-05-13' of https://gitlab.freedesktop.org/zack/vmwgfx into drm-fixes
      
      vmwgfx fixes for:
      - Black screen due to fences using FIFO checks on SVGA3
      - Random black screens on boot due to uninitialized drm_mode_fb_cmd2
      - Hangs on SVGA3 due to command buffers being used with gbobjects
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Zack Rusin <zackr@vmware.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/a1d32799e4c74b8540216376d7576bb783ca07ba.camel@vmware.com
      30c60ba3
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v5.18-rc4-fix3' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · d928e8f3
      Linus Torvalds authored
      Pull gfs2 fixes from Andreas Gruenbacher:
       "We've finally identified commit dc732906 ("gfs2: Introduce flag
        for glock holder auto-demotion") to be the other cause of the
        filesystem corruption we've been seeing. This feature isn't strictly
        necessary anymore, so we've decided to stop using it for now.
      
        With this and the gfs_iomap_end rounding fix you've already seen
        ("gfs2: Fix filesystem block deallocation for short writes" in this
        pull request), we're corruption free again now.
      
         - Fix filesystem block deallocation for short writes.
      
         - Stop using glock holder auto-demotion for now.
      
         - Get rid of buffered writes inefficiencies due to page faults being
           disabled.
      
         - Minor other cleanups"
      
      * tag 'gfs2-v5.18-rc4-fix3' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Stop using glock holder auto-demotion for now
        gfs2: buffered write prefaulting
        gfs2: Align read and write chunks to the page cache
        gfs2: Pull return value test out of should_fault_in_pages
        gfs2: Clean up use of fault_in_iov_iter_{read,write}able
        gfs2: Variable rename
        gfs2: Fix filesystem block deallocation for short writes
      d928e8f3
    • Andreas Gruenbacher's avatar
      gfs2: Stop using glock holder auto-demotion for now · e1fa9ea8
      Andreas Gruenbacher authored
      We're having unresolved issues with the glock holder auto-demotion mechanism
      introduced in commit dc732906.  This mechanism was assumed to be essential
      for avoiding frequent short reads and writes until commit 296abc0d
      ("gfs2: No short reads or writes upon glock contention").  Since then,
      when the inode glock is lost, it is simply re-acquired and the operation
      is resumed.  This means that apart from the performance penalty, we
      might as well drop the inode glock before faulting in pages, and
      re-acquire it afterwards.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      e1fa9ea8
    • Andreas Gruenbacher's avatar
      gfs2: buffered write prefaulting · fa5dfa64
      Andreas Gruenbacher authored
      In gfs2_file_buffered_write, to increase the likelihood that all the
      user memory we're trying to write will be resident in memory, carry out
      the write in chunks and fault in each chunk of user memory before trying
      to write it.  Otherwise, some workloads will trigger frequent short
      "internal" writes, causing filesystem blocks to be allocated and then
      partially deallocated again when writing into holes, which is wasteful
      and breaks reservations.
      
      Neither the chunked writes nor any of the short "internal" writes are
      user visible.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      fa5dfa64
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · f2dd0074
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Four fixes, all in drivers.
      
        These patches mosly fix error legs and exceptional conditions
        (scsi_dh_alua, qla2xxx). The lpfc fixes are for coding issues with
        lpfc features"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: lpfc: Correct BDE DMA address assignment for GEN_REQ_WQE
        scsi: lpfc: Fix split code for FLOGI on FCoE
        scsi: qla2xxx: Fix missed DMA unmap for aborted commands
        scsi: scsi_dh_alua: Properly handle the ALUA transitioning state
      f2dd0074
    • Andreas Gruenbacher's avatar
      gfs2: Align read and write chunks to the page cache · 324d116c
      Andreas Gruenbacher authored
      Align the chunks that reads and writes are carried out in to the page
      cache rather than the user buffers.  This will be more efficient in
      general, especially for allocating writes.  Optimizing the case that the
      user buffer is gfs2 backed isn't very useful; we only need to make sure
      we won't deadlock.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      324d116c
    • Andreas Gruenbacher's avatar
      gfs2: Pull return value test out of should_fault_in_pages · 72382264
      Andreas Gruenbacher authored
      Pull the return value test of the previous read or write operation out
      of should_fault_in_pages().  In a following patch, we'll fault in pages
      before the I/O and there will be no return value to check.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      72382264
    • Andreas Gruenbacher's avatar
      gfs2: Clean up use of fault_in_iov_iter_{read,write}able · 6d22ff47
      Andreas Gruenbacher authored
      No need to store the return value of the fault_in functions in separate
      variables.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      6d22ff47
    • Andreas Gruenbacher's avatar
      gfs2: Variable rename · 42e4c3bd
      Andreas Gruenbacher authored
      Instead of counting the number of bytes read from the filesystem,
      functions gfs2_file_direct_read and gfs2_file_read_iter count the number
      of bytes written into the user buffer.  Conversely, functions
      gfs2_file_direct_write and gfs2_file_buffered_write count the number of
      bytes read from the user buffer.  This is nothing but confusing, so
      change the read functions to count how many bytes they have read, and
      the write functions to count how many bytes they have written.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      42e4c3bd
    • Andreas Gruenbacher's avatar
      gfs2: Fix filesystem block deallocation for short writes · d031a886
      Andreas Gruenbacher authored
      When a write cannot be carried out in full, gfs2_iomap_end() releases
      blocks that have been allocated for this write but haven't been used.
      
      To compute the end of the allocation, gfs2_iomap_end() incorrectly
      rounded the end of the attempted write down to the next block boundary
      to arrive at the end of the allocation.  It would have to round up, but
      the end of the allocation is also available as iomap->offset +
      iomap->length, so just use that instead.
      
      In addition, use round_up() for computing the start of the unused range.
      
      Fixes: 64bc06bb ("gfs2: iomap buffered write support")
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      d031a886
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.18-rc7' of https://github.com/ceph/ceph-client · c3f5e692
      Linus Torvalds authored
      Pull ceph fix from Ilya Dryomov:
       "Two fixes to properly maintain xattrs on async creates and thus
        preserve SELinux context on newly created files and to avoid improper
        usage of folio->private field which triggered BUG_ONs.
      
        Both marked for stable"
      
      * tag 'ceph-for-5.18-rc7' of https://github.com/ceph/ceph-client:
        ceph: check folio PG_private bit instead of folio->private
        ceph: fix setting of xattrs on async created inodes
      c3f5e692
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-5.18-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 6dd5884d
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "One more pull request. There was a bug in the fix to ensure that gss-
        proxy continues to work correctly after we fixed the AF_LOCAL socket
        leak in the RPC code. This therefore reverts that broken patch, and
        replaces it with one that works correctly.
      
        Stable fixes:
      
         - SUNRPC: Ensure that the gssproxy client can start in a connected
           state
      
        Bugfixes:
      
         - Revert "SUNRPC: Ensure gss-proxy connects on setup"
      
         - nfs: fix broken handling of the softreval mount option"
      
      * tag 'nfs-for-5.18-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        nfs: fix broken handling of the softreval mount option
        SUNRPC: Ensure that the gssproxy client can start in a connected state
        Revert "SUNRPC: Ensure gss-proxy connects on setup"
      6dd5884d
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2022-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 364a453a
      Linus Torvalds authored
      Pull misc fixes from Andrew Morton:
       "Seven MM fixes, three of which address issues added in the most recent
        merge window, four of which are cc:stable.
      
        Three non-MM fixes, none very serious"
      
      [ And yes, that's a real pull request from Andrew, not me creating a
        branch from emailed patches. Woo-hoo! ]
      
      * tag 'mm-hotfixes-stable-2022-05-11' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        MAINTAINERS: add a mailing list for DAMON development
        selftests: vm: Makefile: rename TARGETS to VMTARGETS
        mm/kfence: reset PG_slab and memcg_data before freeing __kfence_pool
        mailmap: add entry for martyna.szapar-mudlaw@intel.com
        arm[64]/memremap: don't abuse pfn_valid() to ensure presence of linear map
        procfs: prevent unprivileged processes accessing fdinfo dir
        mm: mremap: fix sign for EFAULT error return value
        mm/hwpoison: use pr_err() instead of dump_page() in get_any_page()
        mm/huge_memory: do not overkill when splitting huge_zero_page
        Revert "mm/memory-failure.c: skip huge_zero_page in memory_failure()"
      364a453a
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 91bdba85
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
      
       - TLB invalidation workaround for Qualcomm Kryo-4xx "gold" CPUs
      
       - Fix broken dependency in the vDSO Makefile
      
       - Fix pointer authentication overrides in ISAR2 ID register
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Enable repeat tlbi workaround on KRYO4XX gold CPUs
        arm64: cpufeature: remove duplicate ID_AA64ISAR2_EL1 entry
        arm64: vdso: fix makefile dependency on vdso.so
      91bdba85
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.18-rc7' of... · 359ee4f4
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - Restrict ltq-cputemp to SOC_XWAY to fix build failure
      
       - Add OF device ID table to tmp401 driver to enable auto-load
      
      * tag 'hwmon-for-v5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (ltq-cputemp) restrict it to SOC_XWAY
        hwmon: (tmp401) Add OF device ID table
      359ee4f4
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-05-13' of git://anongit.freedesktop.org/drm/drm · 10b4b67a
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Pretty quiet week on the fixes front, 4 amdgpu and one i915 fix.
      
        I think there might be a few misc fbdev ones outstanding, but I'll see
        if they are necessary and pass them on if so.
      
        amdgpu:
      
         - Disable ASPM for VI boards on ADL platforms
      
         - S0ix DCN3.1 display fix
      
         - Resume regression fix
      
         - Stable pstate fix
      
        i915:
      
         - fix for kernel memory corruption when running a lot of OpenCL tests
           in parallel"
      
      * tag 'drm-fixes-2022-05-13' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu/ctx: only reset stable pstate if the user changed it (v2)
        Revert "drm/amd/pm: keep the BACO feature enabled for suspend"
        drm/i915: Fix race in __i915_vma_remove_closed
        drm/amd/display: undo clearing of z10 related function pointers
        drm/amdgpu: vi: disable ASPM on Intel Alder Lake based systems
      10b4b67a
    • Zack Rusin's avatar
      drm/vmwgfx: Disable command buffers on svga3 without gbobjects · 21d1d192
      Zack Rusin authored
      With very limited vram on svga3 it's difficult to handle all the surface
      migrations. Without gbobjects, i.e. the ability to store surfaces in
      guest mobs, there's no reason to support intermediate svga2 features,
      especially because we can fall back to fb traces and svga3 will never
      support those in-between features.
      
      On svga3 we wither want to use fb traces or screen targets
      (i.e. gbobjects), nothing in between. This fixes presentation on a lot
      of fusion/esxi tech previews where the exposed svga3 caps haven't been
      finalized yet.
      Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
      Fixes: 2cd80dbd ("drm/vmwgfx: Add basic support for SVGA3")
      Cc: <stable@vger.kernel.org> # v5.14+
      Reviewed-by: default avatarMartin Krastev <krastevm@vmware.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220318174332.440068-5-zack@kde.org
      21d1d192
    • Zack Rusin's avatar
      drm/vmwgfx: Initialize drm_mode_fb_cmd2 · 3059d9b9
      Zack Rusin authored
      Transition to drm_mode_fb_cmd2 from drm_mode_fb_cmd left the structure
      unitialized. drm_mode_fb_cmd2 adds a few additional members, e.g. flags
      and modifiers which were never initialized. Garbage in those members
      can cause random failures during the bringup of the fbcon.
      
      Initializing the structure fixes random blank screens after bootup due
      to flags/modifiers mismatches during the fbcon bring up.
      
      Fixes: dabdcdc9 ("drm/vmwgfx: Switch to mode_cmd2")
      Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: <stable@vger.kernel.org> # v4.10+
      Reviewed-by: default avatarMartin Krastev <krastevm@vmware.com>
      Reviewed-by: default avatarMaaz Mombasawala <mombasawalam@vmware.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220302152426.885214-7-zack@kde.org
      3059d9b9
    • Zack Rusin's avatar
      drm/vmwgfx: Fix fencing on SVGAv3 · 1d6595b4
      Zack Rusin authored
      Port of the vmwgfx to SVGAv3 lacked support for fencing. SVGAv3 removed
      FIFO's and replaced them with command buffers and extra registers.
      The initial version of SVGAv3 lacked support for most advanced features
      (e.g. 3D) which made fences unnecessary. That is no longer the case,
      especially as 3D support is being turned on.
      
      Switch from FIFO commands and capabilities to command buffers and extra
      registers to enable fences on SVGAv3.
      
      Fixes: 2cd80dbd ("drm/vmwgfx: Add basic support for SVGA3")
      Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
      Reviewed-by: default avatarMartin Krastev <krastevm@vmware.com>
      Reviewed-by: default avatarMaaz Mombasawala <mombasawalam@vmware.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220302152426.885214-5-zack@kde.org
      1d6595b4
    • Greg Kroah-Hartman's avatar
      Merge tag 'icc-5.18-rc6' of... · d83ea024
      Greg Kroah-Hartman authored
      Merge tag 'icc-5.18-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-linus
      
      Pull interconnect fixes from Georgi:
       "interconnect fixes for v5.18-rc
      
        This contains an additional fix for sc7180 and sdx55 platforms that helps
        them to enter suspend even on devices that don't have the most recent DT
        changes.
      
        - interconnect: Restore sync state by ignoring ipa-virt in provider count
      
        Signed-off-by: Georgi Djakov <djakov@kernel.org>"
      
      * tag 'icc-5.18-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc:
        interconnect: Restore sync state by ignoring ipa-virt in provider count
      d83ea024