linux/Documentation
Linus Torvalds 70045bfc4c ftrace: Rewrite of function graph tracer
Up until now, the function graph tracer could only have a single user
 attached to it. If another user tried to attach to the function graph
 tracer while one was already attached, it would fail. Allowing function
 graph tracer to have more than one user has been asked for since 2009, but
 it required a rewrite to the logic to pull it off so it never happened.
 Until now!
 
 There's three systems that trace the return of a function. That is
 kretprobes, function graph tracer, and BPF. kretprobes and function graph
 tracing both do it similarly. The difference is that kretprobes uses a
 shadow stack per callback and function graph tracer creates a shadow stack
 for all tasks. The function graph tracer method makes it possible to trace
 the return of all functions. As kretprobes now needs that feature too,
 allowing it to use function graph tracer was needed. BPF also wants to
 trace the return of many probes and its method doesn't scale either.
 Having it use function graph tracer would improve that.
 
 By allowing function graph tracer to have multiple users allows both
 kretprobes and BPF to use function graph tracer in these cases. This will
 allow kretprobes code to be removed in the future as it's version will no
 longer be needed. Note, function graph tracer is only limited to 16
 simultaneous users, due to shadow stack size and allocated slots.
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYIADIWIQRRSw7ePDh/lE+zeZMp5XQQmuv6qgUCZpbWlxQccm9zdGVkdEBn
 b29kbWlzLm9yZwAKCRAp5XQQmuv6qgtvAP9jxmgEiEhz4Bpe1vRKVSMYK6ozXHTT
 7MFKRMeQqQ8zeAEA2sD5Zrt9l7zKzg0DFpaDLgc3/yh14afIDxzTlIvkmQ8=
 =umuf
 -----END PGP SIGNATURE-----

Merge tag 'ftrace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull ftrace updates from Steven Rostedt:
 "Rewrite of function graph tracer to allow multiple users

  Up until now, the function graph tracer could only have a single user
  attached to it. If another user tried to attach to the function graph
  tracer while one was already attached, it would fail. Allowing
  function graph tracer to have more than one user has been asked for
  since 2009, but it required a rewrite to the logic to pull it off so
  it never happened. Until now!

  There's three systems that trace the return of a function. That is
  kretprobes, function graph tracer, and BPF. kretprobes and function
  graph tracing both do it similarly. The difference is that kretprobes
  uses a shadow stack per callback and function graph tracer creates a
  shadow stack for all tasks. The function graph tracer method makes it
  possible to trace the return of all functions. As kretprobes now needs
  that feature too, allowing it to use function graph tracer was needed.
  BPF also wants to trace the return of many probes and its method
  doesn't scale either. Having it use function graph tracer would
  improve that.

  By allowing function graph tracer to have multiple users allows both
  kretprobes and BPF to use function graph tracer in these cases. This
  will allow kretprobes code to be removed in the future as it's version
  will no longer be needed.

  Note, function graph tracer is only limited to 16 simultaneous users,
  due to shadow stack size and allocated slots"

* tag 'ftrace-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (49 commits)
  fgraph: Use str_plural() in test_graph_storage_single()
  function_graph: Add READ_ONCE() when accessing fgraph_array[]
  ftrace: Add missing kerneldoc parameters to unregister_ftrace_direct()
  function_graph: Everyone uses HAVE_FUNCTION_GRAPH_RET_ADDR_PTR, remove it
  function_graph: Fix up ftrace_graph_ret_addr()
  function_graph: Make fgraph_update_pid_func() a stub for !DYNAMIC_FTRACE
  function_graph: Rename BYTE_NUMBER to CHAR_NUMBER in selftests
  fgraph: Remove some unused functions
  ftrace: Hide one more entry in stack trace when ftrace_pid is enabled
  function_graph: Do not update pid func if CONFIG_DYNAMIC_FTRACE not enabled
  function_graph: Make fgraph_do_direct static key static
  ftrace: Fix prototypes for ftrace_startup/shutdown_subops()
  ftrace: Assign RCU list variable with rcu_assign_ptr()
  ftrace: Assign ftrace_list_end to ftrace_ops_list type cast to RCU
  ftrace: Declare function_trace_op in header to quiet sparse warning
  ftrace: Add comments to ftrace_hash_move() and friends
  ftrace: Convert "inc" parameter to bool in ftrace_hash_rec_update_modify()
  ftrace: Add comments to ftrace_hash_rec_disable/enable()
  ftrace: Remove "filter_hash" parameter from __ftrace_hash_rec_update()
  ftrace: Rename dup_hash() and comment it
  ...
2024-07-18 13:36:33 -07:00
..
ABI drm next for 6.11-rc1: 2024-07-18 09:34:02 -07:00
accel
accounting
admin-guide media updates for v6.11-rc1 2024-07-17 18:30:10 -07:00
arch - Add support for running the kernel in a SEV-SNP guest, over a Secure 2024-07-16 11:12:25 -07:00
block block: fix spelling and grammar for in writeback_cache_control.rst 2024-06-20 06:53:14 -06:00
bpf bpf, docs: Address comments from IETF Area Directors 2024-06-23 09:10:26 -07:00
cdrom scsi: sr: Fix unintentional arithmetic wraparound 2024-05-15 10:05:24 -04:00
core-api Documentation/core-api: correct reference to SWIOTLB_DYNAMIC 2024-05-27 16:52:09 +02:00
cpu-freq
crypto
dev-tools linux_kselftest-next-6.11-rc1 2024-07-16 17:45:33 -07:00
devicetree drm next for 6.11-rc1: 2024-07-18 09:34:02 -07:00
doc-guide doc: fix spelling about ReStructured Text 2024-04-02 10:07:51 -06:00
driver-api media updates for v6.11-rc1 2024-07-17 18:30:10 -07:00
fault-injection
fb
features
filesystems gfs2 fixes and cleanups 2024-07-17 12:23:33 -07:00
firmware_class
firmware-guide Documentation: firmware-guide: ACPI: Fix namespace typo 2024-04-26 18:58:13 +02:00
fpga
gpu Documentation/amdgpu: Clarify MI200 and MI300 entries 2024-07-08 16:56:20 -04:00
hid HID: bpf: allow hid_device_event hooks to inject input reports on self 2024-06-27 11:00:48 +02:00
hwmon hwmon updates for v6.11-rc1 2024-07-15 17:39:13 -07:00
i2c docs: i2c: summary: be clearer with 'controller/target' and 'adapter/client' pairs 2024-06-22 10:11:56 +02:00
iio docs: iio: ad7944: add documentation for chain mode 2024-04-29 20:53:25 +01:00
images
infiniband
input
isdn
kbuild kbuild: doc: Update default INSTALL_MOD_DIR from extra to updates 2024-06-26 00:18:57 +09:00
kernel-hacking
leds docs: leds: leds-blinkm.rst: Fix 'dasy-chain' typo 2024-06-21 11:57:10 +01:00
litmus-tests Documentation/litmus-tests: Make cmpxchg() tests safe for klitmus 2024-05-06 14:29:21 -07:00
livepatch
locking
maintainer
mhi
misc-devices
mm The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
netlabel
netlink NFSD 6.11 Release Notes 2024-07-17 12:00:49 -07:00
networking Devicetree updates for v6.11: 2024-07-17 18:07:31 -07:00
nvdimm
nvme
PCI Merge branch 'pci/enumeration' 2024-05-16 18:14:10 -05:00
pcmcia
peci
power regulator: core: Add helper for allow HW access to enable/disable regulator 2024-06-26 18:17:05 +01:00
process docs: netdev: Fix typo in Signed-off-by tag 2024-05-27 17:15:22 -07:00
RCU Merge branches 'doc.2024.06.06a', 'fixes.2024.07.04a', 'mb.2024.06.28a', 'nocb.2024.06.03a', 'rcu-tasks.2024.06.06a', 'rcutorture.2024.06.06a' and 'srcu.2024.06.18a' into HEAD 2024-07-04 13:54:17 -07:00
rust RISC-V Patches for the 6.10 Merge Window, Part 1 2024-05-22 09:56:00 -07:00
scheduler Linux 6.9-rc1 2024-03-25 11:32:29 +01:00
scsi scsi: documentation: Clean up scsi_mid_low_api.rst 2024-04-08 22:10:05 -04:00
security Another not-too-busy cycle for documentation, including: 2024-05-13 10:51:53 -07:00
sound Documentation: sound: Fix trailing whitespaces 2024-05-16 16:00:30 +02:00
sphinx docs: kernel_include.py: Cope with docutils 0.21 2024-05-02 09:50:59 -06:00
sphinx-static
spi spi: pxa2xx: Drop the stale entry in documentation TOC 2024-05-07 23:53:21 +09:00
staging
target
tee Documentation: tee: Add TS-TEE driver 2024-04-03 14:03:09 +02:00
timers sched/isolation: Prevent boot crash when the boot CPU is nohz_full 2024-04-28 10:07:12 +02:00
tools rtla: Documentation: Fix -t, --trace 2024-05-16 16:52:16 +02:00
trace ftrace: Rewrite of function graph tracer 2024-07-18 13:36:33 -07:00
translations gpio: Remove legacy API documentation 2024-05-27 16:50:03 +02:00
usb
userspace-api media updates for v6.11-rc1 2024-07-17 18:30:10 -07:00
virt - Add support for running the kernel in a SEV-SNP guest, over a Secure 2024-07-16 11:12:25 -07:00
w1
watchdog
wmi platform/x86: wmi: Add MSI WMI Platform driver 2024-04-29 12:06:21 +02:00
.gitignore
atomic_bitops.txt
atomic_t.txt Documentation/atomic_t: Emphasize that failed atomic operations give no ordering 2024-05-06 14:29:04 -07:00
Changes
CodingStyle
conf.py compiler_types: add Endianness-dependent __counted_by_{le,be} 2024-03-28 18:50:47 -07:00
docutils.conf
dontdiff
index.rst doc: fix spelling about ReStructured Text 2024-04-02 10:07:51 -06:00
Kconfig
Makefile Kbuild updates for v6.10 2024-05-18 12:39:20 -07:00
memory-barriers.txt
SubmittingPatches
subsystem-apis.rst