Commit ff0733e
authored
[IPC Protocol] Add specification to configure a user_events eventpipe session (#5454)
In .NET 10, the EventPipe infrastructure will be leveraged to support
[user_events](https://docs.kernel.org/trace/user_events.html).
This PR documents the protocol for enabling a user_events-based
EventPipe Session through the Diagnostics IPC protocol, where a new
EventPipe Command ID `CollectTracing5` will accept necessary tracepoint
configuration.
As the user_events EventPipe session is not streaming based, the payload
is expected to first encode a `uint output_format` to denote the session
format (streaming vs user_events). Afterwards, only relevant session
configuration options are to be encoded, outlined at the top of the
`EventPipe Commands` section in the `Streaming Session` section,
`User_events Session` section, and `Session Providers` section.
For user_events EventPipe sessions, an additional tracepoint_config is
to be encoded, to map Event IDs to tracepoints.
This protocol expects the Client to have access to the
`user_events_data` file in order to enable configuring a `user_event`
EventPipe session, and expects the SCM_RIGHTS to the `user_events_data`
file descriptor to be sent in the continuation stream.
Additionally, as `user_events` does not support callbacks, a new
event_filter config is expected to be encoded in `CollectTracing5`, to
act as an allow/deny list of Event IDs that will apply post
keyword/level filter.1 parent 71de7f1 commit ff0733e
1 file changed
+536
-135
lines changed
0 commit comments