linux/drivers
Linus Torvalds 9f0c253ddd Performance events changes for v6.12:
- Implement per-PMU context rescheduling to significantly improve single-PMU
    performance, and related cleanups/fixes. (by Peter Zijlstra and Namhyung Kim)
 
  - Fix ancient bug resulting in a lot of events being dropped erroneously
    at higher sampling frequencies. (by Luo Gengkun)
 
  - uprobes enhancements:
 
      - Implement RCU-protected hot path optimizations for better performance:
 
          "For baseline vs SRCU, peak througput increased from 3.7 M/s (million uprobe
           triggerings per second) up to about 8 M/s. For uretprobes it's a bit more
           modest with bump from 2.4 M/s to 5 M/s.
 
           For SRCU vs RCU Tasks Trace, peak throughput for uprobes increases further from
           8 M/s to 10.3 M/s (+28%!), and for uretprobes from 5.3 M/s to 5.8 M/s (+11%),
           as we have more work to do on uretprobes side.
 
           Even single-thread (no contention) performance is slightly better: 3.276 M/s to
           3.396 M/s (+3.5%) for uprobes, and 2.055 M/s to 2.174 M/s (+5.8%)
           for uretprobes."
 
           (by Andrii Nakryiko et al)
 
      - Document mmap_lock, don't abuse get_user_pages_remote(). (by Oleg Nesterov)
 
      - Cleanups & fixes to prepare for future work:
 
         - Remove uprobe_register_refctr()
 	- Simplify error handling for alloc_uprobe()
         - Make uprobe_register() return struct uprobe *
         - Fold __uprobe_unregister() into uprobe_unregister()
         - Shift put_uprobe() from delete_uprobe() to uprobe_unregister()
         - BPF: Fix use-after-free in bpf_uprobe_multi_link_attach()
 
           (by Oleg Nesterov)
 
  - New feature & ABI extension: allow events to use PERF_SAMPLE READ with
    inheritance, enabling sample based profiling of a group of counters over
    a hierarchy of processes or threads.  (by Ben Gainey)
 
  - Intel uncore & power events updates:
 
       - Add Arrow Lake and Lunar Lake support
       - Add PERF_EV_CAP_READ_SCOPE
       - Clean up and enhance cpumask and hotplug support
 
         (by Kan Liang)
 
       - Add LNL uncore iMC freerunning support
       - Use D0:F0 as a default device
 
         (by Zhenyu Wang)
 
  - Intel PT: fix AUX snapshot handling race. (by Adrian Hunter)
 
  - Misc fixes and cleanups. (by James Clark, Jiri Olsa, Oleg Nesterov and Peter Zijlstra)
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmbqxEwRHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1iusw/43UAcAZVof6Qs+j6bVAxSabF66fFfE9Wh
 jc+F4yZ2MGl9x6a1f392+CPcTdVsYp6G2QtRGMipD+trmi/lhDhmRrhxxD1KWIwP
 zVGSBx9CSFl0UpCXdGiVrGzT5xpIpJ4qqW2XUVr32n8SxTT5X/vM5ySm6KUXsIrD
 2/KXwucT9a7grkl3pvy/A/FUHxaF7oAMJjcIPSvLBveQjQSHUrZoCZdHsRGT9rjS
 HjzxG6gDy97172z5XV1ej3HJOfFlFTQ1RcoxNqdLfiZ6n3hD4hfmtsXWB5zTzRjT
 xHaCOmWLhEp5v+fK2+RCFiWUbDBsmW/mecZdrjGb3C1RIDWQhLCXXc95XtrobTvk
 BkW9QEC/XRB+vU6Ssdv3ugN7yRWxih0BsLU5sy4nlzmwoYt9qOy8fgjRvSBKHr5K
 Mu1RIFu+KXq++sa7+ZJjUMY70PHQCp2m4AHprG/Y98t93CQMhDXzGVpPzWyQuW/V
 lqYFjd/CAoCIVGF4Jxq7sqOdZ1emDN+P0WSnnFWssJ0ZJFvxN9ZDPH2AaMk4lwo7
 NFW6u3+0Vx9P0m/H6xRQj00Iye2JLMqJNCIA8QtjnB7L6upgVvcIPjgcG58fpV1o
 xfJekOR1A7T2aQUDlX5t9Cu36ZUImDRmwHj2m1p84s5AANlbD7/fOmffR1Hn9uFj
 wCTqSpi8Hg==
 =E3s3
 -----END PGP SIGNATURE-----

