File _patchinfo of Package patchinfo.40666
<patchinfo incident="40666">
<packager>PPavlu</packager>
<rating>moderate</rating>
<category>recommended</category>
<issue tracker="jsc" id="PED-13237"/>
<summary>Recommended update for libtraceevent, libtracefs, trace-cmd</summary>
<description>This update for libtraceevent, libtracefs, trace-cmd fixes the following issues:
Updates for trace-cmd:
* Update to version 3.3.2:
* Add trace-cmd show --max_latency
* Bail out of trace-cmd reset on invalid options
* Add trace-cmd reset -k option to keep events
* New bash completions
* Update help messages of trace-cmd show for --hist and --trigger options
* Fix some memory errors
* Fix sqlhist initialization of variables
* Fix trace-cmd record demonization stdin redirection to /dev/null
* Update to latest upstream version 3.3.1:
* Disable function trace option func_stack_trace before clearing filter
* Fix compression algorithm for files greater than 2GB
* Update printf format to match unsigned parameters.
* Update to version 3.3.0:
* Now by default, the output shows the latency lines:
* Add feature to build with meson from using make
* Add trace-cmd record --daemonize
* Add trace-cmd show --buffer-subbuf-size option
This will display the "subbuf-size" of the instance ring buffer.
(New Linux kernel featuer added in v6.8)
* Add trace-cmd show --buffer_percent option
This will display the "buffer_percent" option, added in v5.0.
* Add trace-cmd show --hist and --trigger options
Add options to trace-cmd show to display the hist and trigger contents
of events.
* Add new command "sqlhist" that makes trace-cmd do the same work as
the sqlhist code in libtracefs.
* Show "buffer_subbuf_size" in trace-cmd stat
* Add trace-cmd record --subbuf-size option
* Allow trace-cmd report to read multiple files without using the -i
option. That is, "trace-cmd report trace*.dat" will now work.
* Have trace-cmd split work with trace.dat files with multiple instances.
* Allow trace-cmd split to split out instance buffers
* Allow trace-cmd record to support -m option when recording from an agent.
* Fix output file names for trace-cmd split
* Fix the way filters were applied to trace-cmd report with multiple trace.dat
files.
* Fix the trace-cmd reset -d option
* Fix meson build issue
* Make some man pages clean ups
* Fix other minor issues.
- Build with support for zlib and zstd compression.
Updates for libtraceevent:
* Update to 1.8.4:
* Have sizeof() parsing handle u8/s8 through u64/s64
* Print arrays like Linux does
* Print function pointer address when TEP_EVENT_FL_PRINTRAW is specified
* Update to 1.8.3:
* Fix a double free in process_op()
* Do not return a local stack pointer in get_field_str()
* prevent a memory leak in tep_plugin_add_option()
* Prevent a memory leak in process_fields()
* Close shared object in the error path of load_plugin()
* Avoid a simple asprintf case
* Fix event-parse memory leak in process_cond
* Have single quotes represent characters
* Fix tests running on big endian arch
* Update to 1.8.2;
* New APIs:
- tep_record_is_event() - A helper function that basically converts
int type= tep_data_type(event->tep, record);
if (event->id == type) {
/* do something */
}
into:
if (tep_record_is_event(record, event)) {
/* do something */
}
- tep_get_sub_buffer_commit_offset() - Add a function to return the
offset of where the "commit" is located on the subbuffer
so that the application can do its own direct reading of it.
- kbuffer_read_buffer() - Add the functionality to the kbuffer to
act like the read syscall of the ring buffer. That is, it
will load the passed in buffer with the events where the
kbuffer left off, and that passed in buffer can be loaded
into another kbuffer via kbuffer_load_subbuffer().
- kbuffer_dup() - Create a new kbuffer with the same fields of an
existing kbuffer. This will allow traversing a subbuffer
without modifying the contents of another kbuffer that
points to the subbuffer.
- kbuffer_subbuffer() - Return the subbuffer that was loaded into
a kbuffer via kbuffer_load_subbuffer().
- kbuffer_refresh() - In the case of the subbuffer that was loaded
into a kbuffer via kbuffer_load_subbuffer() that is still
active, this function will refresh the meta data to continue
reading events if more were written to it.
- Added tep_get_sub_buffer_data_size() helper function
* Updates:
- Add option to disable building documents for some environments
that do not have everything needed to build the documents to
not fail the build with meson.
- Bump meson version required to build to 0.58.0 as plugins use
str.replace that was introduced in that version.
- Have the sched_switch plugin parse the format field to figure out
what the correct mapping of the "prev_state" field is to produce
the proper string output.
* Fixes:
- Update the default sched_switch "prev_state" string array to match
what's been in the kernel for a while now.
- Fix tep_kbuffer() to fill in the long_size, otherwise it would default
to 32 bit longs and cause a lot of confusion to application developers
- Fix tep_kbuffer man page info
- Fix some meson dependency issues
- Fix kbuffer_read_buffer() timestamp being off in some cases
- Fix curr size in kbuffer_refresh()
* Fix double free in parsing sizeof()
Updates to libtracefs:
* Update to release 1.8.2:
* libtracefs: Have tracefs_instance_tracers() return instance
tracers
* libtrace: Fix memory leak in tracefs_cpu
* libtracefs: Handle synthetic events with dynamic strings as
fields
* Update to release 1.8.1:
* Plug some memory leaks
* Update to v1.8.0:
* remove: add-explicit-meson-thread-dependency.patch
* tracefs_follow_event_clear() and tracefs_follow_missed_events_clear()
API to clean up followers if the tracefs instance is going to be used
for other iterations
* tracefs_instance_file_write_number()
A simple helper function to make it easier to write numbers into the
tracefs files. It does the conversion from number to string, as the
files expect strings and not numbers.
* Add API to work with kbuffer, which gives more control to the application
and speeds it up:
- tracefs_cpu_read_buf()
- tracefs_cpu_buffered_read_buf()
- tracefs_cpu_flush_buf()
* tracefs_instance_get_buffer_percent() and tracefs_instance_set_buffer_percent()
Modify the buffer_percent file that allows readers to block until the buffer
is filled to a given percent. This keeps the reader from causing events that
will add noise to the trace.
* tracefs_instance_clear()
Helper to clear the contents of the current trace instance.
* tep_get_sub_buffer_data_size()
Helper to retrieve the current sub-buffer data size. The Linux kernel tracing
ring buffer is broken up into smaller sub-buffers. This returns the size of
the data portion of those sub-buffers (does not include the sub-buffer meta
data).
* tracefs_load_headers()
API to just load the information about the sub-buffers and nothing more.
* API to extract tracing ring buffer statistics
- tracefs_instance_get_stat()
- tracefs_instance_put_stat()
- tracefs_buffer_stat_entries()
- tracefs_buffer_stat_overrun()
- tracefs_buffer_stat_commit_overrun()
- tracefs_buffer_stat_bytes()
- tracefs_buffer_stat_event_timestamp()
- tracefs_buffer_stat_timestamp()
- tracefs_buffer_stat_dropped_events
* tracefs_instance_set_subbuf_size() and tracefs_instance_get_subbuf_size()
API to modify the sub-buffers size of the tracing ring buffer.
* Added TIMESTAMP_DELTA and TIMESTAMP_DELTA_USECS to tracefs_sql() as a shortcut
for (end.TIMESTAMP - start.TIMESTAMP) and (end.TIMESTAMP_USECS - start.TIMESTAMP_USECS)
respectively
* Add PID filtering API:
- tracefs_filter_pid_function()
- tracefs_filter_pid_events()
- tracefs_filter_pid_function_clear()
- tracefs_filter_pid_events_clear()
* Added tracefs_cpu_snapshot_open() to read the raw data of snapshot buffers
* Added snapshot functions:
- tracefs_snapshot_snap()
- tracefs_snapshot_clear()
- tracefs_snapshot_free()
* Added ring buffer memory mapping APIs
- tracefs_cpu_open_mapped()
- tracefs_cpu_is_mapped()
- tracefs_mapped_is_supported()
- tracefs_cpu_map()
- tracefs_cpu_unmap()
* Updates:
- Increase pipe max size to max value when using splice.
- Clear "max_graph_depth" on tracefs_instance_reset()
- Add missing headers to syscall() and SYS_* defines
- Add dependency fixes to meson build
- Fix some documentation / man page issues
- Fix memory leaks
- Fix cscope rule
- Fix issues in unit tests
- Added many more unit tests
</description>
</patchinfo>