[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d6a66fd3-b70a-3649-e13e-b3bd891de853@intel.com>
Date: Tue, 18 Apr 2023 09:29:59 +0300
From: Adrian Hunter <adrian.hunter@...el.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Ian Rogers <irogers@...gle.com>,
linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH RFC 1/5] perf: Add ioctl to emit sideband events
On 17/04/23 13:57, Peter Zijlstra wrote:
> 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?
Sorry, "all CPUS" should have been "cpu=-1"
Powered by blists - more mailing lists