Improve the lttng list feature Introduce three new functions to the public API which are lttng_list_channels, lttng_list_events and lttng_list_domains. Also add the lttng_list_kernel_events which list available tracing events of the kernel. Adds new options to the lttng list command for listing a lot more details of a tracing session including channels, events and domains. Also adds the enabled flag to the lttng_event and lttng_channel structure. Fix a bad pointer cast in list events. Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Change configuration file and trace output dir The configuration file containing the session name information is now at the HOME location and named ".lttngrc". The trace output directory is now at the HOME location and named "lttng-traces" containing the traces of each sessions identified by the top level directory called "session_name-date-time". Also fix the metadata's path that was pointing to the old default path in /tmp/lttng. Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Improve trace output path and config path Now, the default config directory is placed in the home directory and the trace output directory is set inside that config directory with name being the session name with date and time. Add get home functio to utils. Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Add enable kernel event using the enable ioctl Two helper functions are added which are get an event by name and a channel by name. The disable and enable event command was modified to use these two functions. Overall, it's now possible to enable/disable at will kernel events. Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Major changes ltt-sessiond ------------- Change command type to add the LTTNG_ prefix. Only kernel command at this point working with the new kernel tracer lttng 2.0. Adds support for the default channel. Kernel tracer session, metadata and streams opening are now handled by the session daemon by removing the public commands for those options. This means that the public API of lttng-tools DO NOT permit to control these three actions anymore. Adds ulimit setting for open files (65535) for sessiond running as UID=0. lttng.h ------------- As mention before, create_session, create_stream and open_metadata is removed from the public API. UUIDs are not exposed anymore by the API. Everything is done with the session name. New lttng event structure added in order to support kernel tracepoints, kprobes and function tracer. New lttng channel structure to create a kernel channel. Add the lttng channel attribute structure also where to put the channel attributes. libkernelctl ------------- Adds flush buffer function and wait quiescent for kernel tracer. Uses the new enable/disable kernel ioctl that replaces create event. lttng ------------- *MAJOR*: This is the inital import of the git-alike UI. Some features are still not implemented but all the basics and more are there. This commit introduce a new feature where the session name is kept in the current directory where the create command was executed (or specified by the user with --path). A .lttng directory is created and a config file that contains, for now, the session name. So, in order to apply command on a session, you either specify it on the command line or go in the directory where your .lttng dir reside. A lot of code was changed/added/removed from all over the lttng-tools tree to fit this big change. Consider this commit to be an almost complete rewrite of the original git command line UI and a big part of the public API. Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Initial work for kernel tracing support This commit adds trace kernel support to the complete set of tools. It is working with the LTTng 2.0 and output traces readeable by babeltrace. Quick changes log below: Add multiple debug statement and bug fixes. Add kernel trace directory creation. Add kernel structure teardown. Start kconsumerd on create session. Start kconsumerd thread after exec. Following up this commit, there will be a huge cleanup because a lot of codes was added to make it work but it's not necessarily clean code structure. Signed-off-by: David Goulet <david.goulet@polymtl.ca>