1. 27 Apr, 2024 7 commits
    • Ian Rogers's avatar
      perf pmu: Refactor perf_pmu__match() · f91fa2ae
      Ian Rogers authored
      Move all implementation to pmu code. Don't allocate a fnmatch wildcard
      pattern, matching ignoring the suffix already handles this, and only
      use fnmatch if the given PMU name has a '*' in it.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Tested-by: default avatarAtish Patra <atishp@rivosinc.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Beeman Strong <beeman@rivosinc.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.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>
      Link: https://lore.kernel.org/r/20240416061533.921723-5-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f91fa2ae
    • Ian Rogers's avatar
      perf parse-events: Avoid copying an empty list · 90b2c210
      Ian Rogers authored
      In parse_events_add_pmu, delay copying the list of terms until it is
      known the list contains terms.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Tested-by: default avatarAtish Patra <atishp@rivosinc.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Beeman Strong <beeman@rivosinc.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.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>
      Link: https://lore.kernel.org/r/20240416061533.921723-4-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      90b2c210
    • Ian Rogers's avatar
      perf parse-events: Directly pass PMU to parse_events_add_pmu() · 63dfcde9
      Ian Rogers authored
      Avoid passing the name of a PMU then finding it again, just directly
      pass the PMU. parse_events_multi_pmu_add_or_add_pmu() is the only version
      that needs to find a PMU, so move the find there. Remove the error
      message as parse_events_multi_pmu_add_or_add_pmu will given an error at
      the end when a name isn't either a PMU name or event name. Without the
      error message being created the location in the input parameter (loc)
      can be removed.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Tested-by: default avatarAtish Patra <atishp@rivosinc.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Beeman Strong <beeman@rivosinc.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.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>
      Link: https://lore.kernel.org/r/20240416061533.921723-3-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      63dfcde9
    • Ian Rogers's avatar
      perf parse-events: Factor out '<event_or_pmu>/.../' parsing · 8b734eaa
      Ian Rogers authored
      Factor out the case of an event or PMU name followed by a slash based
      term list. This is with a view to sharing the code with new legacy
      hardware parsing. Use early return to reduce indentation in the code.
      Make parse_events_add_pmu static now it doesn't need sharing with
      parse-events.y.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Tested-by: default avatarAtish Patra <atishp@rivosinc.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Beeman Strong <beeman@rivosinc.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Clark <james.clark@arm.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>
      Link: https://lore.kernel.org/r/20240416061533.921723-2-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      8b734eaa
    • Adrian Hunter's avatar
      perf scripts python: Add a script to run instances of 'perf script' in parallel · e0c48bf9
      Adrian Hunter authored
      Add a Python script to run a perf script command multiple times in
      parallel, using perf script options --cpu and --time so that each job
      processes a different chunk of the data.
      
      Extend perf script tests to test also the new script.
      
      The script supports the use of normal 'perf script' options like
      --dlfilter and --script, so that the benefit of running parallel jobs
      naturally extends to them also. In addition, a command can be provided
      (refer --pipe-to option) to pipe standard output to a custom command.
      
      Refer to the script's own help text at the end of the patch for more
      details.
      
      The script is useful for Intel PT traces, that can be efficiently
      decoded by 'perf script' when split by CPU and/or time ranges. Running
      jobs in parallel can decrease the overall decoding time.
      
      Committer testing:
      
        Ian reported that shellcheck found some issues, I installed it as there
        are no warnings about it not being available, but when available it
        fails the build with:
      
          TEST    /tmp/build/perf-tools-next/tests/shell/script.sh.shellcheck_log
          CC      /tmp/build/perf-tools-next/util/header.o
      
        In tests/shell/script.sh line 20:
                        rm -rf "${temp_dir}/"*
                               ^-------------^ SC2115 (warning): Use "${var:?}" to ensure this never expands to /* .
      
        In tests/shell/script.sh line 83:
                output1_dir="${temp_dir}/output1"
                ^---------^ SC2034 (warning): output1_dir appears unused. Verify use (or export if used externally).
      
        In tests/shell/script.sh line 84:
                output2_dir="${temp_dir}/output2"
                ^---------^ SC2034 (warning): output2_dir appears unused. Verify use (or export if used externally).
      
        In tests/shell/script.sh line 86:
                python3 "${pp}" -o "${output_dir}" --jobs 4 --verbose -- perf script -i "${perf_data}"
                                    ^-----------^ SC2154 (warning): output_dir is referenced but not assigned (did you mean 'output1_dir'?).
      
        For more information:
          https://www.shellcheck.net/wiki/SC2034 -- output1_dir appears unused. Verif...
          https://www.shellcheck.net/wiki/SC2115 -- Use "${var:?}" to ensure this nev...
          https://www.shellcheck.net/wiki/SC2154 -- output_dir is referenced but not ...
      
      Did these fixes:
      
        -               rm -rf "${temp_dir}/"*
        +               rm -rf "${temp_dir:?}/"*
      
      And:
      
         @@ -83,8 +83,8 @@ test_parallel_perf()
                output1_dir="${temp_dir}/output1"
                output2_dir="${temp_dir}/output2"
                perf record -o "${perf_data}" --sample-cpu uname
        -       python3 "${pp}" -o "${output_dir}" --jobs 4 --verbose -- perf script -i "${perf_data}"
        -       python3 "${pp}" -o "${output_dir}" --jobs 4 --verbose --per-cpu -- perf script -i "${perf_data}"
        +       python3 "${pp}" -o "${output1_dir}" --jobs 4 --verbose -- perf script -i "${perf_data}"
        +       python3 "${pp}" -o "${output2_dir}" --jobs 4 --verbose --per-cpu -- perf script -i "${perf_data}"
      
      After that:
      
        root@number:~# perf test -vv "perf script tests"
         97: perf script tests:
        --- start ---
        test child forked, pid 4084139
        DB test
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.032 MB /tmp/perf-test-script.T4MJDr0L6J/perf.data (7 samples) ]
        <SNIP>
        DB test [Success]
        parallel-perf test
        Linux
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.034 MB /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data (7 samples) ]
        Starting: perf script --time=,91898.301878499 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --time=91898.301878500,91898.301905999 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --time=91898.301906000,91898.301933499 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --time=91898.301933500, -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --time=91898.301878500,91898.301905999 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --time=91898.301906000,91898.301933499 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 4 jobs: 2 completed, 2 running
        Finished: perf script --time=,91898.301878499 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --time=91898.301933500, -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 4 jobs: 4 completed, 0 running
        All jobs finished successfully
        parallel-perf.py done
        Starting: perf script --cpu=0 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=1 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=2 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=3 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=0 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=1 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=2 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=3 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 28 jobs: 4 completed, 0 running
        Starting: perf script --cpu=4 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=5 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=6 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=7 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=4 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=5 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=6 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=7 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 28 jobs: 8 completed, 0 running
        Starting: perf script --cpu=8 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=9 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=10 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=11 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=8 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=9 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=10 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=11 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 28 jobs: 12 completed, 0 running
        Starting: perf script --cpu=12 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=13 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=14 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=15 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=12 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=13 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=14 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=15 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 28 jobs: 16 completed, 0 running
        Starting: perf script --cpu=16 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=17 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=18 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=19 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=16 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=17 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=18 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=19 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 28 jobs: 20 completed, 0 running
        Starting: perf script --cpu=20 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=21 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=22 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=23 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=20 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=21 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=22 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=23 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 28 jobs: 24 completed, 0 running
        Starting: perf script --cpu=24 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=25 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=26 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Starting: perf script --cpu=27 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=25 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=26 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        Finished: perf script --cpu=27 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 28 jobs: 27 completed, 1 running
        Finished: perf script --cpu=24 -i /tmp/perf-test-script.T4MJDr0L6J/pp-perf.data
        There are 28 jobs: 28 completed, 0 running
        All jobs finished successfully
        parallel-perf.py done
        parallel-perf test [Success]
        --- Cleaning up ---
        ---- end(0) ----
         97: perf script tests                                               : Ok
        root@number:~#
      Reviewed-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240423133248.10206-1-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e0c48bf9
    • Arnaldo Carvalho de Melo's avatar
      tools lib rbtree: Pick some improvements from the kernel rbtree code · cd88c11c
      Arnaldo Carvalho de Melo authored
      The tools/lib/rbtree.c code came from the kernel, removing the
      EXPORT_SYMBOL() that make sense only there, unfortunately it is not
      being checked with tools/perf/check_headers.sh, will try to remedy this,
      till then pick the improvements from:
      
        b0687c11 ("lib/rbtree: use '+' instead of '|' for setting color.")
      
      That I noticed by doing:
      
        diff -u tools/lib/rbtree.c lib/rbtree.c
        diff -u tools/include/linux/rbtree_augmented.h include/linux/rbtree_augmented.h
      
      There is one other cases, but lets pick it in separate patches.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Noah Goldstein <goldstein.w.n@gmail.com>
      Link: https://lore.kernel.org/lkml/ZigZzeFoukzRKG1Q@x1Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      cd88c11c
    • Arnaldo Carvalho de Melo's avatar
      perf tests shell kprobes: Add missing description as used by 'perf test' output · 7255fcc8
      Arnaldo Carvalho de Melo authored
      Before:
      
        root@x1:~# perf test 76
         76: SPDX-License-Identifier: GPL-2.0                                : Ok
        root@x1:~#
      
      After:
      
        root@x1:~# perf test 76
         76: Add 'perf probe's, list and remove them.                        : Ok
        root@x1:~#
      Reviewed-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kajol Jain <kjain@linux.ibm.com>
      Cc: Michael Petlan <mpetlan@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Veronika Molnarova <vmolnaro@redhat.com>
      Link: https://lore.kernel.org/lkml/ZigRDKUGkcDqD-yW@x1Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7255fcc8
  2. 23 Apr, 2024 1 commit
    • Arnaldo Carvalho de Melo's avatar
      tools arch x86: Sync the msr-index.h copy with the kernel sources · b29781af
      Arnaldo Carvalho de Melo authored
      To pick up the changes from these csets:
      
        be482ff9 ("x86/bhi: Enumerate Branch History Injection (BHI) bug")
        0f4a8376 ("x86/bhi: Define SPEC_CTRL_BHI_DIS_S")
      
      That cause no changes to tooling:
      
        $ tools/perf/trace/beauty/tracepoints/x86_msr.sh > x86_msr.before
        $ objdump -dS /tmp/build/perf-tools-next/util/amd-sample-raw.o > amd-sample-raw.o.before
        $ cp arch/x86/include/asm/msr-index.h tools/arch/x86/include/asm/msr-index.h
        $ make -C tools/perf O=/tmp/build/perf-tools-next
        <SNIP>
        CC      /tmp/build/perf-tools-next/trace/beauty/tracepoints/x86_msr.o
        <SNIP>
        CC      /tmp/build/perf-tools-next/util/amd-sample-raw.o
        <SNIP>
        $ objdump -dS /tmp/build/perf-tools-next/util/amd-sample-raw.o > amd-sample-raw.o.after
        $ tools/perf/trace/beauty/tracepoints/x86_msr.sh > x86_msr.after
        $ diff -u x86_msr.before x86_msr.after
        $ diff -u amd-sample-raw.o.before amd-sample-raw.o.after
      
      Just silences this perf build warning:
      
        Warning: Kernel ABI header differences:
          diff -u tools/arch/x86/include/asm/msr-index.h arch/x86/include/asm/msr-index.h
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Daniel Sneddon <daniel.sneddon@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: https://lore.kernel.org/lkml/ZifCnEZFx5MZQuIW@x1Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b29781af
  3. 22 Apr, 2024 2 commits
    • Arnaldo Carvalho de Melo's avatar
      tools include UAPI: Sync linux/vhost.h with the kernel sources · e7a8074d
      Arnaldo Carvalho de Melo authored
      To get the changes in:
      
        2855c2a7 ("vhost-vdpa: change ioctl # for VDPA_GET_VRING_SIZE")
        1496c470 ("vhost-vdpa: uapi to support reporting per vq size")
      
      To pick up these changes and support them:
      
        $ tools/perf/trace/beauty/vhost_virtio_ioctl.sh > before
        $ cp include/uapi/linux/vhost.h tools/perf/trace/beauty/include/uapi/linux/vhost.h
        $ tools/perf/trace/beauty/vhost_virtio_ioctl.sh > after
        $ diff -u before after
        --- before	2024-04-22 13:39:37.185674799 -0300
        +++ after	2024-04-22 13:39:52.043344784 -0300
        @@ -50,5 +50,6 @@
         	[0x7F] = "VDPA_GET_VRING_DESC_GROUP",
         	[0x80] = "VDPA_GET_VQS_COUNT",
         	[0x81] = "VDPA_GET_GROUP_NUM",
        +	[0x82] = "VDPA_GET_VRING_SIZE",
         	[0x8] = "NEW_WORKER",
         };
        $
      
      For instance, see how those 'cmd' ioctl arguments get translated, now
      VDPA_GET_VRING_SIZE will be as well:
      
        # perf trace -a -e ioctl --max-events=10
             0.000 ( 0.011 ms): pipewire/2261 ioctl(fd: 60, cmd: SNDRV_PCM_HWSYNC, arg: 0x1)                   = 0
            21.353 ( 0.014 ms): pipewire/2261 ioctl(fd: 60, cmd: SNDRV_PCM_HWSYNC, arg: 0x1)                   = 0
            25.766 ( 0.014 ms): gnome-shell/2196 ioctl(fd: 14, cmd: DRM_I915_IRQ_WAIT, arg: 0x7ffe4a22c740)    = 0
            25.845 ( 0.034 ms): gnome-shel:cs0/2212 ioctl(fd: 14, cmd: DRM_I915_IRQ_EMIT, arg: 0x7fd43915dc70) = 0
            25.916 ( 0.011 ms): gnome-shell/2196 ioctl(fd: 9, cmd: DRM_MODE_ADDFB2, arg: 0x7ffe4a22c8a0)       = 0
            25.941 ( 0.025 ms): gnome-shell/2196 ioctl(fd: 9, cmd: DRM_MODE_ATOMIC, arg: 0x7ffe4a22c840)       = 0
            32.915 ( 0.009 ms): gnome-shell/2196 ioctl(fd: 9, cmd: DRM_MODE_RMFB, arg: 0x7ffe4a22cf9c)         = 0
            42.522 ( 0.013 ms): gnome-shell/2196 ioctl(fd: 14, cmd: DRM_I915_IRQ_WAIT, arg: 0x7ffe4a22c740)    = 0
            42.579 ( 0.031 ms): gnome-shel:cs0/2212 ioctl(fd: 14, cmd: DRM_I915_IRQ_EMIT, arg: 0x7fd43915dc70) = 0
            42.644 ( 0.010 ms): gnome-shell/2196 ioctl(fd: 9, cmd: DRM_MODE_ADDFB2, arg: 0x7ffe4a22c8a0)       = 0
        #
      
      This addresses this perf tools build warning:
      
        diff -u tools/perf/trace/beauty/include/uapi/linux/vhost.h include/uapi/linux/vhost.h
      
      But this specific process, usually boring, this time around catch a
      problem, namely the addition of VDPA_GET_VRING_SIZE used an ioctl number
      already taken, which went on unnoticed and only got caught when the
      tools/perf/trace/beauty/vhost_virtio_ioctl.sh script was run as part of
      the perf tools process of updating the tools copies of system headers it
      uses for creating id->string tables that, well, broke the perf tools
      build because there were multiple initializations in the strings table
      for the 0x80 entry...
      
      I'm adding here a link to the discussion, that is lacking in the fix for
      the reported problem, and a quote from one of the developers involved:
      
      "Thanks a lot for taking care of this! So given the header is actually
      buggy pls hang on to this change until I merge the fix for the header
      (you were CC'd on the patch).  It's great we have this redundancy which
      allowed us to catch the bug in time, and many thanks to Namhyung Kim for
      reporting the issue!"
      
      This is here as a hint for anyone thinking about ways to automate
      checking these issues in a more automated way... ;-)
      
      Link: https://lore.kernel.org/lkml/ 20240402172151-mutt-send-email-mst@kernel.org
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Zhu Lingshan <lingshan.zhu@intel.com>
      Link: https://lore.kernel.org/lkml/ZiaW-csEZLKK48BE@x1Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e7a8074d
    • Arnaldo Carvalho de Melo's avatar
      Merge remote-tracking branch 'torvalds/master' into perf-tools-next · 173b0b5b
      Arnaldo Carvalho de Melo authored
      To pick up fixes sent via perf-tools, by Namhyung Kim.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      173b0b5b
  4. 21 Apr, 2024 7 commits
    • Linus Torvalds's avatar
      Linux 6.9-rc5 · ed30a4a5
      Linus Torvalds authored
      ed30a4a5
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 48cf398f
      Linus Torvalds authored
      Pull char / misc driver fixes from Greg KH:
       "Here are some small char/misc and other driver fixes for 6.9-rc5.
        Included in here are the following:
      
         - binder driver fix for reported problem
      
         - speakup crash fix
      
         - mei driver fixes for reported problems
      
         - comdei driver fix
      
         - interconnect driver fixes
      
         - rtsx driver fix
      
         - peci.h kernel doc fix
      
        All of these have been in linux-next for over a week with no reported
        problems"
      
      * tag 'char-misc-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        peci: linux/peci.h: fix Excess kernel-doc description warning
        binder: check offset alignment in binder_get_object()
        comedi: vmk80xx: fix incomplete endpoint checking
        mei: vsc: Unregister interrupt handler for system suspend
        Revert "mei: vsc: Call wake_up() in the threaded IRQ handler"
        misc: rtsx: Fix rts5264 driver status incorrect when card removed
        mei: me: disable RPL-S on SPS and IGN firmwares
        speakup: Avoid crash on very long word
        interconnect: Don't access req_list while it's being manipulated
        interconnect: qcom: x1e80100: Remove inexistent ACV_PERF BCM
      48cf398f
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 4e90ba75
      Linus Torvalds authored
      Pull kernfs bugfix and documentation update from Greg KH:
       "Here are two changes for 6.9-rc5 that deal with "driver core" stuff,
        that do the following:
      
         - sysfs reference leak fix
      
         - embargoed-hardware-issues.rst update for Power
      
        Both of these have been in linux-next for over a week with no reported
        issues"
      
      * tag 'driver-core-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        Documentation: embargoed-hardware-issues.rst: Add myself for Power
        fs: sysfs: Fix reference leak in sysfs_break_active_protection()
      4e90ba75
    • Linus Torvalds's avatar
      Merge tag 'tty-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · c0c6b5c0
      Linus Torvalds authored
      Pull tty/serial driver fixes from Greg KH:
       "Here are some small tty and serial driver fixes for 6.9-rc5 that
        resolve a bunch of reported problems. Included in here are:
      
         - MAINTAINERS and .mailmap update for Richard Genoud
      
         - serial core regression fixes from 6.9-rc1 changes
      
         - pci id cleanups
      
         - serial core crash fix
      
         - stm32 driver fixes
      
         - 8250 driver fixes
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'tty-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        serial: stm32: Reset .throttled state in .startup()
        serial: stm32: Return IRQ_NONE in the ISR if no handling happend
        serial: core: Fix missing shutdown and startup for serial base port
        serial: core: Clearing the circular buffer before NULLifying it
        MAINTAINERS: mailmap: update Richard Genoud's email address
        serial/pmac_zilog: Remove flawed mitigation for rx irq flood
        serial: 8250_pci: Remove redundant PCI IDs
        serial: core: Fix regression when runtime PM is not enabled
        serial: mxs-auart: add spinlock around changing cts state
        serial: 8250_dw: Revert: Do not reclock if already at correct rate
        serial: 8250_lpc18xx: disable clks on error in probe()
      c0c6b5c0
    • Linus Torvalds's avatar
      Merge tag 'usb-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 5fa0ab45
      Linus Torvalds authored
      Pull USB / Thunderbolt driver fixes from Greg KH:
       "Here are some small USB and Thunderbolt driver fixes for 6.9-rc5.
        Included in here are:
      
         - MAINTAINER file update for invalid email address
      
         - usb-serial device id updates
      
         - typec driver fixes
      
         - thunderbolt / usb4 driver fixes
      
         - usb core shutdown fixes
      
         - cdc-wdm driver revert for reported problem in -rc1
      
         - usb gadget driver fixes
      
         - xhci driver fixes
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'usb-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (25 commits)
        USB: serial: option: add Telit FN920C04 rmnet compositions
        usb: dwc3: ep0: Don't reset resource alloc flag
        Revert "usb: cdc-wdm: close race between read and workqueue"
        USB: serial: option: add Rolling RW101-GL and RW135-GL support
        USB: serial: option: add Lonsung U8300/U9300 product
        USB: serial: option: add support for Fibocom FM650/FG650
        USB: serial: option: support Quectel EM060K sub-models
        USB: serial: option: add Fibocom FM135-GL variants
        usb: misc: onboard_usb_hub: Disable the USB hub clock on failure
        thunderbolt: Avoid notify PM core about runtime PM resume
        thunderbolt: Fix wake configurations after device unplug
        usb: dwc2: host: Fix dereference issue in DDMA completion flow.
        usb: typec: mux: it5205: Fix ChipID value typo
        MAINTAINERS: Drop Li Yang as their email address stopped working
        usb: gadget: fsl: Initialize udc before using it
        usb: Disable USB3 LPM at shutdown
        usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error
        usb: typec: tcpm: Correct the PDO counting in pd_set
        usb: gadget: functionfs: Wait for fences before enqueueing DMABUF
        usb: gadget: functionfs: Fix inverted DMA fence direction
        ...
      5fa0ab45
    • Linus Torvalds's avatar
      Merge tag 'sched_urgent_for_v6.9_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3b680865
      Linus Torvalds authored
      Pull scheduler fix from Borislav Petkov:
      
       - Add a missing memory barrier in the concurrency ID mm switching
      
      * tag 'sched_urgent_for_v6.9_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Add missing memory barrier in switch_mm_cid
      3b680865
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v6.9_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d07a0b86
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - Fix CPU feature dependencies of GFNI, VAES, and VPCLMULQDQ
      
       - Print the correct error code when FRED reports a bad event type
      
       - Add a FRED-specific INT80 handler without the special dances that
         need to happen in the current one
      
       - Enable the using-the-default-return-thunk-but-you-should-not warning
         only on configs which actually enable those special return thunks
      
       - Check the proper feature flags when selecting BHI retpoline
         mitigation
      
      * tag 'x86_urgent_for_v6.9_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ
        x86/fred: Fix incorrect error code printout in fred_bad_type()
        x86/fred: Fix INT80 emulation for FRED
        x86/retpolines: Enable the default thunk warning only on relevant configs
        x86/bugs: Fix BHI retpoline check
      d07a0b86
  5. 20 Apr, 2024 6 commits
    • Linus Torvalds's avatar
      Merge tag 'block-6.9-20240420' of git://git.kernel.dk/linux · 977b1ef5
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Just two minor fixes that should go into the 6.9 kernel release, one
        fixing a regression with partition scanning errors, and one fixing a
        WARN_ON() that can get triggered if we race with a timer"
      
      * tag 'block-6.9-20240420' of git://git.kernel.dk/linux:
        blk-iocost: do not WARN if iocg was already offlined
        block: propagate partition scanning errors to the BLKRRPART ioctl
      977b1ef5
    • Linus Torvalds's avatar
      Merge tag 'email' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 39316e5f
      Linus Torvalds authored
      Pull email address update from James Bottomley:
       "My IBM email has stopped working, so update to a working email
        address"
      
      * tag 'email' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        MAINTAINERS: update to working email address
      39316e5f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 81777226
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "This is a bit on the large side, mostly due to two changes:
      
         - Changes to disable some broken PMU virtualization (see below for
           details under "x86 PMU")
      
         - Clean up SVM's enter/exit assembly code so that it can be compiled
           without OBJECT_FILES_NON_STANDARD. This fixes a warning "Unpatched
           return thunk in use. This should not happen!" when running KVM
           selftests.
      
        Everything else is small bugfixes and selftest changes:
      
         - Fix a mostly benign bug in the gfn_to_pfn_cache infrastructure
           where KVM would allow userspace to refresh the cache with a bogus
           GPA. The bug has existed for quite some time, but was exposed by a
           new sanity check added in 6.9 (to ensure a cache is either
           GPA-based or HVA-based).
      
         - Drop an unused param from gfn_to_pfn_cache_invalidate_start() that
           got left behind during a 6.9 cleanup.
      
         - Fix a math goof in x86's hugepage logic for
           KVM_SET_MEMORY_ATTRIBUTES that results in an array overflow
           (detected by KASAN).
      
         - Fix a bug where KVM incorrectly clears root_role.direct when
           userspace sets guest CPUID.
      
         - Fix a dirty logging bug in the where KVM fails to write-protect
           SPTEs used by a nested guest, if KVM is using Page-Modification
           Logging and the nested hypervisor is NOT using EPT.
      
        x86 PMU:
      
         - Drop support for virtualizing adaptive PEBS, as KVM's
           implementation is architecturally broken without an obvious/easy
           path forward, and because exposing adaptive PEBS can leak host LBRs
           to the guest, i.e. can leak host kernel addresses to the guest.
      
         - Set the enable bits for general purpose counters in
           PERF_GLOBAL_CTRL at RESET time, as done by both Intel and AMD
           processors.
      
         - Disable LBR virtualization on CPUs that don't support LBR
           callstacks, as KVM unconditionally uses
           PERF_SAMPLE_BRANCH_CALL_STACK when creating the perf event, and
           would fail on such CPUs.
      
        Tests:
      
         - Fix a flaw in the max_guest_memory selftest that results in it
           exhausting the supply of ucall structures when run with more than
           256 vCPUs.
      
         - Mark KVM_MEM_READONLY as supported for RISC-V in
           set_memory_region_test"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (30 commits)
        KVM: Drop unused @may_block param from gfn_to_pfn_cache_invalidate_start()
        KVM: selftests: Add coverage of EPT-disabled to vmx_dirty_log_test
        KVM: x86/mmu: Fix and clarify comments about clearing D-bit vs. write-protecting
        KVM: x86/mmu: Remove function comments above clear_dirty_{gfn_range,pt_masked}()
        KVM: x86/mmu: Write-protect L2 SPTEs in TDP MMU when clearing dirty status
        KVM: x86/mmu: Precisely invalidate MMU root_role during CPUID update
        KVM: VMX: Disable LBR virtualization if the CPU doesn't support LBR callstacks
        perf/x86/intel: Expose existence of callback support to KVM
        KVM: VMX: Snapshot LBR capabilities during module initialization
        KVM: x86/pmu: Do not mask LVTPC when handling a PMI on AMD platforms
        KVM: x86: Snapshot if a vCPU's vendor model is AMD vs. Intel compatible
        KVM: x86: Stop compiling vmenter.S with OBJECT_FILES_NON_STANDARD
        KVM: SVM: Create a stack frame in __svm_sev_es_vcpu_run()
        KVM: SVM: Save/restore args across SEV-ES VMRUN via host save area
        KVM: SVM: Save/restore non-volatile GPRs in SEV-ES VMRUN via host save area
        KVM: SVM: Clobber RAX instead of RBX when discarding spec_ctrl_intercepted
        KVM: SVM: Drop 32-bit "support" from __svm_sev_es_vcpu_run()
        KVM: SVM: Wrap __svm_sev_es_vcpu_run() with #ifdef CONFIG_KVM_AMD_SEV
        KVM: SVM: Create a stack frame in __svm_vcpu_run() for unwinding
        KVM: SVM: Remove a useless zeroing of allocated memory
        ...
      81777226
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · e43afae4
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix wireguard loading failure on pre-Power10 due to Power10 crypto
         routines
      
       - Fix papr-vpd selftest failure due to missing variable initialization
      
       - Avoid unnecessary get/put in spapr_tce_platform_iommu_attach_dev()
      
      Thanks to Geetika Moolchandani, Jason Gunthorpe, Michal Suchánek, Nathan
      Lynch, and Shivaprasad G Bhat.
      
      * tag 'powerpc-6.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        selftests/powerpc/papr-vpd: Fix missing variable initialization
        powerpc/crypto/chacha-p10: Fix failure on non Power10
        powerpc/iommu: Refactor spapr_tce_platform_iommu_attach_dev()
      e43afae4
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 560d4e77
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A couple clk driver fixes, a build fix, and a deadlock fix:
      
         - Mediatek mt7988 has broken PCIe because the wrong parent is used
      
         - Mediatek clk drivers may deadlock when registering their clks
           because the clk provider device is repeatedly runtime PM resumed
           and suspended during probe and clk registration.
      
           Resuming the clk provider device deadlocks with an ABBA deadlock
           due to genpd_lock and the clk prepare_lock. The fix is to keep the
           device runtime resumed while registering clks.
      
         - Another runtime PM related deadlock, this time with disabling
           unused clks during late init.
      
           We get an ABBA deadlock where a device is runtime PM resuming (or
           suspending) while the disabling of unused clks is happening in
           parallel. That runtime PM action calls into the clk framework and
           tries to grab the clk prepare_lock while the disabling of unused
           clks holds the prepare_lock and is waiting for that runtime PM
           action to complete.
      
           The fix is to runtime resume all the clk provider devices before
           grabbing the clk prepare_lock during disable unused.
      
         - A build fix to provide an empty devm_clk_rate_exclusive_get()
           function when CONFIG_COMMON_CLK=n"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: mediatek: mt7988-infracfg: fix clocks for 2nd PCIe port
        clk: mediatek: Do a runtime PM get on controllers during probe
        clk: Get runtime PM before walking tree for clk_summary
        clk: Get runtime PM before walking tree during disable_unused
        clk: Initialize struct clk_core kref earlier
        clk: Don't hold prepare_lock when calling kref_put()
        clk: Remove prepare_lock hold assertion in __clk_release()
        clk: Provide !COMMON_CLK dummy for devm_clk_rate_exclusive_get()
      560d4e77
    • James Bottomley's avatar
      MAINTAINERS: update to working email address · 366c5cec
      James Bottomley authored
      jejb@linux.ibm.com no longer works.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
      366c5cec
  6. 19 Apr, 2024 17 commits
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.9-2024-04-19' of... · 13a2e429
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.9-2024-04-19' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools fixes from Namhyung Kim:
       "A random set of small bug fixes:
      
         - Fix perf annotate TUI when used with data type profiling
      
         - Work around BPF verifier about sighand lock checking
      
        And a set of kernel header synchronization"
      
      * tag 'perf-tools-fixes-for-v6.9-2024-04-19' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
        tools/include: Sync arm64 asm/cputype.h with the kernel sources
        tools/include: Sync asm-generic/bitops/fls.h with the kernel sources
        tools/include: Sync x86 asm/msr-index.h with the kernel sources
        tools/include: Sync x86 asm/irq_vectors.h with the kernel sources
        tools/include: Sync x86 CPU feature headers with the kernel sources
        tools/include: Sync uapi/sound/asound.h with the kernel sources
        tools/include: Sync uapi/linux/kvm.h and asm/kvm.h with the kernel sources
        tools/include: Sync uapi/linux/fs.h with the kernel sources
        tools/include: Sync uapi/drm/i915_drm.h with the kernel sources
        perf lock contention: Add a missing NULL check
        perf annotate: Make sure to call symbol__annotate2() in TUI
      13a2e429
    • Linus Torvalds's avatar
      Merge tag 'hardening-v6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 2d412262
      Linus Torvalds authored
      Pull hardening fixes from Kees Cook:
      
       - Correctly disable UBSAN configs in configs/hardening (Nathan
         Chancellor)
      
       - Add missing signed integer overflow trap types to arm64 handler
      
      * tag 'hardening-v6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        ubsan: Add awareness of signed integer overflow traps
        configs/hardening: Disable CONFIG_UBSAN_SIGNED_WRAP
        configs/hardening: Fix disabling UBSAN configurations
      2d412262
    • Linus Torvalds's avatar
      Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd · 50a1317f
      Linus Torvalds authored
      Pull iommufd fixes from Jason Gunthorpe:
       "Two fixes for the selftests:
      
         - CONFIG_IOMMUFD_TEST needs CONFIG_IOMMUFD_DRIVER to work
      
         - The kconfig fragment sshould include fault injection so the fault
           injection test can work"
      
      * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd:
        iommufd: Add config needed for iommufd_fail_nth
        iommufd: Add missing IOMMUFD_DRIVER kconfig for the selftest
      50a1317f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 2bf5dd7c
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
      
       - Add a missing mutex_destroy() in rxe
      
       - Enhance the debugging print for cm_destroy failures to help debug
         these
      
       - Fix mlx5 MAD processing in cases where multiport devices are running
         in switchedev mode
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/mlx5: Fix port number for counter query in multi-port configuration
        RDMA/cm: Print the old state when cm_destroy_id gets timeout
        RDMA/rxe: Fix the problem "mutex_destroy missing"
      2bf5dd7c
    • Linus Torvalds's avatar
      Merge tag '9p-fixes-for-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · 46b28503
      Linus Torvalds authored
      Pull fs/9p fixes from Eric Van Hensbergen:
       "This contains a reversion of one of the original 6.9 patches which
        seems to have been the cause of most of the instability. It also
        incorporates several fixes to legacy support and cache fixes.
      
        There are few additional changes to improve stability, but I want
        another week of testing before sending them upstream"
      
      * tag '9p-fixes-for-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        fs/9p: drop inodes immediately on non-.L too
        fs/9p: Revert "fs/9p: fix dups even in uncached mode"
        fs/9p: remove erroneous nlink init from legacy stat2inode
        9p: explicitly deny setlease attempts
        fs/9p: fix the cache always being enabled on files with qid flags
        fs/9p: translate O_TRUNC into OTRUNC
        fs/9p: only translate RWX permissions for plain 9P2000
      46b28503
    • Linus Torvalds's avatar
      Merge tag 'fuse-fixes-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · daa75776
      Linus Torvalds authored
      Pull fuse fixes from Miklos Szeredi:
      
       - Fix two bugs in the new passthrough mode
      
       - Fix a statx bug introduced in v6.6
      
       - Fix code documentation
      
      * tag 'fuse-fixes-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        cuse: add kernel-doc comments to cuse_process_init_reply()
        fuse: fix leaked ENOSYS error on first statx call
        fuse: fix parallel dio write on file open in passthrough mode
        fuse: fix wrong ff->iomode state changes from parallel dio write
      daa75776
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 25ec51ec
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Fix a kernel fault during page table walking in huge_pte_alloc() with
         PTABLE_LEVELS=5 due to using p4d_offset() instead of p4d_alloc()
      
       - head.S fix and cleanup to disable the MMU before toggling the
         HCR_EL2.E2H bit when entering the kernel with the MMU on from the EFI
         stub. Changing this bit (currently from VHE to nVHE) causes some
         system registers as well as page table descriptors to be interpreted
         differently, potentially resulting in spurious MMU faults
      
       - Fix translation fault in swsusp_save() accessing MEMBLOCK_NOMAP
         memory ranges due to kernel_page_present() returning true in most
         configurations other than rodata_full == true,
         CONFIG_DEBUG_PAGEALLOC=y or CONFIG_KFENCE=y
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: hibernate: Fix level3 translation fault in swsusp_save()
        arm64/head: Disable MMU at EL2 before clearing HCR_EL2.E2H
        arm64/head: Drop unnecessary pre-disable-MMU workaround
        arm64/hugetlb: Fix page table walk in huge_pte_alloc()
      25ec51ec
    • Linus Torvalds's avatar
      Merge tag 's390-6.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 3cdb4559
      Linus Torvalds authored
      Pull s390 updates from Alexander Gordeev:
      
       - Fix NULL pointer dereference in program check handler
      
       - Fake IRBs are important events relevant for problem analysis. Add
         traces when queueing and delivering
      
       - Fix a race condition in ccw_device_set_online() that can cause the
         online process to fail
      
       - Deferred condition code 1 response indicates that I/O was not started
         and should be retried. The current QDIO implementation handles a cc1
         response as an error, resulting in a failed QDIO setup. Fix that by
         retrying the setup when a cc1 response is received
      
      * tag 's390-6.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/mm: Fix NULL pointer dereference
        s390/cio: log fake IRB events
        s390/cio: fix race condition during online processing
        s390/qdio: handle deferred cc1
      3cdb4559
    • Linus Torvalds's avatar
      Merge tag 'bootconfig-fixes-v6.9-rc4' of... · 9c6e84e4
      Linus Torvalds authored
      Merge tag 'bootconfig-fixes-v6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull bootconfig fixes from Masami Hiramatsu:
      
       - Fix potential static_command_line buffer overrun.
      
         Currently we allocate the memory for static_command_line based on
         "boot_command_line", but it will copy "command_line" into it. So we
         use the length of "command_line" instead of "boot_command_line" (as
         we previously did)
      
       - Use memblock_free_late() in xbc_exit() instead of memblock_free()
         after the buddy system is initialized
      
       - Fix a kerneldoc warning
      
      * tag 'bootconfig-fixes-v6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        bootconfig: Fix the kerneldoc of _xbc_exit()
        bootconfig: use memblock_free_late to free xbc memory to buddy
        init/main.c: Fix potential static_command_line memory overflow
      9c6e84e4
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · dbe0a7be
      Linus Torvalds authored
      Pull thermal control fix from Rafael Wysocki:
       "This prevents the thermal debug code from attempting to divide by zero
        and corrects trip point statistics (Rafael Wysocki)"
      
      * tag 'thermal-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal/debugfs: Add missing count increment to thermal_debug_tz_trip_up()
      dbe0a7be
    • Linus Torvalds's avatar
      Merge tag 'sound-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 3c08ab6d
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Things look calm and normal, we got handful HD-audio-related small
        fixes and a fix for MIDI 2.0 UMP handling"
      
      * tag 'sound-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: seq: ump: Fix conversion from MIDI2 to MIDI1 UMP messages
        ALSA: hda/realtek - Enable audio jacks of Haier Boyue G42 with ALC269VC
        ALSA: hda/realtek: Add quirks for Huawei Matebook D14 NBLB-WAX9N
        ALSA: hda/realtek: Fix volumn control of ThinkBook 16P Gen4
        ALSA: hda/realtek: Fixes for Asus GU605M and GA403U sound
        ALSA: hda/tas2781: Add new vendor_id and subsystem_id to support ThinkPad ICE-1
        ALSA: hda/tas2781: correct the register for pow calibrated data
        ALSA: hda/realtek: Add quirk for HP SnowWhite laptops
      3c08ab6d
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2024-04-19' of https://gitlab.freedesktop.org/drm/kernel · ce944f3f
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular week of fixes, seems to be about right for this time in the
        release cycle, amdgpu, and nouveau are the main one with some
        scattered fixes otherwise.
      
        ttm:
         - Stop pooling cached NUMA pages
      
        amdgpu:
         - Fix invalid resource->start check
         - USB-C DSC fix
         - Fix a potential UAF in VA IOCTL
         - Fix visible VRAM handling during faults
      
        amdkfd:
         - Fix memory leak in create_process failure
      
        radeon:
         - Silence UBSAN warnings from variable sized arrays
      
        nouveau:
         - dp: Don't probe DP ports twice
         - nv04: Fix OOB access
         - nv50: Disable AUX bus for disconnected DP ports
         - nvkm: Fix instmem race condition
      
        panel:
         - Don't unregister DSI devices in several drivers
      
        v3d:
         - Fix enabled_ns increment
      
        xe:
         - Fix bo leak on error path during fb init
         - Fix use-after-free due to order vm is put and destroyed"
      
      * tag 'drm-fixes-2024-04-19' of https://gitlab.freedesktop.org/drm/kernel:
        drm/radeon: silence UBSAN warning (v3)
        drm/radeon: make -fstrict-flex-arrays=3 happy
        drm/amdgpu: fix visible VRAM handling during faults
        drm/amdgpu: validate the parameters of bo mapping operations more clearly
        Revert "drm/amd/display: fix USB-C flag update after enc10 feature init"
        drm/amdkfd: Fix memory leak in create_process failure
        drm/amdgpu: remove invalid resource->start check v2
        drm/xe/vm: prevent UAF with asid based lookup
        drm/xe: Fix bo leak in intel_fb_bo_framebuffer_init
        drm/panel: novatek-nt36682e: don't unregister DSI device
        drm/panel: visionox-rm69299: don't unregister DSI device
        drm/nouveau/dp: Don't probe eDP ports twice harder
        drm/nouveau/kms/nv50-: Disable AUX bus for disconnected DP ports
        drm/v3d: Don't increment `enabled_ns` twice
        drm/vmwgfx: Sort primary plane formats by order of preference
        drm/vmwgfx: Fix crtc's atomic check conditional
        drm/vmwgfx: Fix prime import/export
        drm/ttm: stop pooling cached NUMA pages v2
        drm: nv04: Fix out of bounds access
        nouveau: fix instmem race condition around ptr stores
      ce944f3f
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2024-04-18-14-41' of... · 54c23548
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2024-04-18-14-41' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc fixes from Andrew Morton:
       "15 hotfixes. 9 are cc:stable and the remainder address post-6.8 issues
        or aren't considered suitable for backporting.
      
        There are a significant number of fixups for this cycle's page_owner
        changes (series "page_owner: print stacks and their outstanding
        allocations"). Apart from that, singleton changes all over, mainly in
        MM"
      
      * tag 'mm-hotfixes-stable-2024-04-18-14-41' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        nilfs2: fix OOB in nilfs_set_de_type
        MAINTAINERS: update Naoya Horiguchi's email address
        fork: defer linking file vma until vma is fully initialized
        mm/shmem: inline shmem_is_huge() for disabled transparent hugepages
        mm,page_owner: defer enablement of static branch
        Squashfs: check the inode number is not the invalid value of zero
        mm,swapops: update check in is_pfn_swap_entry for hwpoison entries
        mm/memory-failure: fix deadlock when hugetlb_optimize_vmemmap is enabled
        mm/userfaultfd: allow hugetlb change protection upon poison entry
        mm,page_owner: fix printing of stack records
        mm,page_owner: fix accounting of pages when migrating
        mm,page_owner: fix refcount imbalance
        mm,page_owner: update metadata for tail pages
        userfaultfd: change src_folio after ensuring it's unpinned in UFFDIO_MOVE
        mm/madvise: make MADV_POPULATE_(READ|WRITE) handle VM_FAULT_RETRY properly
      54c23548
    • Yaxiong Tian's avatar
      arm64: hibernate: Fix level3 translation fault in swsusp_save() · 50449ca6
      Yaxiong Tian authored
      On arm64 machines, swsusp_save() faults if it attempts to access
      MEMBLOCK_NOMAP memory ranges. This can be reproduced in QEMU using UEFI
      when booting with rodata=off debug_pagealloc=off and CONFIG_KFENCE=n:
      
        Unable to handle kernel paging request at virtual address ffffff8000000000
        Mem abort info:
          ESR = 0x0000000096000007
          EC = 0x25: DABT (current EL), IL = 32 bits
          SET = 0, FnV = 0
          EA = 0, S1PTW = 0
          FSC = 0x07: level 3 translation fault
        Data abort info:
          ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000
          CM = 0, WnR = 0, TnD = 0, TagAccess = 0
          GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
        swapper pgtable: 4k pages, 39-bit VAs, pgdp=00000000eeb0b000
        [ffffff8000000000] pgd=180000217fff9803, p4d=180000217fff9803, pud=180000217fff9803, pmd=180000217fff8803, pte=0000000000000000
        Internal error: Oops: 0000000096000007 [#1] SMP
        Internal error: Oops: 0000000096000007 [#1] SMP
        Modules linked in: xt_multiport ipt_REJECT nf_reject_ipv4 xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c iptable_filter bpfilter rfkill at803x snd_hda_codec_hdmi snd_hda_intel snd_intel_dspcfg dwmac_generic stmmac_platform snd_hda_codec stmmac joydev pcs_xpcs snd_hda_core phylink ppdev lp parport ramoops reed_solomon ip_tables x_tables nls_iso8859_1 vfat multipath linear amdgpu amdxcp drm_exec gpu_sched drm_buddy hid_generic usbhid hid radeon video drm_suballoc_helper drm_ttm_helper ttm i2c_algo_bit drm_display_helper cec drm_kms_helper drm
        CPU: 0 PID: 3663 Comm: systemd-sleep Not tainted 6.6.2+ #76
        Source Version: 4e22ed63a0a48e7a7cff9b98b7806d8d4add7dc0
        Hardware name: Greatwall GW-XXXXXX-XXX/GW-XXXXXX-XXX, BIOS KunLun BIOS V4.0 01/19/2021
        pstate: 600003c5 (nZCv DAIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
        pc : swsusp_save+0x280/0x538
        lr : swsusp_save+0x280/0x538
        sp : ffffffa034a3fa40
        x29: ffffffa034a3fa40 x28: ffffff8000001000 x27: 0000000000000000
        x26: ffffff8001400000 x25: ffffffc08113e248 x24: 0000000000000000
        x23: 0000000000080000 x22: ffffffc08113e280 x21: 00000000000c69f2
        x20: ffffff8000000000 x19: ffffffc081ae2500 x18: 0000000000000000
        x17: 6666662074736420 x16: 3030303030303030 x15: 3038666666666666
        x14: 0000000000000b69 x13: ffffff9f89088530 x12: 00000000ffffffea
        x11: 00000000ffff7fff x10: 00000000ffff7fff x9 : ffffffc08193f0d0
        x8 : 00000000000bffe8 x7 : c0000000ffff7fff x6 : 0000000000000001
        x5 : ffffffa0fff09dc8 x4 : 0000000000000000 x3 : 0000000000000027
        x2 : 0000000000000000 x1 : 0000000000000000 x0 : 000000000000004e
        Call trace:
         swsusp_save+0x280/0x538
         swsusp_arch_suspend+0x148/0x190
         hibernation_snapshot+0x240/0x39c
         hibernate+0xc4/0x378
         state_store+0xf0/0x10c
         kobj_attr_store+0x14/0x24
      
      The reason is swsusp_save() -> copy_data_pages() -> page_is_saveable()
      -> kernel_page_present() assuming that a page is always present when
      can_set_direct_map() is false (all of rodata_full,
      debug_pagealloc_enabled() and arm64_kfence_can_set_direct_map() false),
      irrespective of the MEMBLOCK_NOMAP ranges. Such MEMBLOCK_NOMAP regions
      should not be saved during hibernation.
      
      This problem was introduced by changes to the pfn_valid() logic in
      commit a7d9f306 ("arm64: drop pfn_valid_within() and simplify
      pfn_valid()").
      
      Similar to other architectures, drop the !can_set_direct_map() check in
      kernel_page_present() so that page_is_savable() skips such pages.
      
      Fixes: a7d9f306 ("arm64: drop pfn_valid_within() and simplify pfn_valid()")
      Cc: <stable@vger.kernel.org> # 5.14.x
      Suggested-by: default avatarMike Rapoport <rppt@kernel.org>
      Suggested-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Co-developed-by: default avatarxiongxin <xiongxin@kylinos.cn>
      Signed-off-by: default avatarxiongxin <xiongxin@kylinos.cn>
      Signed-off-by: default avatarYaxiong Tian <tianyaxiong@kylinos.cn>
      Acked-by: default avatarMike Rapoport (IBM) <rppt@kernel.org>
      Link: https://lore.kernel.org/r/20240417025248.386622-1-tianyaxiong@kylinos.cn
      [catalin.marinas@arm.com: rework commit message]
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      50449ca6
    • Greg Kroah-Hartman's avatar
      Merge tag 'usb-serial-6.9-rc5' of... · 7a9a3040
      Greg Kroah-Hartman authored
      Merge tag 'usb-serial-6.9-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
      
      Johan writes:
      
      USB-serial device ids for 6.9-rc5
      
      Here are some new modem device ids for 6.9-rc5.
      
      All have been in linux-next with no reported issues.
      
      * tag 'usb-serial-6.9-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial:
        USB: serial: option: add Telit FN920C04 rmnet compositions
        USB: serial: option: add Rolling RW101-GL and RW135-GL support
        USB: serial: option: add Lonsung U8300/U9300 product
        USB: serial: option: add support for Fibocom FM650/FG650
        USB: serial: option: support Quectel EM060K sub-models
        USB: serial: option: add Fibocom FM135-GL variants
      7a9a3040
    • Li Nan's avatar
      blk-iocost: do not WARN if iocg was already offlined · 01bc4fda
      Li Nan authored
      In iocg_pay_debt(), warn is triggered if 'active_list' is empty, which
      is intended to confirm iocg is active when it has debt. However, warn
      can be triggered during a blkcg or disk removal, if iocg_waitq_timer_fn()
      is run at that time:
      
        WARNING: CPU: 0 PID: 2344971 at block/blk-iocost.c:1402 iocg_pay_debt+0x14c/0x190
        Call trace:
        iocg_pay_debt+0x14c/0x190
        iocg_kick_waitq+0x438/0x4c0
        iocg_waitq_timer_fn+0xd8/0x130
        __run_hrtimer+0x144/0x45c
        __hrtimer_run_queues+0x16c/0x244
        hrtimer_interrupt+0x2cc/0x7b0
      
      The warn in this situation is meaningless. Since this iocg is being
      removed, the state of the 'active_list' is irrelevant, and 'waitq_timer'
      is canceled after removing 'active_list' in ioc_pd_free(), which ensures
      iocg is freed after iocg_waitq_timer_fn() returns.
      
      Therefore, add the check if iocg was already offlined to avoid warn
      when removing a blkcg or disk.
      Signed-off-by: default avatarLi Nan <linan122@huawei.com>
      Reviewed-by: default avatarYu Kuai <yukuai3@huawei.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Link: https://lore.kernel.org/r/20240419093257.3004211-1-linan666@huaweicloud.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      01bc4fda
    • Rafael J. Wysocki's avatar
      thermal/debugfs: Add missing count increment to thermal_debug_tz_trip_up() · b552f63c
      Rafael J. Wysocki authored
      The count field in struct trip_stats, representing the number of times
      the zone temperature was above the trip point, needs to be incremented
      in thermal_debug_tz_trip_up(), for two reasons.
      
      First, if a trip point is crossed on the way up for the first time,
      thermal_debug_update_temp() called from update_temperature() does
      not see it because it has not been added to trips_crossed[] array
      in the thermal zone's struct tz_debugfs object yet.  Therefore, when
      thermal_debug_tz_trip_up() is called after that, the trip point's
      count value is 0, and the attempt to divide by it during the average
      temperature computation leads to a divide error which causes the kernel
      to crash.  Setting the count to 1 before the division by incrementing it
      fixes this problem.
      
      Second, if a trip point is crossed on the way up, but it has been
      crossed on the way up already before, its count value needs to be
      incremented to make a record of the fact that the zone temperature is
      above the trip now.  Without doing that, if the mitigations applied
      after crossing the trip cause the zone temperature to drop below its
      threshold, the count will not be updated for this episode at all and
      the average temperature in the trip statistics record will be somewhat
      higher than it should be.
      
      Fixes: 7ef01f22 ("thermal/debugfs: Add thermal debugfs information for mitigation episodes")
      Cc :6.8+ <stable@vger.kernel.org> # 6.8+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b552f63c