1. 26 Aug, 2024 8 commits
    • Steven Rostedt's avatar
      tracing/Documentation: Start a document on how to debug with tracing · 2fcd5aff
      Steven Rostedt authored
      Add a new document Documentation/trace/debugging.rst that will hold
      various ways to debug tracing.
      
      This initial version mentions trace_printk and how to create persistent
      buffers that can last across bootups.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Vincent Donnefort <vdonnefort@google.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vineeth Pillai <vineeth@bitbyteword.org>
      Cc: Beau Belgrave <beaub@linux.microsoft.com>
      Cc: Alexander Graf <graf@amazon.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mike Rapoport <rppt@kernel.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Ross Zwisler <zwisler@google.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Alexander Aring <aahringo@redhat.com>
      Cc: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com>
      Cc: Tomas Glozar <tglozar@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Clark Williams <williams@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: "Jonathan Corbet" <corbet@lwn.net>
      Link: https://lore.kernel.org/20240823014019.702433486@goodmis.orgSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      2fcd5aff
    • Steven Rostedt's avatar
      tracing: Add option to set an instance to be the trace_printk destination · ef2bd81d
      Steven Rostedt authored
      Add a option "trace_printk_dest" that will make the tracing instance the
      location that trace_printk() will go to. This is useful if the
      trace_printk or one of the top level tracers is too noisy and there's a
      need to separate the two. Then an instance can be created, the
      trace_printk can be set to go there instead, where it will not be lost in
      the noise of the top level tracer.
      
      Note, only one instance can be the destination of trace_printk at a time.
      If an instance sets this flag, the instance that had it set will have it
      cleared. There is always one instance that has this set. By default, that
      is the top instance. This flag cannot be cleared from the top instance.
      Doing so will result in an -EINVAL. The only way this flag can be cleared
      from the top instance is by another instance setting it.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Vincent Donnefort <vdonnefort@google.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vineeth Pillai <vineeth@bitbyteword.org>
      Cc: Beau Belgrave <beaub@linux.microsoft.com>
      Cc: Alexander Graf <graf@amazon.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mike Rapoport <rppt@kernel.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Ross Zwisler <zwisler@google.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Alexander Aring <aahringo@redhat.com>
      Cc: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com>
      Cc: Tomas Glozar <tglozar@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Clark Williams <williams@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: "Jonathan Corbet" <corbet@lwn.net>
      Link: https://lore.kernel.org/20240823014019.545459018@goodmis.orgSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      ef2bd81d
    • Steven Rostedt's avatar
      tracing: Have trace_printk not use binary prints if boot buffer · 9b7bdf6f
      Steven Rostedt authored
      If the persistent boot mapped ring buffer is used for trace_printk(),
      force it to not use the binary versions. trace_printk() by default uses
      bin_printf() that only saves the pointer to the format and not the format
      itself inside the ring buffer. But for a persistent buffer that is read
      after reboot, the pointers to the format strings may not be the same, or
      worse, not even exist! Instead, just force the more robust, but slower,
      version that does the formatting before saving into the ring buffer.
      
      The boot mapped buffer can now be used for trace_printk and friends!
      
      Using the trace_printk() and the persistent buffer was used to debug the
      issue with the osnoise tracer:
      
      Link: https://lore.kernel.org/all/20240822103443.6a6ae051@gandalf.local.home/
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Vincent Donnefort <vdonnefort@google.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vineeth Pillai <vineeth@bitbyteword.org>
      Cc: Beau Belgrave <beaub@linux.microsoft.com>
      Cc: Alexander Graf <graf@amazon.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mike Rapoport <rppt@kernel.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Ross Zwisler <zwisler@google.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Alexander Aring <aahringo@redhat.com>
      Cc: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com>
      Cc: Tomas Glozar <tglozar@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Clark Williams <williams@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: "Jonathan Corbet" <corbet@lwn.net>
      Link: https://lore.kernel.org/20240823014019.386925800@goodmis.orgSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      9b7bdf6f
    • Steven Rostedt's avatar
      tracing: Allow trace_printk() to go to other instance buffers · ddb8ea9e
      Steven Rostedt authored
      Currently, trace_printk() just goes to the top level ring buffer. But
      there may be times that it should go to one of the instances created by
      the kernel command line.
      
      Add a new trace_instance flag: traceprintk (also can use "printk" or
      "trace_printk" as people tend to forget the actual flag name).
      
        trace_instance=foo^traceprintk
      
      Will assign the trace_printk to this buffer at boot up.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Vincent Donnefort <vdonnefort@google.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vineeth Pillai <vineeth@bitbyteword.org>
      Cc: Beau Belgrave <beaub@linux.microsoft.com>
      Cc: Alexander Graf <graf@amazon.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mike Rapoport <rppt@kernel.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Ross Zwisler <zwisler@google.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Alexander Aring <aahringo@redhat.com>
      Cc: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com>
      Cc: Tomas Glozar <tglozar@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Clark Williams <williams@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: "Jonathan Corbet" <corbet@lwn.net>
      Link: https://lore.kernel.org/20240823014019.226694946@goodmis.orgSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      ddb8ea9e
    • Steven Rostedt's avatar
      tracing: Add "traceoff" flag to boot time tracing instances · b6fc31b6
      Steven Rostedt authored
      Add a "flags" delimiter (^) to the "trace_instance" kernel command line
      parameter, and add the "traceoff" flag. The format is:
      
         trace_instance=<name>[^<flag1>[^<flag2>]][@<memory>][,<events>]
      
      The code allows for more than one flag to be added, but currently only
      "traceoff" is done so.
      
      The motivation for this change came from debugging with the persistent
      ring buffer and having trace_printk() writing to it. The trace_printk
      calls are always enabled, and the boot after the crash was having the
      unwanted trace_printks from the current boot inject into the ring buffer
      with the trace_printks of the crash kernel, making the output very
      confusing.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Vincent Donnefort <vdonnefort@google.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vineeth Pillai <vineeth@bitbyteword.org>
      Cc: Beau Belgrave <beaub@linux.microsoft.com>
      Cc: Alexander Graf <graf@amazon.com>
      Cc: Baoquan He <bhe@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Mike Rapoport <rppt@kernel.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Ross Zwisler <zwisler@google.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Alexander Aring <aahringo@redhat.com>
      Cc: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com>
      Cc: Tomas Glozar <tglozar@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Clark Williams <williams@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: "Jonathan Corbet" <corbet@lwn.net>
      Link: https://lore.kernel.org/20240823014019.053229958@goodmis.orgSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      b6fc31b6
    • Vincent Donnefort's avatar
      ring-buffer: Align meta-page to sub-buffers for improved TLB usage · eb2dcde9
      Vincent Donnefort authored
      Previously, the mapped ring-buffer layout caused misalignment between
      the meta-page and sub-buffers when the sub-buffer size was not a
      multiple of PAGE_SIZE. This prevented hardware with larger TLB entries
      from utilizing them effectively.
      
      Add a padding with the zero-page between the meta-page and sub-buffers.
      Also update the ring-buffer map_test to verify that padding.
      
      Link: https://lore.kernel.org/20240628104611.1443542-1-vdonnefort@google.comSigned-off-by: default avatarVincent Donnefort <vdonnefort@google.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      eb2dcde9
    • Steven Rostedt's avatar
      ring-buffer: Add magic and struct size to boot up meta data · d0f2d6e9
      Steven Rostedt authored
      Add a magic number as well as save the struct size of the ring_buffer_meta
      structure in the meta data to also use as validation. Updating the magic
      number could be used to force a invalidation between kernel versions, and
      saving the structure size is also a good method to make sure the content
      is what is expected.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Vincent Donnefort <vdonnefort@google.com>
      Link: https://lore.kernel.org/20240815115032.0c197b32@rorschach.local.homeSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      d0f2d6e9
    • Steven Rostedt's avatar
      ring-buffer: Don't reset persistent ring-buffer meta saved addresses · bca704f6
      Steven Rostedt authored
      The text and data address is saved in the meta data so that it can be used
      to know the delta of the text and data addresses of the last boot compared
      to the text and data addresses of the current boot. The delta is used to
      convert function pointer entries in the ring buffer to something that can
      be used by kallsyms (note this only works for built-in functions).
      
      But the saved addresses get reset on boot up. If the buffer is not used
      and there's another reboot, then the saved text and data addresses will be
      of the last boot and not that of the boot that created the content in the
      ring buffer.
      
      To get an idea of the issue:
      
       # trace-cmd start -B boot_mapped -p function
       # reboot
       # trace-cmd show -B boot_mapped | tail
                 <...>-1       [000] d..1.   461.983243: native_apic_msr_write <-native_kick_ap
                 <...>-1       [000] d..1.   461.983244: __pfx_native_apic_msr_eoi <-native_kick_ap
                 <...>-1       [000] d..1.   461.983244: reserve_irq_vector_locked <-native_kick_ap
                 <...>-1       [000] d..1.   461.983262: branch_emulate_op <-native_kick_ap
                 <...>-1       [000] d..1.   461.983262: __ia32_sys_ia32_pread64 <-native_kick_ap
                 <...>-1       [000] d..1.   461.983263: native_kick_ap <-__smpboot_create_thread
                 <...>-1       [000] d..1.   461.983263: store_cache_disable <-native_kick_ap
                 <...>-1       [000] d..1.   461.983279: acpi_power_off_prepare <-native_kick_ap
                 <...>-1       [000] d..1.   461.983280: __pfx_acpi_ns_delete_node <-acpi_suspend_enter
                 <...>-1       [000] d..1.   461.983280: __pfx_acpi_os_release_lock <-acpi_suspend_enter
       # reboot
       # trace-cmd show -B boot_mapped  |tail
                 <...>-1       [000] d..1.   461.983243: 0xffffffffa9669220 <-0xffffffffa965f3db
                 <...>-1       [000] d..1.   461.983244: 0xffffffffa96690f0 <-0xffffffffa965f3db
                 <...>-1       [000] d..1.   461.983244: 0xffffffffa9663fa0 <-0xffffffffa965f3db
                 <...>-1       [000] d..1.   461.983262: 0xffffffffa9672e80 <-0xffffffffa965f3e0
                 <...>-1       [000] d..1.   461.983262: 0xffffffffa962b940 <-0xffffffffa965f3ec
                 <...>-1       [000] d..1.   461.983263: 0xffffffffa965f540 <-0xffffffffa96e1362
                 <...>-1       [000] d..1.   461.983263: 0xffffffffa963c940 <-0xffffffffa965f55b
                 <...>-1       [000] d..1.   461.983279: 0xffffffffa9ee30c0 <-0xffffffffa965f59b
                 <...>-1       [000] d..1.   461.983280: 0xffffffffa9f16c10 <-0xffffffffa9ee3157
                 <...>-1       [000] d..1.   461.983280: 0xffffffffa9ee02e0 <-0xffffffffa9ee3157
      
      By not updating the saved text and data addresses in the meta data at
      every boot up and only updating them when the buffer is reset, it
      allows multiple boots to see the same data.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Vincent Donnefort <vdonnefort@google.com>
      Link: https://lore.kernel.org/20240815113629.0dc90af8@rorschach.local.homeSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      bca704f6
  2. 15 Aug, 2024 2 commits
    • Steven Rostedt's avatar
      tracing/fgraph: Have fgraph handle previous boot function addresses · 4c57d0be
      Steven Rostedt authored
      Update the function graph code to modify the function addresses for a
      previous boot buffer so that it matches the current kallsyms (note this
      does not handle module addresses, yet).
      
      After a reboot, instead of seeing:
      
       # trace-cmd show -B boot_mapped | tail -n30
             swapper/0-1       [000] d..2.    56.286470:  0)   0.481 us    |                    0xffffffff925da5c4();
             swapper/0-1       [000] d....    56.286471:  0)   4.065 us    |                  }
             swapper/0-1       [000] d....    56.286471:  0)   4.920 us    |                }
             swapper/0-1       [000] d..1.    56.286472:  0)               |                0xffffffff92536254() {
             swapper/0-1       [000] d..1.    56.286472:  0) + 28.974 us   |                  0xffffffff92534e30();
             swapper/0-1       [000] d....    56.286516:  0) + 43.881 us   |                }
             swapper/0-1       [000] d..1.    56.286517:  0)               |                0xffffffff925136c4() {
             swapper/0-1       [000] d..1.    56.286518:  0)               |                  0xffffffff92514a14() {
             swapper/0-1       [000] d..1.    56.286518:  0)   6.003 us    |                    0xffffffff92514200();
             swapper/0-1       [000] d....    56.286529:  0) + 11.510 us   |                  }
             swapper/0-1       [000] d....    56.286529:  0) + 12.895 us   |                }
             swapper/0-1       [000] d....    56.286530:  0) ! 382.884 us  |              }
             swapper/0-1       [000] d..1.    56.286530:  0)               |              0xffffffff92536444() {
             swapper/0-1       [000] d..1.    56.286531:  0)               |                0xffffffff92536254() {
             swapper/0-1       [000] d..1.    56.286531:  0) + 26.335 us   |                  0xffffffff92534e30();
             swapper/0-1       [000] d....    56.286560:  0) + 29.511 us   |                }
             swapper/0-1       [000] d....    56.286561:  0) + 30.452 us   |              }
             swapper/0-1       [000] d..1.    56.286562:  0)               |              0xffffffff9253c014() {
             swapper/0-1       [000] d..1.    56.286562:  0)               |                0xffffffff9253bed4() {
             swapper/0-1       [000] d..1.    56.286563:  0) + 13.465 us   |                  0xffffffff92536684();
             swapper/0-1       [000] d....    56.286577:  0) + 14.651 us   |                }
             swapper/0-1       [000] d....    56.286577:  0) + 15.821 us   |              }
             swapper/0-1       [000] d..1.    56.286578:  0)   0.667 us    |              0xffffffff92547074();
             swapper/0-1       [000] d..1.    56.286579:  0)   0.453 us    |              0xffffffff924f35c4();
             swapper/0-1       [000] d....    56.286580:  0) # 3906.348 us |            }
             swapper/0-1       [000] d..1.    56.286581:  0)               |            0xffffffff92531a14() {
             swapper/0-1       [000] d..1.    56.286581:  0)   0.518 us    |              0xffffffff92505cb4();
             swapper/0-1       [000] d..1.    56.286595:  0)               |              0xffffffff92db83c4() {
             swapper/0-1       [000] d..1.    56.286596:  0)               |                0xffffffff92dec2e4() {
             swapper/0-1       [000] d..1.    56.286597:  0)               |                  0xffffffff92db5304() {
      
      It now shows:
      
       # trace-cmd show -B boot_mapped | tail -n30
             swapper/0-1       [000] d..2.   363.079099:  0)   0.483 us    |                    preempt_count_sub();
             swapper/0-1       [000] d....   363.079100:  0)   4.112 us    |                  }
             swapper/0-1       [000] d....   363.079101:  0)   4.979 us    |                }
             swapper/0-1       [000] d..1.   363.079101:  0)               |                disable_local_APIC() {
             swapper/0-1       [000] d..1.   363.079102:  0) + 29.153 us   |                  clear_local_APIC.part.0();
             swapper/0-1       [000] d....   363.079148:  0) + 46.517 us   |                }
             swapper/0-1       [000] d..1.   363.079149:  0)               |                mcheck_cpu_clear() {
             swapper/0-1       [000] d..1.   363.079149:  0)               |                  mce_intel_feature_clear() {
             swapper/0-1       [000] d..1.   363.079150:  0)   5.871 us    |                    lmce_supported();
             swapper/0-1       [000] d....   363.079161:  0) + 11.340 us   |                  }
             swapper/0-1       [000] d....   363.079161:  0) + 12.638 us   |                }
             swapper/0-1       [000] d....   363.079162:  0) ! 383.518 us  |              }
             swapper/0-1       [000] d..1.   363.079162:  0)               |              lapic_shutdown() {
             swapper/0-1       [000] d..1.   363.079163:  0)               |                disable_local_APIC() {
             swapper/0-1       [000] d..1.   363.079163:  0) + 26.144 us   |                  clear_local_APIC.part.0();
             swapper/0-1       [000] d....   363.079192:  0) + 29.424 us   |                }
             swapper/0-1       [000] d....   363.079192:  0) + 30.376 us   |              }
             swapper/0-1       [000] d..1.   363.079193:  0)               |              restore_boot_irq_mode() {
             swapper/0-1       [000] d..1.   363.079194:  0)               |                native_restore_boot_irq_mode() {
             swapper/0-1       [000] d..1.   363.079194:  0) + 13.863 us   |                  disconnect_bsp_APIC();
             swapper/0-1       [000] d....   363.079209:  0) + 14.933 us   |                }
             swapper/0-1       [000] d....   363.079209:  0) + 16.009 us   |              }
             swapper/0-1       [000] d..1.   363.079210:  0)   0.694 us    |              hpet_disable();
             swapper/0-1       [000] d..1.   363.079211:  0)   0.511 us    |              iommu_shutdown_noop();
             swapper/0-1       [000] d....   363.079212:  0) # 3980.260 us |            }
             swapper/0-1       [000] d..1.   363.079212:  0)               |            native_machine_emergency_restart() {
             swapper/0-1       [000] d..1.   363.079213:  0)   0.495 us    |              tboot_shutdown();
             swapper/0-1       [000] d..1.   363.079230:  0)               |              acpi_reboot() {
             swapper/0-1       [000] d..1.   363.079231:  0)               |                acpi_reset() {
             swapper/0-1       [000] d..1.   363.079232:  0)               |                  acpi_os_write_port() {
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Ross Zwisler <zwisler@google.com>
      Cc: Vincent Donnefort <vdonnefort@google.com>
      Link: https://lore.kernel.org/20240813171257.478901820@goodmis.orgSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      4c57d0be
    • Steven Rostedt (Google)'s avatar
      tracing: Allow boot instances to use reserve_mem boot memory · 29a02ec6
      Steven Rostedt (Google) authored
      Allow boot instances to use memory reserved by the reserve_mem boot
      option.
      
        reserve_mem=12M:4096:trace  trace_instance=boot_mapped@trace
      
      The above will allocate 12 megs with 4096 alignment and label it "trace".
      The second parameter will create a "boot_mapped" instance and use the
      memory reserved and labeled as "trace" as the memory for the ring buffer.
      
      That will create an instance called "boot_mapped":
      
        /sys/kernel/tracing/instances/boot_mapped
      
      Note, because the ring buffer is using a defined memory ranged, it will
      act just like a memory mapped ring buffer. It will not have a snapshot
      buffer, as it can't swap out the buffer. The snapshot files as well as any
      tracers that uses a snapshot will not be present in the boot_mapped
      instance.
      
      Also note that reserve_mem is not reliable in acquiring the same physical
      memory at each soft reboot. It is possible that KALSR could map the kernel
      at the previous boot memory location forcing the reserve_mem to return a
      different memory location. In this case, the previous ring buffer will be
      lost.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Ross Zwisler <zwisler@google.com>
      Cc: Vincent Donnefort <vdonnefort@google.com>
      Link: https://lore.kernel.org/20240815082811.669f7d8c@gandalf.local.homeSigned-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      29a02ec6
  3. 14 Aug, 2024 2 commits
  4. 11 Aug, 2024 9 commits
    • Linus Torvalds's avatar
      Linux 6.11-rc3 · 7c626ce4
      Linus Torvalds authored
      7c626ce4
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2024-08-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7006fe2f
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
      
       - Fix 32-bit PTI for real.
      
         pti_clone_entry_text() is called twice, once before initcalls so that
         initcalls can use the user-mode helper and then again after text is
         set read only. Setting read only on 32-bit might break up the PMD
         mapping, which makes the second invocation of pti_clone_entry_text()
         find the mappings out of sync and failing.
      
         Allow the second call to split the existing PMDs in the user mapping
         and synchronize with the kernel mapping.
      
       - Don't make acpi_mp_wake_mailbox read-only after init as the mail box
         must be writable in the case that CPU hotplug operations happen after
         boot. Otherwise the attempt to start a CPU crashes with a write to
         read only memory.
      
       - Add a missing sanity check in mtrr_save_state() to ensure that the
         fixed MTRR MSRs are supported.
      
         Otherwise mtrr_save_state() ends up in a #GP, which is fixed up, but
         the WARN_ON() can bring systems down when panic on warn is set.
      
      * tag 'x86-urgent-2024-08-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mtrr: Check if fixed MTRRs exist before saving them
        x86/paravirt: Fix incorrect virt spinlock setting on bare metal
        x86/acpi: Remove __ro_after_init from acpi_mp_wake_mailbox
        x86/mm: Fix PTI for i386 some more
      7006fe2f
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2024-08-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7270e931
      Linus Torvalds authored
      Pull time keeping fixes from Thomas Gleixner:
      
       - Fix a couple of issues in the NTP code where user supplied values are
         neither sanity checked nor clamped to the operating range. This
         results in integer overflows and eventualy NTP getting out of sync.
      
         According to the history the sanity checks had been removed in favor
         of clamping the values, but the clamping never worked correctly under
         all circumstances. The NTP people asked to not bring the sanity
         checks back as it might break existing applications.
      
         Make the clamping work correctly and add it where it's missing
      
       - If adjtimex() sets the clock it has to trigger the hrtimer subsystem
         so it can adjust and if the clock was set into the future expire
         timers if needed. The caller should provide a bitmask to tell
         hrtimers which clocks have been adjusted.
      
         adjtimex() uses not the proper constant and uses CLOCK_REALTIME
         instead, which is 0. So hrtimers adjusts only the clocks, but does
         not check for expired timers, which might make them expire really
         late. Use the proper bitmask constant instead.
      
      * tag 'timers-urgent-2024-08-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timekeeping: Fix bogus clock_was_set() invocation in do_adjtimex()
        ntp: Safeguard against time_constant overflow
        ntp: Clamp maxerror and esterror to operating range
      7270e931
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2024-08-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 56fe0a6a
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "Three small fixes for interrupt core and drivers:
      
         - The interrupt core fails to honor caller supplied affinity hints
           for non-managed interrupts and uses the system default affinity on
           startup instead. Set the missing flag in the descriptor to tell the
           core to use the provided affinity.
      
         - Fix a shift out of bounds error in the Xilinx driver
      
         - Handle switching to level trigger correctly in the RISCV APLIC
           driver. It failed to retrigger the interrupt which causes it to
           become stale"
      
      * tag 'irq-urgent-2024-08-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/riscv-aplic: Retrigger MSI interrupt on source configuration
        irqchip/xilinx: Fix shift out of bounds
        genirq/irqdesc: Honor caller provided affinity in alloc_desc()
      56fe0a6a
    • Linus Torvalds's avatar
      Merge tag 'usb-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · cb2e5ee8
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a number of small USB driver fixes for reported issues for
        6.11-rc3. Included in here are:
      
         - usb serial driver MODULE_DESCRIPTION() updates
      
         - usb serial driver fixes
      
         - typec driver fixes
      
         - usb-ip driver fix
      
         - gadget driver fixes
      
         - dt binding update
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: ucsi: Fix a deadlock in ucsi_send_command_common()
        usb: typec: tcpm: avoid sink goto SNK_UNATTACHED state if not received source capability message
        usb: gadget: f_fs: pull out f->disable() from ffs_func_set_alt()
        usb: gadget: f_fs: restore ffs_func_disable() functionality
        USB: serial: debug: do not echo input by default
        usb: typec: tipd: Delete extra semi-colon
        usb: typec: tipd: Fix dereferencing freeing memory in tps6598x_apply_patch()
        usb: gadget: u_serial: Set start_delayed during suspend
        usb: typec: tcpci: Fix error code in tcpci_check_std_output_cap()
        usb: typec: fsa4480: Check if the chip is really there
        usb: gadget: core: Check for unset descriptor
        usb: vhci-hcd: Do not drop references before new references are gained
        usb: gadget: u_audio: Check return codes from usb_ep_enable and config_ep_by_speed.
        usb: gadget: midi2: Fix the response for FB info with block 0xff
        dt-bindings: usb: microchip,usb2514: Add USB2517 compatible
        USB: serial: garmin_gps: use struct_size() to allocate pkt
        USB: serial: garmin_gps: annotate struct garmin_packet with __counted_by
        USB: serial: add missing MODULE_DESCRIPTION() macros
        USB: serial: spcp8x5: remove unused struct 'spcp8x5_usb_ctrl_arg'
      cb2e5ee8
    • Linus Torvalds's avatar
      Merge tag 'tty-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 42b34a8d
      Linus Torvalds authored
      Pull tty / serial driver fixes from Greg KH:
       "Here are some small tty and serial driver fixes for reported problems
        for 6.11-rc3. Included in here are:
      
         - sc16is7xx serial driver fixes
      
         - uartclk bugfix for a divide by zero issue
      
         - conmakehash userspace build issue fix
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: vt: conmakehash: cope with abs_srctree no longer in env
        serial: sc16is7xx: fix invalid FIFO access with special register set
        serial: sc16is7xx: fix TX fifo corruption
        serial: core: check uartclk for zero to avoid divide by zero
      42b34a8d
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.11-rc3' of... · 84e6da57
      Linus Torvalds authored
      Merge tag 'driver-core-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core / documentation fixes from Greg KH:
       "Here are some small fixes, and some documentation updates for
        6.11-rc3. Included in here are:
      
         - embargoed hardware documenation updates based on a lot of review by
           legal-types in lots of companies to try to make the process a _bit_
           easier for us to manage over time.
      
         - rust firmware documentation fix
      
         - driver detach race fix for the fix that went into 6.11-rc1
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        driver core: Fix uevent_show() vs driver detach race
        Documentation: embargoed-hardware-issues.rst: add a section documenting the "early access" process
        Documentation: embargoed-hardware-issues.rst: minor cleanups and fixes
        rust: firmware: fix invalid rustdoc link
      84e6da57
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 9221afb2
      Linus Torvalds authored
      Pull char/misc fixes from Greg KH:
       "Here are some small char/misc/other driver fixes for 6.11-rc3 for
        reported issues. Included in here are:
      
         - binder driver fixes
      
         - fsi MODULE_DESCRIPTION() additions (people seem to love them...)
      
         - eeprom driver fix
      
         - Kconfig dependency fix to resolve build issues
      
         - spmi driver fixes
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'char-misc-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        spmi: pmic-arb: add missing newline in dev_err format strings
        spmi: pmic-arb: Pass the correct of_node to irq_domain_add_tree
        binder_alloc: Fix sleeping function called from invalid context
        binder: fix descriptor lookup for context manager
        char: add missing NetWinder MODULE_DESCRIPTION() macros
        misc: mrvl-cn10k-dpi: add PCI_IOV dependency
        eeprom: ee1004: Fix locking issues in ee1004_probe()
        fsi: add missing MODULE_DESCRIPTION() macros
      9221afb2
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 04cc50c2
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two core fixes: one to prevent discard type changes (seen on iSCSI)
        during intermittent errors and the other is fixing a lockdep problem
        caused by the queue limits change.
      
        And one driver fix in ufs"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: sd: Keep the discard mode stable
        scsi: sd: Move sd_read_cpr() out of the q->limits_lock region
        scsi: ufs: core: Fix hba->last_dme_cmd_tstamp timestamp updating logic
      04cc50c2
  5. 10 Aug, 2024 8 commits
  6. 09 Aug, 2024 11 commits
    • Kent Overstreet's avatar
      bcachefs: bcachefs_metadata_version_disk_accounting_v3 · 8a2491db
      Kent Overstreet authored
      bcachefs_metadata_version_disk_accounting_v2 erroneously had padding
      bytes in disk_accounting_key, which is a problem because we have to
      guarantee that all unused bytes in disk_accounting_key are zeroed.
      
      Fortunately 6.11 isn't out yet, so it's cheap to fix this by spinning a
      new version.
      Reported-by: default avatarGabriel de Perthuis <g2p.code@gmail.com>
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      8a2491db
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2024-08-10' of https://gitlab.freedesktop.org/drm/kernel · 15833fea
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly regular fixes, mostly amdgpu with i915/xe having a few each,
        and then some misc bits across the board, seems about right for rc3
        time.
      
        client:
         - fix null ptr deref
      
        bridge:
         - connector: fix double free
      
        atomic:
         - fix async flip update
      
        panel:
         - document panel
      
        omap:
         - add config dependency
      
        tests:
         - fix gem shmem test
      
        drm buddy:
         - Add start address to trim function
      
        amdgpu:
         - DMCUB fix
         - Fix DET programming on some DCNs
         - DCC fixes
         - DCN 4.0.1 fixes
         - SMU 14.0.x update
         - MMHUB fix
         - DCN 3.1.4 fix
         - GC 12.0 fixes
         - Fix soft recovery error propogation
         - SDMA 7.0 fixes
         - DSC fix
      
        xe:
         - Fix off-by-one when processing RTP rules
         - Use dma_fence_chain_free in chain fence unused as a sync
         - Fix PL1 disable flow in xe_hwmon_power_max_write
         - Take ref to VM in delayed dump snapshot
      
        i915:
         - correct dual pps handling for MTL_PCH+ [display]
         - Adjust vma offset for framebuffer mmap offset [gem]
         - Fix Virtual Memory mapping boundaries calculation [gem]
         - Allow evicting to use the requested placement
         - Attempt to get pages without eviction first"
      
      * tag 'drm-fixes-2024-08-10' of https://gitlab.freedesktop.org/drm/kernel: (31 commits)
        drm/xe: Take ref to VM in delayed snapshot
        drm/xe/hwmon: Fix PL1 disable flow in xe_hwmon_power_max_write
        drm/xe: Use dma_fence_chain_free in chain fence unused as a sync
        drm/xe/rtp: Fix off-by-one when processing rules
        drm/amdgpu: Add DCC GFX12 flag to enable address alignment
        drm/amdgpu: correct sdma7 max dw
        drm/amdgpu: Add address alignment support to DCC buffers
        drm/amd/display: Skip Recompute DSC Params if no Stream on Link
        drm/amdgpu: change non-dcc buffer copy configuration
        drm/amdgpu: Forward soft recovery errors to userspace
        drm/amdgpu: add golden setting for gc v12
        drm/buddy: Add start address support to trim function
        drm/amd/display: Add missing program DET segment call to pipe init
        drm/amd/display: Add missing DCN314 to the DML Makefile
        drm/amdgpu: force to use legacy inv in mmhub
        drm/amd/pm: update powerplay structure on smu v14.0.2/3
        drm/amd/display: Add missing mcache registers
        drm/amd/display: Add dcc propagation value
        drm/amd/display: Add missing DET segments programming
        drm/amd/display: Replace dm_execute_dmub_cmd with dc_wake_and_execute_dmub_cmd
        ...
      15833fea
    • Kent Overstreet's avatar
      bcachefs: improve bch2_dev_usage_to_text() · 1a9e219d
      Kent Overstreet authored
      Add a line for capacity
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      1a9e219d
    • Kent Overstreet's avatar
      bcachefs: bch2_accounting_invalid() · 077e4737
      Kent Overstreet authored
      Implement bch2_accounting_invalid(); check for junk at the end, and
      replicas accounting entries in particular need to be checked or we'll
      pop asserts later.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      077e4737
    • Linus Torvalds's avatar
      Merge tag 'bitmap-6.11-rc' of https://github.com/norov/linux · afdab700
      Linus Torvalds authored
      Pull cpumask fix from Yury Norov:
       "Fix for cpumask merge"
      
      [ Mea culpa, this was my mismerge due to too much cut-and-paste - Linus ]
      
      * tag 'bitmap-6.11-rc' of https://github.com/norov/linux:
        cpumask: Fix crash on updating CPU enabled mask
      afdab700
    • Linus Torvalds's avatar
      Merge tag 'pm-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 85082897
      Linus Torvalds authored
      Pull power management fix from Rafael Wysocki:
       "Change the default EPP (energy-performence preference) value for the
        Emerald Rapids processor in the intel_pstate driver.
      
        Thisshould improve both the performance and energy efficiency (Pedro
        Henrique Kopper)"
      
      * tag 'pm-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: intel_pstate: Update Balance performance EPP for Emerald Rapids
      85082897
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-fixes-6.11-2' of... · 58d40f5f
      Linus Torvalds authored
      Merge tag 'asm-generic-fixes-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
      
      Pull asm-generic fixes from Arnd Bergmann:
       "There are two more changes to the syscall.tbl conversion: the
        '__NR_newfstat' in the previous bugfix was a mistake and gets reverted
        now, after triple-checking that the contents are now back to what they
        were on all architectures. The __NR_nfsservctl definition is not
        really needed but came up in the same discussion as it had previously
        been defined in uapi/asm-generic/unistd.h and tested for in user
        space.
      
        There are a few more symbols that used to be defined in the old
        unistd.h file, but that are never defined on any other architecture
        using syscall.tbl format. These used to be needed inside of the
        kernel:
      
           __NR_syscalls
           __NR_arch_specific_syscall
           __NR3264_*
      
        Searching for these on https://codesearch.debian.net/ shows a few
        packages (rustc, golang, clamav, libseccomp, librsvg, strace) that
        duplicate all the macros from asm/unistd.h, but nothing that actually
        uses the macros, so I concluded that they are fine to omit after all"
      
      * tag 'asm-generic-fixes-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        syscalls: add back legacy __NR_nfsservctl macro
        syscalls: fix fstat() entry again
      58d40f5f
    • Linus Torvalds's avatar
      Merge tag 'arm-fixes-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 0f135d3e
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "There are three sets of patches for the soc tree:
      
         - Marek Behún addresses multiple build time regressions caused by
           changes to the cznic turris-omnia support
      
         - Dmitry Torokhov fixes a regression in the legacy "gumstix" board
           code he cleaned up earlier
      
         - The TI K3 maintainers found multiple bugs in the in gpio, audio and
           pcie devicetree nodes"
      
      * tag 'arm-fixes-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        ARM: pxa/gumstix: fix attaching properties to vbus gpio device
        doc: platform: cznic: turris-omnia-mcu: Use double backticks for attribute value
        doc: platform: cznic: turris-omnia-mcu: Fix sphinx-build warning
        platform: cznic: turris-omnia-mcu: Make GPIO code optional
        platform: cznic: turris-omnia-mcu: Make poweroff and wakeup code optional
        platform: cznic: turris-omnia-mcu: Make TRNG code optional
        platform: cznic: turris-omnia-mcu: Make watchdog code optional
        arm64: dts: ti: k3-j784s4-main: Correct McASP DMAs
        arm64: dts: ti: k3-j722s: Fix gpio-range for main_pmx0
        arm64: dts: ti: k3-am62p: Fix gpio-range for main_pmx0
        arm64: dts: ti: k3-am62p: Add gpio-ranges for mcu_gpio0
        arm64: dts: ti: k3-am62-verdin-dahlia: Keep CTRL_SLEEP_MOCI# regulator on
        arm64: dts: ti: k3-j784s4-evm: Consolidate serdes0 references
        arm64: dts: ti: k3-j784s4-evm: Assign only lanes 0 and 1 to PCIe1
      0f135d3e
    • Linus Torvalds's avatar
      Merge tag 'probes-fixes-v6.11-rc2' of... · 146430a0
      Linus Torvalds authored
      Merge tag 'probes-fixes-v6.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull kprobe fixes from Masami Hiramatsu:
      
       - Fix misusing str_has_prefix() parameter order to check symbol prefix
         correctly
      
       - bpf: remove unused declaring of bpf_kprobe_override
      
      * tag 'probes-fixes-v6.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        kprobes: Fix to check symbol prefixes correctly
        bpf: kprobe: remove unused declaring of bpf_kprobe_override
      146430a0
    • Linus Torvalds's avatar
      Merge tag 'block-6.11-20240809' of git://git.kernel.dk/linux · b7768c48
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Just a set of cleanups for blk-throttle and nvme structures"
      
      * tag 'block-6.11-20240809' of git://git.kernel.dk/linux:
        nvme: reorganize nvme_ns_head fields
        nvme: change data type of lba_shift
        nvme: remove a field from nvme_ns_head
        nvme: remove unused parameter
        blk-throttle: remove more latency dead-code
      b7768c48
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.11-20240809' of git://git.kernel.dk/linux · 8828729c
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Nothing major in here, just two fixes for ensuring that bundle
        recv/send requests always get marked for cleanups, and a single fix to
        ensure that sends with provided buffers only pick a single buffer
        unless the bundle option has been enabled"
      
      * tag 'io_uring-6.11-20240809' of git://git.kernel.dk/linux:
        io_uring/net: don't pick multiple buffers for non-bundle send
        io_uring/net: ensure expanded bundle send gets marked for cleanup
        io_uring/net: ensure expanded bundle recv gets marked for cleanup
      8828729c