Messages in this thread | | | Date | Mon, 17 Apr 2023 12:57:27 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH RFC 1/5] perf: Add ioctl to emit sideband events |
| |
On Fri, Apr 14, 2023 at 11:22:56AM +0300, Adrian Hunter wrote: > perf tools currently read /proc to get this information, but that > races with changes made by the kernel. > > Add an ioctl to output status-only sideband events for a currently > active event on the current CPU. Using timestamps, these status-only > sideband events will be correctly ordered with respect to "real" > sideband events. > > The assumption is a user will: > - open and enable a dummy event to track sideband events > - call the new ioctl to get sideband information for currently > running processes as needed > - enable the remaining selected events > > The initial sideband events to be supported will be: fork, namespaces, comm > and mmap. > > Add a new misc flag PERF_RECORD_MISC_STATUS_ONLY to differentiate "real" > sideband events from status-only sideband events. > > The limitation that the event must be active is significant. The ioctl > caller must either: > i) For a CPU context, set CPU affinity to the correct CPU. > Note, obviously that would not need to be done for system-wide > tracing on all CPUs. It would also only need to be done for the > period of tracing when the ioctl is to be used. > ii) Use an event opened for the current process on all CPUs. > Note, if such an additional event is needed, it would also use > additional memory from the user's perf_event_mlock_kb / > RLIMIT_MEMLOCK limit.
Why would a single per-task event not work? I see nothing in the code that would require a per-task-per-cpu setup. Or am I just having trouble reading again?
| |