Skip to content

Commit ff0733e

Browse files
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

File tree

1 file changed

+536
-135
lines changed

1 file changed

+536
-135
lines changed

0 commit comments

Comments
 (0)