Merge tag 'perf-core-2024-09-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf events updates from Ingo Molnar:

 - Implement per-PMU context rescheduling to significantly improve
   single-PMU performance, and related cleanups/fixes (Peter Zijlstra
   and Namhyung Kim)

 - Fix ancient bug resulting in a lot of events being dropped
   erroneously at higher sampling frequencies (Luo Gengkun)

 - uprobes enhancements:

     - Implement RCU-protected hot path optimizations for better
       performance:

         "For baseline vs SRCU, peak througput increased from 3.7 M/s
          (million uprobe triggerings per second) up to about 8 M/s. For
          uretprobes it's a bit more modest with bump from 2.4 M/s to
          5 M/s.

          For SRCU vs RCU Tasks Trace, peak throughput for uprobes
          increases further from 8 M/s to 10.3 M/s (+28%!), and for
          uretprobes from 5.3 M/s to 5.8 M/s (+11%), as we have more
          work to do on uretprobes side.

          Even single-thread (no contention) performance is slightly
          better: 3.276 M/s to 3.396 M/s (+3.5%) for uprobes, and 2.055
          M/s to 2.174 M/s (+5.8%) for uretprobes."

          (Andrii Nakryiko et al)

     - Document mmap_lock, don't abuse get_user_pages_remote() (Oleg
       Nesterov)

     - Cleanups & fixes to prepare for future work:
        - Remove uprobe_register_refctr()
	- Simplify error handling for alloc_uprobe()
        - Make uprobe_register() return struct uprobe *
        - Fold __uprobe_unregister() into uprobe_unregister()
        - Shift put_uprobe() from delete_uprobe() to uprobe_unregister()
        - BPF: Fix use-after-free in bpf_uprobe_multi_link_attach()
          (Oleg Nesterov)

 - New feature & ABI extension: allow events to use PERF_SAMPLE READ
   with inheritance, enabling sample based profiling of a group of
   counters over a hierarchy of processes or threads (Ben Gainey)

 - Intel uncore & power events updates:

      - Add Arrow Lake and Lunar Lake support
      - Add PERF_EV_CAP_READ_SCOPE
      - Clean up and enhance cpumask and hotplug support
        (Kan Liang)

      - Add LNL uncore iMC freerunning support
      - Use D0:F0 as a default device
        (Zhenyu Wang)

 - Intel PT: fix AUX snapshot handling race (Adrian Hunter)

 - Misc fixes and cleanups (James Clark, Jiri Olsa, Oleg Nesterov and
   Peter Zijlstra)

* tag 'perf-core-2024-09-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
  dmaengine: idxd: Clean up cpumask and hotplug for perfmon
  iommu/vt-d: Clean up cpumask and hotplug for perfmon
  perf/x86/intel/cstate: Clean up cpumask and hotplug
  perf: Add PERF_EV_CAP_READ_SCOPE
  perf: Generic hotplug support for a PMU with a scope
  uprobes: perform lockless SRCU-protected uprobes_tree lookup
  rbtree: provide rb_find_rcu() / rb_find_add_rcu()
  perf/uprobe: split uprobe_unregister()
  uprobes: travers uprobe's consumer list locklessly under SRCU protection
  uprobes: get rid of enum uprobe_filter_ctx in uprobe filter callbacks
  uprobes: protected uprobe lifetime with SRCU
  uprobes: revamp uprobe refcounting and lifetime management
  bpf: Fix use-after-free in bpf_uprobe_multi_link_attach()
  perf/core: Fix small negative period being ignored
  perf: Really fix event_function_call() locking
  perf: Optimize __pmu_ctx_sched_out()
  perf: Add context time freeze
  perf: Fix event_function_call() locking
  perf: Extract a few helpers
  perf: Optimize context reschedule for single PMU cases
  ...
2024-09-18 15:03:58 +02:00
..
accel
accessibility
acpi Thermal control updates for 6.12-rc1 2024-09-16 08:05:54 +02:00
amba
android
ata
atm
auxdisplay
base pmdomain core: 2024-09-18 10:49:45 +02:00
bcma
block for-6.12/block-20240913 2024-09-16 13:33:06 +02:00
bluetooth Bluetooth: btintel_pcie: Allocate memory for driver private data 2024-09-12 17:32:42 -04:00
bus soc: driver updates for 6.12 2024-09-17 10:48:09 +02:00
cache
cdrom
cdx
char Updates for timers and timekeeping: 2024-09-17 07:25:37 +02:00
clk
clocksource Updates for x86 timers: 2024-09-17 15:27:01 +02:00
comedi
connector
counter
cpufreq second round of amd-pstate changes for 6.12 (second try): 2024-09-11 18:22:23 +02:00
cpuidle pmdomain core: 2024-09-18 10:49:45 +02:00
crypto crypto: n2 - Set err to EINVAL if snprintf fails for hmac 2024-09-13 18:26:53 +08:00
cxl
dax
dca
devfreq
dio
dma Performance events changes for v6.12: 2024-09-18 15:03:58 +02:00
dma-buf Updates for timers and timekeeping: 2024-09-17 07:25:37 +02:00
dpll
edac - Drop a now obsolete ppc4xx_edac driver 2024-09-16 06:36:37 +02:00
eisa
extcon power supply and reset changes for the 6.12 series 2024-09-18 10:24:22 +02:00
firewire
firmware soc: driver updates for 6.12 2024-09-17 10:48:09 +02:00
fpga
fsi
gnss
gpio gpio updates for v6.12-rc1 2024-09-18 10:43:07 +02:00
gpu sound updates for 6.12-rc1 2024-09-17 17:03:43 +02:00
greybus
hid
hsi
hte
hv
hwmon hwmon updates for v6.12 2024-09-18 12:40:48 +02:00
hwspinlock
hwtracing
i2c
i3c
idle
iio
infiniband
input soc: driver updates for 6.12 2024-09-17 10:48:09 +02:00
interconnect
iommu Performance events changes for v6.12: 2024-09-18 15:03:58 +02:00
ipack
irqchip Updates for the interrupt subsystem: 2024-09-17 07:09:17 +02:00
isdn
leds
macintosh
mailbox
mcb
md lsm/stable-6.12 PR 20240911 2024-09-16 18:19:47 +02:00
media hardening updates for v6.12-rc1 2024-09-18 12:12:41 +02:00
memory
memstick
message
mfd pwm: Changes for v6.12-rc1 2024-09-18 10:39:35 +02:00
misc MMC core: 2024-09-18 10:36:30 +02:00
mmc mmc: core: Use dev_err_probe for deferred regulators 2024-09-13 14:09:29 +02:00
most
mtd * Raw NAND changes 2024-09-15 12:38:22 +02:00
mux
net Updates for timers and timekeeping: 2024-09-17 07:25:37 +02:00
nfc
ntb
nubus
nvdimm
nvme for-6.12/block-20240913 2024-09-16 13:33:06 +02:00
nvmem
of
opp Merge branches 'pm-sleep', 'pm-opp' and 'pm-tools' 2024-09-11 19:02:23 +02:00
parisc
parport
pci IOMMU Updates for Linux v6.12 2024-09-18 12:45:52 +02:00
pcmcia
peci
perf arm64 updates for 6.12 2024-09-16 06:55:07 +02:00
phy power supply and reset changes for the 6.12 series 2024-09-18 10:24:22 +02:00
pinctrl pinctrl: pinctrl-cy8c95x0: Fix regcache 2024-09-13 13:14:18 +02:00
platform chrome platform changes for 6.12 2024-09-18 12:57:04 +02:00
pmdomain pmdomain: core: Reduce debug summary table width 2024-09-13 13:41:33 +02:00
pnp
power power sequencing updates for v6.12-rc1 2024-09-18 10:46:27 +02:00
powercap
pps
ps3
ptp
pwm pwm: stm32: Fix a typo 2024-09-16 15:24:59 +02:00
rapidio
ras
regulator regulator: sm5703: Remove because it is unused and fails to build 2024-09-13 19:08:14 +01:00
remoteproc
reset
rpmsg
rtc
s390 vfs-6.12.file 2024-09-16 09:14:02 +02:00
sbus
scsi
sh
siox
slimbus
soc soc: driver updates for 6.12 2024-09-17 10:48:09 +02:00
soundwire soundwire: stream: Revert "soundwire: stream: fix programming slave ports for non-continous port maps" 2024-09-11 13:05:43 +05:30
spi spi: Updates for v6.12 2024-09-17 10:31:31 +02:00
spmi
ssb
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-09-12 17:11:24 -07:00
target
tc
tee
thermal
thunderbolt
tty printk changes for 6.12 2024-09-17 08:52:28 +02:00
ufs
uio
usb power supply and reset changes for the 6.12 series 2024-09-18 10:24:22 +02:00
vdpa
vfio
vhost
video fbdev fixes and updates for 6.12-rc1: 2024-09-18 12:53:22 +02:00
virt arm64 updates for 6.12 2024-09-16 06:55:07 +02:00
virtio
w1
watchdog
xen
zorro
Kconfig
Makefile