linux/tools/testing/selftests
Linus Torvalds ad584d73a2 Tracing updates for 6.9:
Main user visible change:
 
 - User events can now have "multi formats"
 
   The current user events have a single format. If another event is created
   with a different format, it will fail to be created. That is, once an
   event name is used, it cannot be used again with a different format. This
   can cause issues if a library is using an event and updates its format.
   An application using the older format will prevent an application using
   the new library from registering its event.
 
   A task could also DOS another application if it knows the event names, and
   it creates events with different formats.
 
   The multi-format event is in a different name space from the single
   format. Both the event name and its format are the unique identifier.
   This will allow two different applications to use the same user event name
   but with different payloads.
 
 - Added support to have ftrace_dump_on_oops dump out instances and
   not just the main top level tracing buffer.
 
 Other changes:
 
 - Add eventfs_root_inode
 
   Only the root inode has a dentry that is static (never goes away) and
   stores it upon creation. There's no reason that the thousands of other
   eventfs inodes should have a pointer that never gets set in its
   descriptor. Create a eventfs_root_inode desciptor that has a eventfs_inode
   descriptor and a dentry pointer, and only the root inode will use this.
 
 - Added WARN_ON()s in eventfs
 
   There's some conditionals remaining in eventfs that should never be hit,
   but instead of removing them, add WARN_ON() around them to make sure that
   they are never hit.
 
 - Have saved_cmdlines allocation also include the map_cmdline_to_pid array
 
   The saved_cmdlines structure allocates a large amount of data to hold its
   mappings. Within it, it has three arrays. Two are already apart of it:
   map_pid_to_cmdline[] and saved_cmdlines[]. More memory can be saved by
   also including the map_cmdline_to_pid[] array as well.
 
 - Restructure __string() and __assign_str() macros used in TRACE_EVENT().
 
   Dynamic strings in TRACE_EVENT() are declared with:
 
       __string(name, source)
 
   And assigned with:
 
      __assign_str(name, source)
 
   In the tracepoint callback of the event, the __string() is used to get the
   size needed to allocate on the ring buffer and __assign_str() is used to
   copy the string into the ring buffer. There's a helper structure that is
   created in the TRACE_EVENT() macro logic that will hold the string length
   and its position in the ring buffer which is created by __string().
 
   There are several trace events that have a function to create the string
   to save. This function is executed twice. Once for __string() and again
   for __assign_str(). There's no reason for this. The helper structure could
   also save the string it used in __string() and simply copy that into
   __assign_str() (it also already has its length).
 
   By using the structure to store the source string for the assignment, it
   means that the second argument to __assign_str() is no longer needed.
 
   It will be removed in the next merge window, but for now add a warning if
   the source string given to __string() is different than the source string
   given to __assign_str(), as the source to __assign_str() isn't even used
   and will be going away.
 
 - Added checks to make sure that the source of __string() is also the
   source of __assign_str() so that it can be safely removed in the next
   merge window.
 
   Included fixes that the above check found.
 
 - Other minor clean ups and fixes
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYIADIWIQRRSw7ePDh/lE+zeZMp5XQQmuv6qgUCZfhbUBQccm9zdGVkdEBn
 b29kbWlzLm9yZwAKCRAp5XQQmuv6qrhJAP9bfnYO7tfNGZVNPmTT7Fz0z4zCU1Pb
 P8M+24yiFTeFWwD/aIPlMFZONVkTdFAlLdffl6kJOKxZ7vW4XzUjfNWb6wo=
 =z/D6
 -----END PGP SIGNATURE-----

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

