Skip to content
  1. Jun 26, 2021
    • Daniel Bristot de Oliveira's avatar
      trace: Add osnoise tracer · bce29ac9
      Daniel Bristot de Oliveira authored
      In the context of high-performance computing (HPC), the Operating System
      Noise (*osnoise*) refers to the interference experienced by an application
      due to activities inside the operating system. In the context of Linux,
      NMIs, IRQs, SoftIRQs, and any other system thread can cause noise to the
      system. Moreover, hardware-related jobs can also cause noise, for example,
      via SMIs.
      
      The osnoise tracer leverages the hwlat_detector by running a similar
      loop with preemption, SoftIRQs and IRQs enabled, thus allowing all
      the sources of *osnoise* during its execution. Using the same approach
      of hwlat, osnoise takes note of the entry and exit point of any
      source of interferences, increasing a per-cpu interference counter. The
      osnoise tracer also saves an interference counter for each source of
      interference. The interference counter for NMI, IRQs, SoftIRQs, and
      threads is increased anytime the tool observes these interferences' entry
      events. When a noise happens without any interference from the operating
      system level, the hardware noise counter increases, pointing to a
      hardware-related noise. In this way, osnoise can account for any
      source of interference. At the end of the period, the osnoise tracer
      prints the sum of all noise, the max single noise, the percentage of CPU
      available for the thread, and the counters for the noise sources.
      
      Usage
      
      Write the ASCII text "osnoise" into the current_tracer file of the
      tracing system (generally mounted at /sys/kernel/tracing).
      
      For example::
      
              [root@f32 ~]# cd /sys/kernel/tracing/
              [root@f32 tracing]# echo osnoise > current_tracer
      
      It is possible to follow the trace by reading the trace trace file::
      
              [root@f32 tracing]# cat trace
              # tracer: osnoise
              #
              #                                _-----=> irqs-off
              #                               / _----=> need-resched
              #                              | / _---=> hardirq/softirq
              #                              || / _--=> preempt-depth                            MAX
              #                              || /                                             SINGLE     Interference counters:
              #                              ||||               RUNTIME      NOISE   % OF CPU  NOISE    +-----------------------------+
              #           TASK-PID      CPU# ||||   TIMESTAMP    IN US       IN US  AVAILABLE  IN US     HW    NMI    IRQ   SIRQ THREAD
              #              | |         |   ||||      |           |             |    |            |      |      |      |      |      |
                         <...>-859     [000] ....    81.637220: 1000000        190  99.98100       9     18      0   1007     18      1
                         <...>-860     [001] ....    81.638154: 1000000        656  99.93440      74     23      0   1006     16      3
                         <...>-861     [002] ....    81.638193: 1000000       5675  99.43250     202      6      0   1013     25     21
                         <...>-862     [003] ....    81.638242: 1000000        125  99.98750      45      1      0   1011     23      0
                         <...>-863     [004] ....    81.638260: 1000000       1721  99.82790     168      7      0   1002     49     41
                         <...>-864     [005] ....    81.638286: 1000000        263  99.97370      57      6      0   1006     26      2
                         <...>-865     [006] ....    81.638302: 1000000        109  99.98910      21      3      0   1006     18      1
                         <...>-866     [007] ....    81.638326: 1000000       7816  99.21840     107      8      0   1016     39     19
      
      In addition to the regular trace fields (from TASK-PID to TIMESTAMP), the
      tracer prints a message at the end of each period for each CPU that is
      running an osnoise/CPU thread. The osnoise specific fields report:
      
       - The RUNTIME IN USE reports the amount of time in microseconds that
         the osnoise thread kept looping reading the time.
       - The NOISE IN US reports the sum of noise in microseconds observed
         by the osnoise tracer during the associated runtime.
       - The % OF CPU AVAILABLE reports the percentage of CPU available for
         the osnoise thread during the runtime window.
       - The MAX SINGLE NOISE IN US reports the maximum single noise observed
         during the runtime window.
       - The Interference counters display how many each of the respective
         interference happened during the runtime window.
      
      Note that the example above shows a high number of HW noise samples.
      The reason being is that this sample was taken on a virtual machine,
      and the host interference is detected as a hardware interference.
      
      Tracer options
      
      The tracer has a set of options inside the osnoise directory, they are:
      
       - osnoise/cpus: CPUs at which a osnoise thread will execute.
       - osnoise/period_us: the period of the osnoise thread.
       - osnoise/runtime_us: how long an osnoise thread will look for noise.
       - osnoise/stop_tracing_us: stop the system tracing if a single noise
         higher than the configured value happens. Writing 0 disables this
         option.
       - osnoise/stop_tracing_total_us: stop the system tracing if total noise
         higher than the configured value happens. Writing 0 disables this
         option.
       - tracing_threshold: the minimum delta between two time() reads to be
         considered as noise, in us. When set to 0, the default value will
         be used, which is currently 5 us.
      
      Additional Tracing
      
      In addition to the tracer, a set of tracepoints were added to
      facilitate the identification of the osnoise source.
      
       - osnoise:sample_threshold: printed anytime a noise is higher than
         the configurable tolerance_ns.
       - osnoise:nmi_noise: noise from NMI, including the duration.
       - osnoise:irq_noise: noise from an IRQ, including the duration.
       - osnoise:softirq_noise: noise from a SoftIRQ, including the
         duration.
       - osnoise:thread_noise: noise from a thread, including the duration.
      
      Note that all the values are *net values*. For example, if while osnoise
      is running, another thread preempts the osnoise thread, it will start a
      thread_noise duration at the start. Then, an IRQ takes place, preempting
      the thread_noise, starting a irq_noise. When the IRQ ends its execution,
      it will compute its duration, and this duration will be subtracted from
      the thread_noise, in such a way as to avoid the double accounting of the
      IRQ execution. This logic is valid for all sources of noise.
      
      Here is one example of the usage of these tracepoints::
      
             osnoise/8-961     [008] d.h.  5789.857532: irq_noise: local_timer:236 start 5789.857529929 duration 1845 ns
             osnoise/8-961     [008] dNh.  5789.858408: irq_noise: local_timer:236 start 5789.858404871 duration 2848 ns
           migration/8-54      [008] d...  5789.858413: thread_noise: migration/8:54 start 5789.858409300 duration 3068 ns
             osnoise/8-961     [008] ....  5789.858413: sample_threshold: start 5789.858404555 duration 8723 ns interferences 2
      
      In this example, a noise sample of 8 microseconds was reported in the last
      line, pointing to two interferences. Looking backward in the trace, the
      two previous entries were about the migration thread running after a
      timer IRQ execution. The first event is not part of the noise because
      it took place one millisecond before.
      
      It is worth noticing that the sum of the duration reported in the
      tracepoints is smaller than eight us reported in the sample_threshold.
      The reason roots in the overhead of the entry and exit code that happens
      before and after any interference execution. This justifies the dual
      approach: measuring thread and tracing.
      
      Link: https://lkml.kernel.org/r/e649467042d60e7b62714c9c6751a56299d15119.1624372313.git.bristot@redhat.com
      
      
      
      Cc: Phil Auld <pauld@redhat.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Kate Carcia <kcarcia@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Alexandre Chartre <alexandre.chartre@oracle.com>
      Cc: Clark Willaims <williams@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Juri Lelli <juri.lelli@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: x86@kernel.org
      Cc: linux-doc@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@redhat.com>
      [
        Made the following functions static:
         trace_irqentry_callback()
         trace_irqexit_callback()
         trace_intel_irqentry_callback()
         trace_intel_irqexit_callback()
      
        Added to include/trace.h:
         osnoise_arch_register()
         osnoise_arch_unregister()
      
        Fixed define logic for LATENCY_FS_NOTIFY
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      ]
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      bce29ac9
    • Steven Rostedt (VMware)'s avatar
      tracing: Add LATENCY_FS_NOTIFY to define if latency_fsnotify() is defined · 6880c987
      Steven Rostedt (VMware) authored
      
      
      With the coming addition of the osnoise tracer, the configs needed to
      include the latency_fsnotify() has become more complex, and to keep the
      declaration in the header file the same as in the C file, just have the
      logic needed to define it in one place, and that defines LATENCY_FS_NOTIFY
      which will be used in the C code.
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      6880c987
    • Steven Rostedt's avatar
      trace: Add __print_ns_to_secs() and __print_ns_without_secs() helpers · 62de4f29
      Steven Rostedt authored
      To have nanosecond output displayed in a more human readable format, its
      nicer to convert it to a seconds format (XXX.YYYYYYYYY). The problem is that
      to do so, the numbers must be divided by NSEC_PER_SEC, and moded too. But as
      these numbers are 64 bit, this can not be done simply with '/' and '%'
      operators, but must use do_div() instead.
      
      Instead of performing the expensive do_div() in the hot path of the
      tracepoint, it is more efficient to perform it during the output phase. But
      passing in do_div() can confuse the parser, and do_div() doesn't work
      exactly like a normal C function. It modifies the number in place, and we
      don't want to modify the actual values in the ring buffer.
      
      Two helper functions are now created:
      
        __print_ns_to_secs() and __print_ns_without_secs()
      
      They both take a value of nanoseconds, and the former will return that
      number divided by NSEC_PER_SEC, and the latter will mod it with NSEC_PER_SEC
      giving a way to print a nice human readable format:
      
       __print_fmt("time=%llu.%09u",
      	__print_ns_to_secs(REC->nsec_val),
      	__print_ns_without_secs(REC->nsec_val))
      
      Link: https://lkml.kernel.org/r/e503b903045496c4ccde52843e1e318b422f7a56.1624372313.git.bristot@redhat.com
      
      
      
      Cc: Phil Auld <pauld@redhat.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Kate Carcia <kcarcia@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Alexandre Chartre <alexandre.chartre@oracle.com>
      Cc: Clark Willaims <williams@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Juri Lelli <juri.lelli@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: x86@kernel.org
      Cc: linux-doc@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@redhat.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      62de4f29
    • Daniel Bristot de Oliveira's avatar
      trace/hwlat: Remove printk from sampling loop · aa892f8c
      Daniel Bristot de Oliveira authored
      hwlat has some time operation checks on the sample loop, and it is
      currently using pr_err (printk) to report them. The problem is that
      this can lead the system to an unresponsible state due to an overflow of
      printk messages. This problem can be mitigated by writing the error
      message to the trace buffer.
      
      Remove the printk messages from the sampling loop, switching the to
      messages in the trace buffer.
      
      No functional change.
      
      Link: https://lkml.kernel.org/r/9d77c34869748aa105e965c769d24642914eea3a.1624372313.git.bristot@redhat.com
      
      
      
      Cc: Phil Auld <pauld@redhat.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Kate Carcia <kcarcia@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Alexandre Chartre <alexandre.chartre@oracle.com>
      Cc: Clark Willaims <williams@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Juri Lelli <juri.lelli@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: x86@kernel.org
      Cc: linux-doc@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@redhat.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      aa892f8c
    • Daniel Bristot de Oliveira's avatar
      trace/hwlat: Use trace_min_max_param for width and window params · f27a1c9e
      Daniel Bristot de Oliveira authored
      Use the trace_min_max_param to reduce code duplication.
      
      No functional change.
      
      Link: https://lkml.kernel.org/r/b91accd5a7c6c14ea02d3379aae974ba22b47dd6.1624372313.git.bristot@redhat.com
      
      
      
      Cc: Phil Auld <pauld@redhat.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Kate Carcia <kcarcia@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Alexandre Chartre <alexandre.chartre@oracle.com>
      Cc: Clark Willaims <williams@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Juri Lelli <juri.lelli@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: x86@kernel.org
      Cc: linux-doc@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@redhat.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      f27a1c9e
    • Daniel Bristot de Oliveira's avatar
      trace: Add a generic function to read/write u64 values from tracefs · bc87cf0a
      Daniel Bristot de Oliveira authored
      The hwlat detector and (in preparation for) the osnoise/timerlat tracers
      have a set of u64 parameters that the user can read/write via tracefs.
      For instance, we have hwlat_detector's window and width.
      
      To reduce the code duplication, hwlat's window and width share the same
      read function. However, they do not share the write functions because
      they do different parameter checks. For instance, the width needs to
      be smaller than the window, while the window needs to be larger
      than the window. The same pattern repeats on osnoise/timerlat, and
      a large portion of the code was devoted to the write function.
      
      Despite having different checks, the write functions have the same
      structure:
      
         read a user-space buffer
         take the lock that protects the value
         check for minimum and maximum acceptable values
            save the value
         release the lock
         return success or error
      
      To reduce the code duplication also in the write functions, this patch
      provides a generic read and write implementation for u64 values that
      need to be within some minimum and/or maximum parameters, while
      (potentially) being protected by a lock.
      
      To use this interface, the structure trace_min_max_param needs to be
      filled:
      
       struct trace_min_max_param {
               struct mutex    *lock;
               u64             *val;
               u64             *min;
               u64             *max;
       };
      
      The desired value is stored on the variable pointed by *val. If *min
      points to a minimum acceptable value, it will be checked during the
      write operation. Likewise, if *max points to a maximum allowable value,
      it will be checked during the write operation. Finally, if *lock points
      to a mutex, it will be taken at the beginning of the operation and
      released at the end.
      
      The definition of a trace_min_max_param needs to passed as the
      (private) *data for tracefs_create_file(), and the trace_min_max_fops
      (added by this patch) as the *fops file_operations.
      
      Link: https://lkml.kernel.org/r/3e35760a7c8b5c55f16ae5ad5fc54a0e71cbe647.1624372313.git.bristot@redhat.com
      
      
      
      Cc: Phil Auld <pauld@redhat.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Kate Carcia <kcarcia@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Alexandre Chartre <alexandre.chartre@oracle.com>
      Cc: Clark Willaims <williams@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Juri Lelli <juri.lelli@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: x86@kernel.org
      Cc: linux-doc@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@redhat.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      bc87cf0a
    • Daniel Bristot de Oliveira's avatar
      trace/hwlat: Implement the per-cpu mode · f46b1652
      Daniel Bristot de Oliveira authored
      
      
      Implements the per-cpu mode in which a sampling thread is created for
      each cpu in the "cpus" (and tracing_mask).
      
      The per-cpu mode has the potention to speed up the hwlat detection by
      running on multiple CPUs at the same time, at the cost of higher cpu
      usage with irqs disabled. Use with care.
      
      [
        Changed get_cpu_data() to static.
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      ]
      
      Link: https://lkml.kernel.org/r/ec06d0ab340e8460d293772faba19ad8a5c371aa.1624372313.git.bristot@redhat.com
      
      
      
      Cc: Phil Auld <pauld@redhat.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Kate Carcia <kcarcia@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Alexandre Chartre <alexandre.chartre@oracle.com>
      Cc: Clark Willaims <williams@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Juri Lelli <juri.lelli@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: x86@kernel.org
      Cc: linux-doc@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@redhat.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      f46b1652
  2. Jun 25, 2021
  3. Jun 18, 2021
    • Steven Rostedt (VMware)'s avatar
      tracing: Have ftrace_dump_on_oops kernel parameter take numbers · 2db7ab6b
      Steven Rostedt (VMware) authored
      
      
      The kernel parameter for ftrace_dump_on_oops can take a single assignment.
      That is, it can be:
      
        ftrace_dump_on_oops or ftrace_dump_on_oops=orig_cpu
      
      But the content in the sysctl file is a number.
      
       0 for disabled
       1 for ftrace_dump_on_oops (all CPUs)
       2 for ftrace_dump_on_oops (orig CPU)
      
      Allow the kernel command line to take a number as well to match the sysctl
      numbers.
      
      That is:
      
        ftrace_dump_on_oops=1 is the same as ftrace_dump_on_oops
      
      and
      
        ftrace_dump_on_oops=2 is the same as ftrace_dump_on_oops=orig_cpu
      
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      2db7ab6b
  4. Jun 17, 2021
  5. Jun 11, 2021
  6. Jun 10, 2021
  7. Jun 09, 2021
  8. Jun 07, 2021
    • Linus Torvalds's avatar
      Linux 5.13-rc5 · 614124be
      Linus Torvalds authored
      614124be
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 90d56a3d
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Five small and fairly minor fixes, all in drivers"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V
        scsi: ufs: ufs-mediatek: Fix HCI version in some platforms
        scsi: qedf: Do not put host in qedf_vport_create() unconditionally
        scsi: lpfc: Fix failure to transmit ABTS on FC link
        scsi: target: core: Fix warning on realtime kernels
      90d56a3d
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 20e41d9b
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Miscellaneous ext4 bug fixes"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: Only advertise encrypted_casefold when encryption and unicode are enabled
        ext4: fix no-key deletion for encrypt+casefold
        ext4: fix memory leak in ext4_fill_super
        ext4: fix fast commit alignment issues
        ext4: fix bug on in ext4_es_cache_extent as ext4_split_extent_at failed
        ext4: fix accessing uninit percpu counter variable with fast_commit
        ext4: fix memory leak in ext4_mb_init_backend on error path.
      20e41d9b
    • Linus Torvalds's avatar
      Merge tag 'arm-soc-fixes-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · decad3e1
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A set of fixes that have been coming in over the last few weeks, the
        usual mix of fixes:
      
         - DT fixups for TI K3
      
         - SATA drive detection fix for TI DRA7
      
         - Power management fixes and a few build warning removals for OMAP
      
         - OP-TEE fix to use standard API for UUID exporting
      
         - DT fixes for a handful of i.MX boards
      
        And a few other smaller items"
      
      * tag 'arm-soc-fixes-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (29 commits)
        arm64: meson: select COMMON_CLK
        soc: amlogic: meson-clk-measure: remove redundant dev_err call in meson_msr_probe()
        ARM: OMAP1: ams-delta: remove unused function ams_delta_camera_power
        bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act
        ARM: dts: imx: emcon-avari: Fix nxp,pca8574 #gpio-cells
        ARM: dts: imx7d-pico: Fix the 'tuning-step' property
        ARM: dts: imx7d-meerkat96: Fix the 'tuning-step' property
        arm64: dts: freescale: sl28: var1: fix RGMII clock and voltage
        arm64: dts: freescale: sl28: var4: fix RGMII clock and voltage
        ARM: imx: pm-imx27: Include "common.h"
        arm64: dts: zii-ultra: fix 12V_MAIN voltage
        arm64: dts: zii-ultra: remove second GEN_3V3 regulator instance
        arm64: dts: ls1028a: fix memory node
        bus: ti-sysc: Fix am335x resume hang for usb otg module
        ARM: OMAP2+: Fix build warning when mmc_omap is not built
        ARM: OMAP1: isp1301-omap: Add missing gpiod_add_lookup_table function
        ARM: OMAP1: Fix use of possibly uninitialized irq variable
        optee: use export_uuid() to copy client UUID
        arm64: dts: ti: k3*: Introduce reg definition for interrupt routers
        arm64: dts: ti: k3-am65|j721e|am64: Map the dma / navigator subsystem via explicit ranges
        ...
      decad3e1
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.13-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · bd7b12aa
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Fix our KVM reverse map real-mode handling since we enabled huge
        vmalloc (in some configurations).
      
        Revert a recent change to our IOMMU code which broke some devices.
      
        Fix KVM handling of FSCR on P7/P8, which could have possibly let a
        guest crash it's Qemu.
      
        Fix kprobes validation of prefixed instructions across page boundary.
      
        Thanks to Alexey Kardashevskiy, Christophe Leroy, Fabiano Rosas,
        Frederic Barrat, Naveen N. Rao, and Nicholas Piggin"
      
      * tag 'powerpc-5.13-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        Revert "powerpc/kernel/iommu: Align size for IOMMU_PAGE_SIZE() to save TCEs"
        KVM: PPC: Book3S HV: Save host FSCR in the P7/8 path
        powerpc: Fix reverse map real-mode address lookup with huge vmalloc
        powerpc/kprobes: Fix validation of prefixed instructions across page boundary
      bd7b12aa
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 773ac53b
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
       "A bunch of x86/urgent stuff accumulated for the last two weeks so
        lemme unload it to you.
      
        It should be all totally risk-free, of course. :-)
      
         - Fix out-of-spec hardware (1st gen Hygon) which does not implement
           MSR_AMD64_SEV even though the spec clearly states so, and check
           CPUID bits first.
      
         - Send only one signal to a task when it is a SEGV_PKUERR si_code
           type.
      
         - Do away with all the wankery of reserving X amount of memory in the
           first megabyte to prevent BIOS corrupting it and simply and
           unconditionally reserve the whole first megabyte.
      
         - Make alternatives NOP optimization work at an arbitrary position
           within the patched sequence because the compiler can put
           single-byte NOPs for alignment anywhere in the sequence (32-bit
           retpoline), vs our previous assumption that the NOPs are only
           appended.
      
         - Force-disable ENQCMD[S] instructions support and remove
           update_pasid() because of insufficient protection against FPU state
           modification in an interrupt context, among other xstate horrors
           which are being addressed at the moment. This one limits the
           fallout until proper enablement.
      
         - Use cpu_feature_enabled() in the idxd driver so that it can be
           build-time disabled through the defines in disabled-features.h.
      
         - Fix LVT thermal setup for SMI delivery mode by making sure the APIC
           LVT value is read before APIC initialization so that softlockups
           during boot do not happen at least on one machine.
      
         - Mark all legacy interrupts as legacy vectors when the IO-APIC is
           disabled and when all legacy interrupts are routed through the PIC"
      
      * tag 'x86_urgent_for_v5.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sev: Check SME/SEV support in CPUID first
        x86/fault: Don't send SIGSEGV twice on SEGV_PKUERR
        x86/setup: Always reserve the first 1M of RAM
        x86/alternative: Optimize single-byte NOPs at an arbitrary position
        x86/cpufeatures: Force disable X86_FEATURE_ENQCMD and remove update_pasid()
        dmaengine: idxd: Use cpu_feature_enabled()
        x86/thermal: Fix LVT thermal setup for SMI delivery mode
        x86/apic: Mark _all_ legacy interrupts when IO/APIC is missing
      773ac53b