Feature #566
openUser-space data buffering schemes and the lttng user interface
0%
Description
Here is a typical log with the current almost-2.2.0-rc3 version of lttng:
$ sudo -H lttng create uid -U net://131.132.32.77 Spawning a session daemon Session uid created. Traces will be written in net://131.132.32.77 $ sudo -H lttng enable-channel --buffers-uid -u canaluid UST channel canaluid enabled for session uid $ sudo -H lttng enable-event -u -a Error: Events: Buffer type mismatch for session (channel channel0, session uid) $ sudo -H lttng enable-event -u -a -c canaluid All UST events are enabled in channel canaluid $ sudo -H lttng start Tracing started for session uid $ sudo -H lttng destroy
Once enable-channel --buffers-uid
is issued, it is understood the entire user-space domain will be using per-uid buffers. (This may change with later incarnations of lttng, I presume? Are there plans to allow per-channel control of the buffering schemes?)
The following enable-event -u
command tries to create the default channel (channel0
) because the user did not specify -c
...But why does it try to create that channel using --buffers-pid
? The session daemon knows that the user-space channels are now per-uid.
Resolution: The session daemon should switch the channel buffering scheme default of each session to per-uid whenever this is established by the user's first enable-channel
or enable-event
command. In other words, --buffers-pid
should be the default only when the first enable-channel
is issued (implicitly or explicitly).
It would also be appreciated if a user message were issued when that decision (per-pid vs. per-uid) is taken. Thus our previous session would become:
$ sudo -H lttng create uid -U net://131.132.32.77 Spawning a session daemon Session uid created. Traces will be written in net://131.132.32.77 $ sudo -H lttng enable-channel --buffers-uid -u canaluid UST channel canaluid enabled for session uid UST buffering is per UID $ sudo -H lttng enable-event -u -a All UST events are enabled in channel channel0 $ sudo -H lttng start Tracing started for session uid $ sudo -H lttng destroy