Pull tracing updates from Steven Rostedt:
 "Main user visible change:

   - User events can now have "multi formats"

     The current user events have a single format. If another event is
     created with a different format, it will fail to be created. That
     is, once an event name is used, it cannot be used again with a
     different format. This can cause issues if a library is using an
     event and updates its format. An application using the older format
     will prevent an application using the new library from registering
     its event.

     A task could also DOS another application if it knows the event
     names, and it creates events with different formats.

     The multi-format event is in a different name space from the single
     format. Both the event name and its format are the unique
     identifier. This will allow two different applications to use the
     same user event name but with different payloads.

   - Added support to have ftrace_dump_on_oops dump out instances and
     not just the main top level tracing buffer.

  Other changes:

   - Add eventfs_root_inode

     Only the root inode has a dentry that is static (never goes away)
     and stores it upon creation. There's no reason that the thousands
     of other eventfs inodes should have a pointer that never gets set
     in its descriptor. Create a eventfs_root_inode desciptor that has a
     eventfs_inode descriptor and a dentry pointer, and only the root
     inode will use this.

   - Added WARN_ON()s in eventfs

     There's some conditionals remaining in eventfs that should never be
     hit, but instead of removing them, add WARN_ON() around them to
     make sure that they are never hit.

   - Have saved_cmdlines allocation also include the map_cmdline_to_pid
     array

     The saved_cmdlines structure allocates a large amount of data to
     hold its mappings. Within it, it has three arrays. Two are already
     apart of it: map_pid_to_cmdline[] and saved_cmdlines[]. More memory
     can be saved by also including the map_cmdline_to_pid[] array as
     well.

   - Restructure __string() and __assign_str() macros used in
     TRACE_EVENT()

     Dynamic strings in TRACE_EVENT() are declared with:

         __string(name, source)

     And assigned with:

        __assign_str(name, source)

     In the tracepoint callback of the event, the __string() is used to
     get the size needed to allocate on the ring buffer and
     __assign_str() is used to copy the string into the ring buffer.
     There's a helper structure that is created in the TRACE_EVENT()
     macro logic that will hold the string length and its position in
     the ring buffer which is created by __string().

     There are several trace events that have a function to create the
     string to save. This function is executed twice. Once for
     __string() and again for __assign_str(). There's no reason for
     this. The helper structure could also save the string it used in
     __string() and simply copy that into __assign_str() (it also
     already has its length).

     By using the structure to store the source string for the
     assignment, it means that the second argument to __assign_str() is
     no longer needed.

     It will be removed in the next merge window, but for now add a
     warning if the source string given to __string() is different than
     the source string given to __assign_str(), as the source to
     __assign_str() isn't even used and will be going away.

   - Added checks to make sure that the source of __string() is also the
     source of __assign_str() so that it can be safely removed in the
     next merge window.

     Included fixes that the above check found.

   - Other minor clean ups and fixes"

* tag 'trace-v6.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (34 commits)
  tracing: Add __string_src() helper to help compilers not to get confused
  tracing: Use strcmp() in __assign_str() WARN_ON() check
  tracepoints: Use WARN() and not WARN_ON() for warnings
  tracing: Use div64_u64() instead of do_div()
  tracing: Support to dump instance traces by ftrace_dump_on_oops
  tracing: Remove second parameter to __assign_rel_str()
  tracing: Add warning if string in __assign_str() does not match __string()
  tracing: Add __string_len() example
  tracing: Remove __assign_str_len()
  ftrace: Fix most kernel-doc warnings
  tracing: Decrement the snapshot if the snapshot trigger fails to register
  tracing: Fix snapshot counter going between two tracers that use it
  tracing: Use EVENT_NULL_STR macro instead of open coding "(null)"
  tracing: Use ? : shortcut in trace macros
  tracing: Do not calculate strlen() twice for __string() fields
  tracing: Rework __assign_str() and __string() to not duplicate getting the string
  cxl/trace: Properly initialize cxl_poison region name
  net: hns3: tracing: fix hclgevf trace event strings
  drm/i915: Add missing ; to __assign_str() macros in tracepoint code
  NFSD: Fix nfsd_clid_class use of __string_len() macro
  ...
