public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Dan Carpenter <dan.carpenter@linaro.org>,
	Thorsten Blum <thorsten.blum@toblux.com>
Subject: [GIT PULL] ring-buffer: Updates for 6.11
Date: Tue, 16 Jul 2024 15:51:18 -0400	[thread overview]
Message-ID: <20240716155118.152dea35@rorschach.local.home> (raw)



Linus,

tracing/ring-buffer: Have persistent buffer across reboots

This allows for the tracing instance ring buffer to stay persistent across
reboots. The way this is done is by adding to the kernel command line:

  trace_instance=boot_map@0x285400000:12M

This will reserve 12 megabytes at the address 0x285400000, and then map
the tracing instance "boot_map" ring buffer to that memory. This will
appear as a normal instance in the tracefs system:

  /sys/kernel/tracing/instances/boot_map

A user could enable tracing in that instance, and on reboot or kernel
crash, if the memory is not wiped by the firmware, it will recreate the
trace in that instance. For example, if one was debugging a shutdown of a
kernel reboot:

 # cd /sys/kernel/tracing
 # echo function > instances/boot_map/current_tracer
 # reboot
[..]
 # cd /sys/kernel/tracing
 # tail instances/boot_map/trace
       swapper/0-1       [000] d..1.   164.549800: restore_boot_irq_mode <-native_machine_shutdown
       swapper/0-1       [000] d..1.   164.549801: native_restore_boot_irq_mode <-native_machine_shutdown
       swapper/0-1       [000] d..1.   164.549802: disconnect_bsp_APIC <-native_machine_shutdown
       swapper/0-1       [000] d..1.   164.549811: hpet_disable <-native_machine_shutdown
       swapper/0-1       [000] d..1.   164.549812: iommu_shutdown_noop <-native_machine_restart
       swapper/0-1       [000] d..1.   164.549813: native_machine_emergency_restart <-__do_sys_reboot
       swapper/0-1       [000] d..1.   164.549813: tboot_shutdown <-native_machine_emergency_restart
       swapper/0-1       [000] d..1.   164.549820: acpi_reboot <-native_machine_emergency_restart
       swapper/0-1       [000] d..1.   164.549821: acpi_reset <-acpi_reboot
       swapper/0-1       [000] d..1.   164.549822: acpi_os_write_port <-acpi_reboot

On reboot, the buffer is examined to make sure it is valid. The validation
check even steps through every event to make sure the meta data of the
event is correct. If any test fails, it will simply reset the buffer, and
the buffer will be empty on boot.


Please pull the latest ring-buffer-v6.11 tree, which can be found at:


  git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
ring-buffer-v6.11

Tag SHA1: d3d32acdae295a7eb0600aa878ff33f4fe52460d
Head SHA1: b96c312551b241bc17226c5347c6d6b38a1efd3e


Dan Carpenter (1):
      tracing: Fix NULL vs IS_ERR() check in enable_instances()

Steven Rostedt (Google) (13):
      ring-buffer: Allow mapped field to be set without mapping
      ring-buffer: Add ring_buffer_alloc_range()
      ring-buffer: Add ring_buffer_meta data
      tracing: Implement creating an instance based on a given memory region
      ring-buffer: Add output of ring buffer meta page
      ring-buffer: Add test if range of boot buffer is valid
      ring-buffer: Validate boot range memory events
      tracing: Add option to use memmapped memory for trace boot instance
      ring-buffer: Save text and data locations in mapped meta data
      tracing/ring-buffer: Add last_boot_info file to boot instance
      tracing: Handle old buffer mappings for event strings and functions
      tracing: Update function tracing output for previous boot buffer
      tracing: Add last boot delta offset for stack traces

Thorsten Blum (1):
      ring-buffer: Use vma_pages() helper function

----
 Documentation/admin-guide/kernel-parameters.txt |   9 +
 include/linux/ring_buffer.h                     |  20 +
 kernel/trace/ring_buffer.c                      | 886 +++++++++++++++++++++---
 kernel/trace/trace.c                            | 244 ++++++-
 kernel/trace/trace.h                            |  10 +-
 kernel/trace/trace_output.c                     |  12 +-
 6 files changed, 1061 insertions(+), 120 deletions(-)
---------------------------

             reply	other threads:[~2024-07-16 19:51 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-16 19:51 Steven Rostedt [this message]
2024-07-16 20:05 ` [GIT PULL] ring-buffer: Updates for 6.11 Mathieu Desnoyers
2024-07-16 20:11   ` Steven Rostedt
2024-07-16 20:28     ` Mathieu Desnoyers
2024-07-19 14:32   ` Steven Rostedt
2024-07-19 14:59     ` Mathieu Desnoyers
2024-07-19 16:19       ` Steven Rostedt
2024-07-19 18:05         ` Mathieu Desnoyers
2024-07-19 18:16           ` Steven Rostedt
2024-07-29 22:32 ` Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240716155118.152dea35@rorschach.local.home \
    --to=rostedt@goodmis.org \
    --cc=dan.carpenter@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=thorsten.blum@toblux.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox