summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/flamegraph.py
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2026-08-13 16:42:16 +0200
committerTakashi Iwai <tiwai@suse.de>2026-08-13 18:21:17 +0200
commit4cc25cdd3cffa475edb8dec8199b3227038ebcfb (patch)
treefa8ee6f664dc4219994a6d0cc945737cb24071d3 /tools/perf/scripts/python/flamegraph.py
parent0c4ef23e66a715019e27e679502e2be3bc358f81 (diff)
ALSA: seq: midi: Optimize event_input locking with RCU
The recent fix for serializing the output teardown introduced a spinlock invocation at every MIDI output event via event_process_midi. Since this is a hot path, let's do performance optimization with RCU. The new output_substream __rcu pointer is published via rcu_assign_pointer() in midisynth_use() after output_rfile is set, and cleared in midisynth_unuse() before the resource teardown. event_process_midi() reads it under rcu_read_lock() and bumps output_use_lock inside that section, which is necessary to close the window between the pointer dereference and the refcount increment. midisynth_unuse() calls synchronize_rcu() before snd_use_lock_sync(): this guarantees that any reader who obtained a non-NULL pointer has already called atomic_inc (output_use_lock), so the subsequent snd_use_lock_sync() sees the correct in-flight count. Fixes: ef7607ab1c8a ("ALSA: seq: midi: Serialize output teardown with event_input") Link: https://patch.msgid.link/20260813144224.753399-1-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'tools/perf/scripts/python/flamegraph.py')
0 files changed, 0 insertions, 0 deletions