2024-03-18 15:11:44 -07:00
..
alsa selftests: avoid using SKIP(exit()) in harness fixure setup 2024-03-05 19:25:36 -08:00
amd-pstate selftests/amd-pstate: Added option to provide perf binary path 2023-10-16 13:06:58 -06:00
arm64 Merge branches 'for-next/reorg-va-space', 'for-next/rust-for-arm64', 'for-next/misc', 'for-next/daif-cleanup', 'for-next/kselftest', 'for-next/documentation', 'for-next/sysreg' and 'for-next/dpisa', remote-tracking branch 'arm64/for-next/perf' into for-next/core 2024-03-07 19:04:55 +00:00
bpf for-netdev 2024-03-11 18:06:04 -07:00
breakpoints selftests/breakpoints: Fix format specifier in ksft_print_msg in step_after_suspend_test.c 2023-11-30 14:32:34 -07:00
cachestat selftests/cachestat: Fix print_cachestat format 2023-10-13 14:08:10 -06:00
capabilities selftests: capabilities: namespace create varies for root and normal user 2023-11-30 16:37:30 -07:00
cgroup selftests: add zswapin and no zswap tests 2024-02-22 15:27:16 -08:00
clone3 Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
connector selftests: connector: Fix input argument error paths to skip 2023-07-31 20:11:42 -07:00
core selftests: core: include linux/close_range.h for CLOSE_RANGE_* macros 2024-02-07 21:20:34 -08:00
cpu-hotplug
cpufreq selftests/cpufreq: Don't enable generic lock debugging options 2023-06-12 16:39:11 -06:00
damon selftests: damon: add access_memory to .gitignore 2024-03-04 17:01:16 -08:00
dma
dmabuf-heaps selftests/dmabuf-heaps: add gitignore file 2023-10-05 14:22:59 -06:00
drivers selftests: net: Correct couple of spelling mistakes 2024-03-04 18:33:47 -08:00
dt linux_kselftest-next-6.9-rc1 2024-03-11 09:25:33 -07:00
efivarfs selftests/efivarfs: create-read: fix a resource leak 2023-10-18 14:33:44 -06:00
exec selftests/exec: Perform script checks with /bin/bash 2024-03-05 16:06:01 -08:00
fchmodat2 selftests: link libasan statically for tests with -fsanitize=address 2023-09-19 13:21:32 -07:00
filelock selftests: add OFD lock tests 2023-08-24 10:41:47 -04:00
filesystems - Kuan-Wei Chiu has developed the well-named series "lib min_heap: Min 2024-03-14 18:03:09 -07:00
firmware selftests: firmware: remove duplicate unneeded defines 2023-10-06 17:33:52 -06:00
fpu
ftrace Probes updates for v6.9: 2024-03-14 16:16:33 -07:00
futex selftests: fuxex: Report a unique test name per run of futex_requeue_pi 2024-02-19 15:00:51 -07:00
gpio selftest: gpio: remove obsolete gpio-mockup test 2024-03-05 20:01:08 +01:00
hid selftests/hid: wacom: fix confidence tests 2024-01-18 09:15:38 +01:00
ia64
intel_pstate
iommu selftests/iommu: fix the config fragment 2024-02-22 09:02:05 -04:00
ipc selftests: ipc: Fix incorrect kernel headers search path 2023-02-13 09:09:44 -07:00
ir
kcmp selftests: kcmp: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
kexec
kmod
kselftest selftests: ktap_helpers: Add a helper to finish the test 2024-02-20 15:53:20 -07:00
kvm S390: 2024-03-15 13:03:13 -07:00
landlock Landlock updates for v6.9-rc1 2024-03-14 16:00:27 -07:00
lib
livepatch linux_kselftest-next-6.9-rc1 2024-03-11 09:25:33 -07:00
lkdtm selftests/lkdtm: Disable CONFIG_UBSAN_TRAP in test config 2023-09-28 16:39:08 -07:00
locking
lsm lsm: use 32-bit compatible data types in LSM syscalls 2024-03-14 11:31:26 -04:00
media_tests selftests: media_tests: Add new subtest to video_device_test 2023-06-12 16:39:10 -06:00
membarrier linux-kselftest-next-6.3-rc1 2023-02-23 09:37:29 -08:00
memfd selftests/memfd: delete unused declarations 2024-02-22 10:24:38 -08:00
memory-hotplug
mincore selftests/mincore: fix skip condition for check_huge_pages test 2023-07-13 12:51:13 -06:00
mm - Kuan-Wei Chiu has developed the well-named series "lib min_heap: Min 2024-03-14 18:03:09 -07:00
mount
mount_setattr selftests mount: Fix mount_setattr_test builds failed 2023-03-31 09:18:45 -06:00
move_mount_set_group selftests/move_mount_set_group:Make tests build with old libc 2024-01-22 15:33:37 +01:00
mqueue selftests/mqueue: Set timeout to 180 seconds 2024-02-20 17:28:19 -07:00
nci
net nexthop: Fix out-of-bounds access during attribute validation 2024-03-11 20:35:20 -07:00
netfilter selftests: netfilter: add bridge conntrack + multicast test case 2024-02-29 00:22:48 +01:00
nolibc selftests/nolibc: disable coredump via setrlimit 2023-12-11 22:38:37 +01:00
nsfs
ntb
openat2 linux_kselftest-next-6.7-rc1 2023-11-01 17:08:10 -10:00
perf_events selftests: perf_events: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
pid_namespace selftests: pid_namespace: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
pidfd selftests: add ESRCH tests for pidfd_getfd() 2024-02-07 15:48:31 +01:00
power_supply selftests: Add test to verify power supply properties 2024-02-20 15:53:33 -07:00
powerpc powerpc updates for 6.9 2024-03-15 17:53:48 -07:00
prctl selftests: prctl: Add prctl test for PR_GET_NAME 2023-11-30 16:30:05 -07:00
proc proc: test ProtectionKey in proc-empty-vm test 2023-11-01 12:46:59 -07:00
pstore
ptp ptp: add testptp mask test 2023-10-15 20:07:52 +01:00
ptrace Update for entry and ptrace: 2023-04-25 11:05:04 -07:00
rcutorture clocksource: Scale the watchdog read retries automatically 2024-02-21 12:00:42 +01:00
resctrl selftests/resctrl: Add non-contiguous CBMs CAT test 2024-02-23 15:19:25 -07:00
riscv RISC-V: selftests: cbo: Ensure asm operands match constraints 2024-01-17 17:46:55 -08:00
rlimits
rseq selftests/rseq: Do not skip !allowed_cpus for mm_cid 2024-01-22 11:40:36 -07:00
rtc
rust kselftest: Add basic test for probing the rust sample modules 2024-03-04 13:13:04 -07:00
safesetid
sched selftests: sched: Fix spelling mistake "hiearchy" -> "hierarchy" 2024-02-20 17:28:19 -07:00
seccomp Networking changes for 6.9. 2024-03-12 17:44:08 -07:00
sgx selftests/sgx: Skip non X86_64 platform 2023-12-08 10:08:17 -08:00
sigaltstack selftests/sigaltstack: Fix wrong format specifier 2023-10-13 14:08:26 -06:00
size
sparc64
splice
static_keys selftests: static_keys: fix test name in messages 2023-10-05 14:28:59 -06:00
sync selftests: sync: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
syscall_user_dispatch
sysctl sysclt: Clarify the results of selftest run 2023-12-28 04:57:57 -08:00
tc-testing selftests/tc-testing: require an up to date iproute2 for blockcast tests 2024-03-04 19:30:57 -08:00
tdx selftests/tdx: add gitignore file 2023-10-05 14:22:53 -06:00
thermal/intel selftests: thermal: intel: workload_hint: add missing gitignore 2024-02-20 16:30:55 -07:00
timens
timers selftests: timers: Convert nsleep-lat test to generate KTAP output 2023-10-05 15:00:14 -06:00
tmpfs
tpm2 selftests: tpm2: remove redundant ord() 2023-02-13 09:09:46 -07:00
tty selftests: tty: add selftest for tty timestamp updates 2023-06-15 13:45:42 +02:00
uevent selftests: uevent: add missing gitignore 2024-02-20 16:30:40 -07:00
user
user_events selftests/user_events: Test multi-format events 2024-03-18 10:13:12 -04:00
vDSO kselftest/vDSO: Use ksft_print_msg() rather than printf in vdso_test_abi 2023-11-30 14:50:09 -07:00
watchdog
wireguard treewide: drop CONFIG_EMBEDDED 2023-08-21 13:46:25 -07:00
x86 selftests:x86: Fix Format String Warnings in lam.c 2023-11-30 14:32:41 -07:00
zram
.gitignore
Makefile Networking changes for 6.9. 2024-03-12 17:44:08 -07:00
gen_kselftest_tar.sh
kselftest.h selftests: kselftest_harness: separate diagnostic message with # in ksft_test_result_code() 2024-03-01 10:30:29 +00:00
kselftest_deps.sh selftests: fix dependency checker script 2023-09-08 10:06:49 -06:00
kselftest_harness.h selftests/harness: Fix TEST_F()'s vfork handling 2024-03-06 20:31:50 -08:00
kselftest_install.sh
kselftest_module.h
lib.mk Networking changes for 6.9. 2024-03-12 17:44:08 -07:00
run_kselftest.sh kselftest/runner.sh: add netns support 2023-12-23 00:26:32 +00:00