Re: [GIT PULL] ring-buffer: Updates for 6.11

From: Steven Rostedt
Date: Mon Jul 29 2024 - 18:32:12 EST



Hi Linus,

I just noticed that this wasn't pulled. Was there an issue with it?

-- Steve


On Tue, 16 Jul 2024 15:51:18 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> 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(-)
> ---------------------------