Perfetto

Latest version: v0.11.0

Safety actively analyzes 682416 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 10

23.0

Tracing service and probes:
* Added workaround for a kernel ftrace bug causing some "comm" fields to be
not null-terminated. https://github.com/torvalds/linux/commit/f0a5157803 .
* Added ability to talk to the newer AIDL-based health hal in traced_probes.
It still falls back on the older HIDL interface for older devices.
Trace Processor:
* Changed the argument for the trace path in constructor of TraceProcessor
in the Python API from |file_path| to |trace|.
|file_path| is deprecated and may be removed in the future.
* Changed the Python API constructor. Now it takes a TraceProcessorConfig
instead of passing parameters directly. This may break existing code
but migration should be trivial (all current options are still
supported).
* Fixed a HTTP keepalive bug in trace_processor --httpd. The bug, introduced
in v22.0, caused each RPC request to close the connection, effectively
defeating the 'Connection: Keep-Alive', after each query made by the UI.
* Added parsing of netif_receive_skb events from proto traces.
* Added android_netperf metric based on netif events.
* Fixed a bug that would cause fetch errors when loading traces > 32 MB when
using trace_processor --httpd.
* Added a workaround to tokenize properly /proc/pid/cmdline for chrome
processes on Linux/CrOS. Chrome rewrites its cmdline replacing \0 -> ' '.
UI:
*
SDK:
*

22.1

Tracing service and probes:
* Added workaround for a Linux kernel bug causing some ftrace strings to
be non-null-terminated (https://github.com/torvalds/linux/commit/f0a5157).
Trace Processor:
* Fixed build failures on Windows.

22.0

Tracing service and probes:
* Added Android SDK version to the SystemInfo trace packet.
* Changed compiler flags. Assume recent x64 CPUs (-msse4.2 -mavx -mpopcnt).
This behavior affects only standalone builds and can be changed by setting
enable_perfetto_x64_cpu_opt=false in the GN args.
* The java heap profiler now rescans all the processes every time for
continous_dump_config. The scan_pids_only_on_start can be used to restore
the old behavior.
* Added support for building on ARM Macs.
* Added support for the rss_stat_throttled event on Android via
FtraceConfig.throttle_rss_stat. In newer Android kernels the base rss_stat
event is now unthrottled. rss_stat used to be throttled by a downstream
kernel change, unnecessary after https://lkml.org/lkml/2021/10/25/1411 .
atrace.rc configures throttling from userspace at boot.
* Fixed a bug that caused IPCs to stall traced and hit the watchdog if in
the middle of a suspend/resume. Switched from SND_TIMEO to poll(POLLOUT).
* Added "linux.sysfs_power" data source to poll /sys/class/power_supply/
and report periodically battery charge and drain rate if supported.
* Add snapshotting for non-BOOTTIME ftrace clocks. This fixes handling of
ftrace events from old Linux kernel versions (i.e. 3.x) and adds
proper support for using the "global" clock rather than "boot".
Trace Processor:
* Speeded up proto trace ingestion by 2x (~20 MB/s -> ~40 MB/s).
* Changed LIKE comparisions to be case-senstive. This may break existing
queries but was a necessary from a performance perspective.
Going forward, GLOB must be used, instead of LIKE, for checked in metrics
to avoid unnecessary slowdowns.
* Changed compiler flags, assume recent x64 CPUs (see above).
* Changed how displayTimeUnit is handled in JSON traces to match catapult.
* Added websocket endpoint to RPC interface to reduce query latency.
* Added support for hot-reloading metrics (see //docs/analysis/metrics.md).
* Added ingestion support for non-BOOTTIME ftrace clocks.
UI:
* Added ability to save/restore record config. Remember last used config.
* Fixed bug causing the recording page to hold onto the USB interface making
adb unusable after a recording session.
SDK:
* Added UpdateDataSource() descriptor IPC endpoint to allow updates of the
data source capabilities (e.g., category list for track event).

21.0

Tracing service and probes:
* Added reporting of last 8 PERFETTO_LOG() entries and crash keys to
crash tombstones on Android.
* Changed kallsym parser to save 100ms for starting a tracing session with
enable_ksyms=true.
* Removed advertisement of the built-in data sources "android.heapprofd",
"android.java_hprof", "linux.perf" on Linux and other platforms. Built-in
data sources are only used to lazy-start daemons on Android OS.
* Changed ACL files on Android atrace.rc to support to up to 24 ftrace cpus.
No change on Linux which remains unlimited.
Trace Processor:
* Changed protobuf decoders to use less stack and fall back on heap sooner
(before: 16KB of stack per decoder, after: 1.6KB). It caused problems with
some embedders which use smaller per-thread stacks.
* Added support for SPAN OUTER JOIN on unpartitioned tables.
* Improved performance of as_pandas_dataframe() in the Python API by 16x.
UI:
* Added visualization of direct_reclaim ftrace events.
SDK:
* Added perfetto::{Flow,TerminatingFlow} to the track-event library.

20.1

Tracing service and probes:
* Fixed standalone Windows build. Updated the llvm-win toolchain.

20.0

Tracing service and probes:
* Removed DCHECK that would cause crashes when a debug build of the service
is used with a producer built with -DNDEBUG.
* Changed the service-side field-level filtering configuration protobuf
field number, because the feature had a bug. This is effectively
equivalent to deprecating the feature and reintroducing it under a
different name.
* Added support for boot tracing on Android. Early kernel tracing (prior to
the point when /data is mounted) is not yet supported. For instructions
see /docs/case-studies/android-boot-tracing.md .
Trace Processor:
* Added reqiurement of separating queries by semi-colon (;) followed by
new-line when specifying a query file with -q to trace processor shell.
* Added "ancestor_slice_by_stack" and "descendant_slice_by_stack" table
functions to walk up and down the slice stacks.
* Overhauled windowed sorting to be based on packet ordering and
lifecycle events inside the trace instead of time-based ordering.
* Removed |SortingMode::kForceFlushPeriodWindowedSort| due to changes to the
sorting algorithm, which is now based on Flush events rather than time.
Embedders should switch to |SortingMode::kDefaultHeuristics|. Other
SortingMode enum values are no-ops and will be removed in future versions.
UI:
* Added initial flamegraph support for traced_perf callstack samples.
* Added initial Pivot table for aggregation of userspace slices. The feature
is disabled by default for and requires manual enabling via
https://ui.perfetto.dev/#!/flags .
SDK:
* Changed DCHECK and DLOGs to be always disabled in SDK builds, regardless
of NDEBUG.

Page 7 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.