Changelog#

Next release#

Feature#

  • doc/setup.rst: Put the config fragment in a separate file

  • doc/setup.rst: Remove manual and in-tree module build doc

  • doc: Add api_ai_descs.json generation

  • doc: Set html_baseurl

  • install_base.sh: Add --install-kernel-build-dependencies

  • install_base.sh: Avoid sudo invocation when running as root

  • ipynb/examples/analysis_plots.ipynb: Use polars

  • ipynb/examples/typical_experiment.ipynb: Convert to polars

  • lisa-build-asset: Add x86 and ppc64le arch

  • lisa-buildroot-update-kernel-config: Do not run make command

  • lisa._assets,kmodules.lisa: Add cpp!() macro

  • lisa._assets.binaries: Remove pahole

  • lisa._assets.kmodules.lisa: Add DEFINE_TP_DEPRECATED_EVENT_FEATURE

  • lisa._assets.kmodules.lisa: Add ERR_PTR() bindings

  • lisa._assets.kmodules.lisa: Add FromContained trait

  • lisa._assets.kmodules.lisa: Add JSON schema

  • lisa._assets.kmodules.lisa: Add MODULE_DESCRIPTION()

  • lisa._assets.kmodules.lisa: Add PMU feature

  • lisa._assets.kmodules.lisa: Add Rust runtime

  • lisa._assets.kmodules.lisa: Add Rust support

  • lisa._assets.kmodules.lisa: Add equivalent of tracepoint_string()

  • lisa._assets.kmodules.lisa: Add fs bindings

  • lisa._assets.kmodules.lisa: Add incomplete_opaque_type!()

  • lisa._assets.kmodules.lisa: Add parsec module

  • lisa._assets.kmodules.lisa: Add support for CONFIG_SHADOW_CALL_STACK=y

  • lisa._assets.kmodules.lisa: Add thermal feature

  • lisa._assets.kmodules.lisa: Add workqueue bindings

  • lisa._assets.kmodules.lisa: Allow C type introspection

  • lisa._assets.kmodules.lisa: Allow JSON metadata in Rust code

  • lisa._assets.kmodules.lisa: Allow attaching probe to multiple tracepoints

  • lisa._assets.kmodules.lisa: Allow cargo test

  • lisa._assets.kmodules.lisa: Allow disabling lockdep

  • lisa._assets.kmodules.lisa: Allow more flexible lifetime in work items

  • lisa._assets.kmodules.lisa: Allow sharing lockdep class key

  • lisa._assets.kmodules.lisa: Avoid unnecessary __typeof__() use in generated code

  • lisa._assets.kmodules.lisa: Check for exported symbols and types

  • lisa._assets.kmodules.lisa: Ensure all features are Send + Sync

  • lisa._assets.kmodules.lisa: Extend type introspection to the entire kernel

  • lisa._assets.kmodules.lisa: FFI bindings for negative errors

  • lisa._assets.kmodules.lisa: Flesh out the Rust runtime

  • lisa._assets.kmodules.lisa: Implement new Python/kmod interface

  • lisa._assets.kmodules.lisa: Improve FFI bindings

  • lisa._assets.kmodules.lisa: Log content of module sources

  • lisa._assets.kmodules.lisa: Make a synthetic vmlinux for in-tree builds

  • lisa._assets.kmodules.lisa: Move pixel6 feature to Rust

  • lisa._assets.kmodules.lisa: Reduce event sizes

  • lisa._assets.kmodules.lisa: Report PMU event state

  • lisa._assets.kmodules.lisa: Report effective config upon features start

  • lisa._assets.kmodules.lisa: Rework traceevent bindings

  • lisa._assets.kmodules.lisa: Rework tracepoints bindings

  • lisa._assets.kmodules.lisa: Show compilation warning when introspection info is not available

  • lisa._assets.kmodules.lisa: Support lockdep subclasses

  • lisa._assets.kmodules.lisa: Support structural pinning for locks

  • lisa._assets.kmodules.lisa: Use variably-sized strings for event fields

  • lisa._assets.kmodules.sched_tp: Add "lisa__" prefix to all event names

  • lisa._assets.kmodules.sched_tp: Add device field to pixel6_emeter

  • lisa._assets.kmodules.sched_tp: Change subsystem of ftrace events

  • lisa._assets.kmodules.sched_tp: Extend pixel6_emeter to support all channels

  • lisa._assets.kmodules: Add kallsyms introspection support

  • lisa._assets: Add ABI_BINARIES_FOLDER

  • lisa._btf: Add BTF parser

  • lisa._cli_tools.lisa_load_kmod: Add --no-enable-all parameter

  • lisa._cli_tools.lisa_load_kmod: Display events supported by the module

  • lisa._cli_tools.lisa_load_kmod: Rework legacy features integration

  • lisa._generic: Add OneOf

  • lisa._kmod: Add build-env settings

  • lisa._kmod: Add fuse-overlayfs overlay backend

  • lisa._kmod: Add util_est_unified trace events

  • lisa._kmod: Bump Alpine release to 3.21.3

  • lisa._kmod: Cache build of Rust code

  • lisa._kmod: Capture dmesg output when loading kmod

  • lisa._kmod: Decouple configuring features and enabling them

  • lisa._kmod: Dissociate Alpine chroot install and Rust install

  • lisa._kmod: Ensure kernel tree is clean

  • lisa._kmod: Give priority to toolchain that was used for the kernel

  • lisa._kmod: Improve toolchain detection logging

  • lisa._kmod: KmodSrc: Separate checksum and checksum_sources

  • lisa._kmod: LISAFtraceDynamicKmod: Detect modules built in-tree

  • lisa._kmod: Log KmodSrc file list

  • lisa._kmod: Refactor toolchain selection

  • lisa._kmod: Remove CONFIG_CFI_CLANG check in FtraceDynamicKmod

  • lisa._kmod: Rename LISAFtraceDynamicKmod to LISADynamicKmod

  • lisa._kmod: Restrict toolchain location when toolchain-path is set

  • lisa._kmod: Upgrade default alpine version to 3.20

  • lisa._kmod: Use Alpine 3.18 for the chroot

  • lisa._kmod: Use rmmod -f if rmmod failed

  • lisa._typeclass: Implement FromString for Optional[List[str]]

  • lisa.analysis._pixel: Add "energy" column to df_power_meter()

  • lisa.analysis._pixel: Allow plotting energy from plot_power_meter()

  • lisa.analysis.base: Make TraceAnalysisBase.cache() more powerful

  • lisa.analysis.frequency: Add plot_cpu_frequencies(overutilized=True) parameter

  • lisa.analysis.frequency: Convert plot_cpu_frequencies() to polars

  • lisa.analysis.latency: Make LatencyAnalysis.plot_latency_bands() a lot faster

  • lisa.analysis.load_tracking: Implement unified util_est

  • lisa.analysis.notebook: Add NotebookAnalysis.df_all_events(error='raise') parameter

  • lisa.analysis.pixel6: Add GPU to emeter channel names

  • lisa.analysis.status: Convert StatusAnalysis to polars

  • lisa.analysis.status: Make StatusAnalysis.plot_overutilized() a lot faster

  • lisa.analysis.tasks: Convert df_rt_tasks() to polars

  • lisa.conf: Add DelegatedLevelKeyDesc

  • lisa.conf: Add FilteredDeferredValue

  • lisa.conf: Add MultiSrcConf.add_src(inplace=True) parameter

  • lisa.conf: Add VariadicLevelKeyDesc

  • lisa.conf: Allow LevelKeyDesc to accept leaf values

  • lisa.conf: Improve FilteredDeferredValue display

  • lisa.conf: Support typing.Union

  • lisa.conf: Use typeguard to validate conf key types

  • lisa.conf: Use unicode for MultiSrcConf display

  • lisa.datautils: Add series_update_duplicates()

  • lisa.datautils: Enable polars in df_refit_index() and df_add_delta()

  • lisa.datautils: Enable some functions for polars objects

  • lisa.datautils: Speedup df_refit_index()

  • lisa.notebook: Add plot_signal(window=...) parameter

  • lisa.notebook: Allow passing a dataframe mapping to _hv_link_dataframes()

  • lisa.notebook: Allow polars LazyFrame in plot_signal()

  • lisa.notebook: Make plot_signal() work with polars.DataFrame

  • lisa.notebook: Support polars dataframe in _hv_link_dataframes()

  • lisa.target: Add Target._from_devlib_target()

  • lisa.target: Add Target.closing()

  • lisa.target: Allow passing a key to Target.cached_pull()

  • lisa.target: Allow repeated --conf in TargetConf.from_cli()

  • lisa.target: Forward kwargs to ctor in Target.from_conf()

  • lisa.target: Make Target.res_dir lazily created

  • lisa.target: Split module build conf

  • lisa.target: Switch Target(lazy_platinfo=...) default to True

  • lisa.target: Use lisa._generic.OneOf in TargetConf

  • lisa.tests.staging.utilclamp: Add expected signal plot

  • lisa.trace: Add Trace(..., namespaces=("lisa", None)) parameter

  • lisa.trace: Add TraceBase.with_time_offset()

  • lisa.trace: Add TraceView(process_df=...) parameter

  • lisa.trace: Add _Trace._parse_all()

  • lisa.trace: Allow preloading all available events

  • lisa.trace: Allow str sources for meta events

  • lisa.trace: Allow trace parsers to return a list of name for each addr in symbols-address

  • lisa.trace: Do not apply event namespace if the event is already namespaces

  • lisa.trace: Fall back on DirCache if we cannot create a swap next to the trace path.

  • lisa.trace: Gather the list of available events from the parser

  • lisa.trace: Generalize TraceCache to other data type

  • lisa.trace: Improve MissingTraceEventError display

  • lisa.trace: Make Trace a context manager

  • lisa.trace: Make all parser metadata cacheable

  • lisa.trace: Make metadata writing non-blocking

  • lisa.trace: Only show closest matches in MissingTraceEventError

  • lisa.trace: Preload trace metadata

  • lisa.trace: Simplify the decision to write a dataframe to swap

  • lisa.trace: Switch to TraceDumpTraceParser by default

  • lisa.utils.Serializable: Allow !call to take positional args

  • lisa.utils: Add !untrusted and !include-untrusted YAML tags to Serializable

  • lisa.utils: Add DirCache(fmt_version=...) parameter

  • lisa.utils: Add is_link_dead()

  • lisa.utils: Add mp_spawn_pool()

  • lisa.utils: Add subprocess_detailed_excep() context manager

  • lisa.utils: Add typing hint support to get_cls_name()

  • lisa.utils: Add update_params_from()

  • lisa.utils: Allow using delegate_getattr() in __getattribute__

  • lisa.utils: Generalize group_by_value()

  • lisa.utils: Improve resolve_dotted_name()

  • lisa.utils: Log the DirCache key and token upon lookup

  • lisa.utils: Make DirCache(populate) parameter optional

  • lisa.utils: Make get_sphinx_name() work with modules

  • lisa.utils: Make set_nested_key() return mapping

  • lisa.utils: Merge get_cls_name() and get_sphinx_name() into get_obj_name()

  • lisa.utils: Normalize DirCache keys

  • lisa.utils: Read LISA_CACHE_HOME env var

  • lisa.wa.plugins: Add LISA kmod workload-automation plugin

  • lisa.wlgen.rta: Add WloadPropertyBase.__rmul__()

  • lisa.wlgen.rta: Use ComposableMultiConcretePropertyBase._ATTRIBUTES types

  • lisa/_assets/kmodules/lisa: Add version check

  • lisa/_assets/kmodules/lisa: Assert alignment of Rust allocation

  • lisa/_assets/kmodules/lisa: Support in-tree builds

  • lisa: Remove matplotlib dependency

  • lisa: Rename the module to "lisa" across all workflows

  • lisa_tests.test_example: Comment-out a return annotation to hide it to exekall

  • setup.py: Bump required Python to >= 3.8

  • shell/lisa_shell: Accomodate vscode wonky venv support

  • tests/test_trace.py: Add trace metadata unit tests

  • tests: Add BTF tests

  • tools/batch-rebase: Add topics/*/nr-commits key

  • tools/buildroot_config: Sync rootfs to devlib busybox & add '-o nice' to ps

  • tools/exekall: Add run --dependency option

  • tools/exekall: Handle namespace packages

  • tools/kmodules: Add helpers for in-tree module builds

  • tools/lisa-buildroot-update-kernel-config: Apply the LISA module kernel fragment

  • tools/lisa-make-preview: Rename to lisa-combine-pr and add CLI args

  • tools/recipes/pahole.recipe: Update pahole recipe

  • tools/recipes/rt-app.recipe: Update rt-app

  • tools/trace-parser/trace-tools: Improve pretty printing error display

  • tools/trace-parser/trace-tools: Make trace.dat support a cargo feature

  • tools/trace-parser/trace-tools: Recognize uint8_t as binary data

  • tools/trace-parser/trace-tools: Show event ID in check-header command

  • tools/trace-parser/traceevent: Simplify bitmap printing

  • tools/trace-parser: Add Rust trace.dat parser

  • tools/trace-parser: Allow adjustable row-group size

  • tools/trace-parser: Allow changing compression on CLI

  • tools/trace-parser: Allow changing the chunk size on CLI

  • tools/trace-parser: Only compile-in compression codec that are used

  • tools/trace-parser: Return impl Iterator rather than impl IntoIterator

  • tools/trace-parser: Scan the trace for metadata

  • tools/trace-parser: Support use of kallsyms in C expression

Fix#

  • .github: Use alternate gitlab clone URL

  • .gitignore: Ignore devmode_extra_requirements.txt

  • .gitlab-ci.yml: Avoid upgrading packages after source init_env

  • .gitlab-ci.yml: Fix github pages recipe

  • Fix a couple of GroupBy.apply() deprecations

  • doc/conf.py: Disable version switcher for local builds.

  • doc/conf.py: Ensure we fetch tags when building doc

  • doc/conf.py: Workaround ipywidget intersphinx inventory issue

  • doc/conf.py: prepare() only once per build

  • doc/contributors_guide.rst: Remove some definition lists

  • doc/kernel_tests.rst: Fix reStructuredText warning

  • doc/setup.rst: Remove broken indentation

  • doc/setup.rst: Remove useless sudo

  • doc/setup.rst: Update the manual module build documentation

  • doc/traces: Amend trace_pixel6.dat to avoid dropped events

  • doc/workloads.rst: Turn definition list into bullet list

  • doc: Fix caching of rendered notebooks

  • doc: Fix class name typo

  • doc: Fix plot caching

  • doc: Fix warning when copying notebook from cache

  • doc: Support inheritance for plot methods

  • doc: Use best effort import of lisa submodules

  • doc: re-enable Sphinx nitpicky mode

  • exekall: Add missing f-string prefix

  • exekall: Fix handling of parametrized classes

  • exekall: Only consider callables in the packages under test

  • install_base.sh: Add copyright statement

  • install_base.sh: Add pahole to --kernel-build-dependencies

  • install_base.sh: Address shellcheck findings

  • install_base.sh: Fix default value of devlib parameters

  • install_base.sh: Fix pahole dependency

  • install_base.sh: Fixup devlib parameter handling

  • install_base.sh: Offload Android SDK/tools installation to devlib

  • install_base.sh: Remove a useless print

  • install_base.sh: follow symlink when trying determining JAVA_HOME

  • ipynb/examples/typical_experiment.ipynb: Refresh doc URLs

  • ipynb/tests/synthetics_example.ipynb: Fix use of deprecated APIs

  • ipynb: Ensure all example notebooks have a title

  • lisa._assets.binaries: Update pahole

  • lisa._assets.binaries: Update trace-cmd

  • lisa._assets.kmodules.kconfig_fragment.config: Add CONFIG_FTRACE=y

  • lisa._assets.kmodules.lisa: Adapt to new locations of some macros

  • lisa._assets.kmodules.lisa: Add include guard to private_types.h

  • lisa._assets.kmodules.lisa: Allow module-specific make variables

  • lisa._assets.kmodules.lisa: Check return value of kernel_write()

  • lisa._assets.kmodules.lisa: Compat with old CFI

  • lisa._assets.kmodules.lisa: Compat with old kernels APIs

  • lisa._assets.kmodules.lisa: Create temp file in $(MODULE_OBJ)

  • lisa._assets.kmodules.lisa: Do not set a global allocator when running tests

  • lisa._assets.kmodules.lisa: Ensure warnings dont break build

  • lisa._assets.kmodules.lisa: Fail module init if unknown feature is requested

  • lisa._assets.kmodules.lisa: Fix Rust cconstant!() for 0 value

  • lisa._assets.kmodules.lisa: Fix and improve parsec.h

  • lisa._assets.kmodules.lisa: Fix conditional presence of lisa__sched_cpu_capacity.capacity_orig field

  • lisa._assets.kmodules.lisa: Fix exported symbols detection

  • lisa._assets.kmodules.lisa: Fix generated C shims header usage

  • lisa._assets.kmodules.lisa: Fix introspect_header.py

  • lisa._assets.kmodules.lisa: Fix lisa__sched_overutilized.overutilized field type

  • lisa._assets.kmodules.lisa: Fix module checksum

  • lisa._assets.kmodules.lisa: Fix module compilation on 6.13 kernel

  • lisa._assets.kmodules.lisa: Fix pixel6 emeter sampling rate

  • lisa._assets.kmodules.lisa: Fix race condition in Makefile

  • lisa._assets.kmodules.lisa: Fix rq->uclamp guards

  • lisa._assets.kmodules.lisa: Fix sha1sum invocation

  • lisa._assets.kmodules.lisa: Harden current CPU capacity computation

  • lisa._assets.kmodules.lisa: Load all features by default

  • lisa._assets.kmodules.lisa: Make error location accurate in Rust's cfunc bodies

  • lisa._assets.kmodules.lisa: Make introspect_header.py a no-op when imported

  • lisa._assets.kmodules.lisa: Makefile: Fix grouped rule

  • lisa._assets.kmodules.lisa: Makefile: Fix objcopy and objdump invocations

  • lisa._assets.kmodules.lisa: Makefile: Workaround llvm-objdump and llvm-objcopy bugs

  • lisa._assets.kmodules.lisa: Pass mod to filp_open()

  • lisa._assets.kmodules.lisa: Refcount explicit feature enabling

  • lisa._assets.kmodules.lisa: Rename CFS_UCLAMP into RQ_UCLAMP

  • lisa._assets.kmodules.lisa: Rename feature event__pixel6_emeter to event__lisa__pixel6_emeter

  • lisa._assets.kmodules.lisa: Rename some helpers to remove lisa_ prefix

  • lisa._assets.kmodules.lisa: Replace strlcpy() with strscpy()

  • lisa._assets.kmodules.lisa: Replace synthetic trace event bindings with TRACE_EVENT()

  • lisa._assets.kmodules.lisa: Rework wq bindings

  • lisa._assets.kmodules.lisa: Shield against KBUILD_ABS_SRCTREE

  • lisa._assets.kmodules.lisa: Shield against missing arch_freq_scale

  • lisa._assets.kmodules.lisa: Support Linux kernel >= v6.16

  • lisa._assets.kmodules.lisa: Support older linkers

  • lisa._assets.kmodules.lisa: Update tracepoint probes prototype

  • lisa._assets.kmodules.lisa: Use const char* for &CStr binding

  • lisa._assets.kmodules.lisa: Use introspect_header.py to avoid type name clash

  • lisa._assets.kmodules.lisa: Use kallsyms symbol address

  • lisa._assets.kmodules.lisa: Workaround broken ld.lld

  • lisa._assets.kmodules.lisa: Workaround llvm-nm bug

  • lisa._assets.kmodules: Rename lisa__pixel6_emeter feature to event__lisa__pixel6_emeter

  • lisa._btf: Ensure padding members in nested anonymous struct/union have unique names

  • lisa._btf: Ensure stable layout for structs from BTF

  • lisa._btf: Ensure the BTF types are dumped as deeply as possible when forward decls are used

  • lisa._btf: Fix alignment inference

  • lisa._btf: Fix anonymous struct/union specifiers

  • lisa._btf: Fix comment

  • lisa._btf: Fix nested anonymous struct/union dumping

  • lisa._btf: Fix renaming of BTFForwardDecl

  • lisa._cli_tools.lisa_polars_pkg: Resist coredumps

  • lisa._doc.helpers: Fix "exec" directive

  • lisa._doc.helpers: Fix analysis method listings

  • lisa._doc.helpers: Fix dataframe analysis listing

  • lisa._doc.helpers: Fix regex pattern

  • lisa._doc.helpers: Improve AI API index

  • lisa._git: Default to including binary files in patches

  • lisa._git: Fix get_uncommited_patch() output decoding

  • lisa._git: Fix get_uncommited_patch(path=...)

  • lisa._git: Rename get_uncommited_patch() to get_uncommitted_patch

  • lisa._git: Use core.checkStat=minimal

  • lisa._kmod: Add missing "perl" chroot kernel build dependency

  • lisa._kmod: Add more autodetected toolchain triplets

  • lisa._kmod: Add overlay-backend to kernel_overlays DirCache key

  • lisa._kmod: Add x86 32bit support

  • lisa._kmod: Allow aarch64-none-elf- toolchain autodetection

  • lisa._kmod: Allow more module source layout flexbility

  • lisa._kmod: Autodetect arm-none-eabi- toolchain for armv7

  • lisa._kmod: Avoid conflict in kernel tree cache keys

  • lisa._kmod: Avoid handling TargetStableCalledProcessError

  • lisa._kmod: Avoid raising exception when target ABI is unknown

  • lisa._kmod: Cache compilation on cc --version

  • lisa._kmod: Check for file availibity rather than kernel config

  • lisa._kmod: Cleanly disconnect from Target in subprocess

  • lisa._kmod: Deal with tarfile API change

  • lisa._kmod: Do not download kernel.org tarball for rc kernels

  • lisa._kmod: Do not include __pycache__ in kmodule sources

  • lisa._kmod: Do not install gcc explicitly on clang Alpine chroot

  • lisa._kmod: Do not raise if a tested compiler binary does not exist

  • lisa._kmod: Do not use module symbols from kallsyms

  • lisa._kmod: Do not warn based on an idea of the "perfect toolchain".

  • lisa._kmod: Ensure all module sources are checksumed

  • lisa._kmod: Ensure cross_compiles list is always populated

  • lisa._kmod: Ensure we select clang-XYZ over clang on Alpine

  • lisa._kmod: Filter kallsyms from lisa module symbols

  • lisa._kmod: Fix Alpine build env when manual package list is selected.

  • lisa._kmod: Fix Alpine clang package name

  • lisa._kmod: Fix an error path in CC inference

  • lisa._kmod: Fix atomic headers sha1 fixup

  • lisa._kmod: Fix cargo caching for Alpine build

  • lisa._kmod: Fix overlayfs mount on some hosts

  • lisa._kmod: Fix pre-existing .ko loading

  • lisa._kmod: Fix pre-installed module detection

  • lisa._kmod: Fix preinstalled kmod path when base path exists

  • lisa._kmod: Fix toolchain-path support

  • lisa._kmod: Fix typo in an error message

  • lisa._kmod: Fix use of arch vs abi

  • lisa._kmod: Fixup Alpine chroot binary names

  • lisa._kmod: Forbid empty toolchain-path

  • lisa._kmod: Force tools when LLVM=-N is used

  • lisa._kmod: Give priority to bare "clang" over "clang-XYZ"

  • lisa._kmod: Harden against KCONFIG_CONFIG != .config

  • lisa._kmod: Honor LLVM=-XXX in alpine build env

  • lisa._kmod: Make it clear that some module setup are unsupported

  • lisa._kmod: Make toolchain selection reproducible

  • lisa._kmod: Propagate TMPDIR to subprocesses

  • lisa._kmod: Rationalize the Alpine chroot arch selection

  • lisa._kmod: Remove duplicates in cross_compiles list

  • lisa._kmod: Repair atomic headers fixup

  • lisa._kmod: Rework pre-installed module detection

  • lisa._kmod: Sanitize CC and make vars handling

  • lisa._kmod: Support paths for CC make var

  • lisa._kmod: Use busybox insmod

  • lisa._kmod: Use kernel version info when choosing alpine toolchain

  • lisa._kmod: Use rust spec as part of Alpine chroot cache key

  • lisa._kmod: Use target.pull(as_root=True) when necessary

  • lisa._kmod: Use versioned LLVM tools in Alpine

  • lisa._kmod: Warn about non ideal toolchain in more situations

  • lisa._kmod: Workaround new rustup behavior

  • lisa._typeclass: Fix BuiltinFromStringInstance

  • lisa._typeclass: Make all instances private

  • lisa._unshare: Ensure logging is setup before unpickling function

  • lisa.analysi._proxy: Fix _AnalysisPreset unpickling

  • lisa.analysis.base: Disable undo/redo bokeh tools

  • lisa.analysis.base: Fix TraceAnalysisBase.cache()

  • lisa.analysis.base: Fix broken import

  • lisa.analysis.base: Fix pandas index inference

  • lisa.analysis.base: Set default options for all holoviews item that accept it

  • lisa.analysis.base: Set plot height with output="ui"

  • lisa.analysis.rta: Add missing pandas DataFrame index name

  • lisa.analysis.status: Fix use of pl.Expr.shift(fill_value=...)

  • lisa.analysis.tasks: Address polars warning

  • lisa.analysis.tasks: Fix df_rt_tasks(min_prio=...) default value

  • lisa.analysis.tasks: Fix plot_task_residency()

  • lisa.analysis.tasks: Fix plot_tasks_activation()

  • lisa.analysis.tasks: Fix plot_tasks_activation() duty cycle and duration display

  • lisa.analysis.tasks: Fix stringify_task_state_series()

  • lisa.analysis.tasks: Handle correct exception in get_task_ids()

  • lisa.analysis.tasks: Replace task_rename pid field with __pid

  • lisa.analysis.tasks: Support polars 1.15.0

  • lisa.analysis: Add missing polars/pandas conversion

  • lisa.analysis: Do not force the first column to be the index on polars -> pandas conversions

  • lisa.analysis: Fix NO_INDEX usage

  • lisa.conf: Deal with import errors more cleanly.

  • lisa.conf: Fix LevelKeyDesc.get_help() reST output

  • lisa.conf: Fix YAML comments in SimpleMultiSrcConf.to_yaml_map()

  • lisa.conf: Fix an exception message

  • lisa.conf: Forward memo in __deepcopy__

  • lisa.conf: Remove debug logging when getting/setting a key

  • lisa.datautils: Convert all polars Duration to float in pandas

  • lisa.datautils: Fix _pandas_find_unique_bool_vector()

  • lisa.datautils: Fix _polars_window_signals compress_init=True

  • lisa.datautils: Fix pandas/polars dataframe conversion index handling

  • lisa.datautils: Update for pandas 2.1.0

  • lisa.energy_model: Add missing events decorator to EnergyModel.estimate_from_trace

  • lisa.energy_model: Handle recent pandas

  • lisa.notebook: Allow passing no dataframes in _hv_link_dataframes()

  • lisa.pelt: Fix plet_settling_time()

  • lisa.platforms.platinfo: Handle better unknown cpu-capacities/writeable

  • lisa.target: Add missing f-string

  • lisa.target: Allow mount to work on Android

  • lisa.target: Fix adb-over-ip connection

  • lisa.target: Improve Target.from_cli() --conf handling

  • lisa.target: Resolve known_hosts path when strict_host_check=True

  • lisa.tests.base: Fix FtraceTestBundle.trace events namespaces

  • lisa.tests.base: Iterate over Categorical Series rather than .apply()

  • lisa.tests.base: Use non-deprecated datetime functions

  • lisa.tests.staging.utilclamp: Avoid overlapping CPU capacities

  • lisa.tests.staging.utilclamp: Choose uclamp so that freq is in the middle of a band

  • lisa.tests.staging.utilclamp: Fix UtilClamp expected frequency

  • lisa.tests.staging.utilclamp: Fix debug plot

  • lisa.tests.staging.utilclamp: Fix uclamp value type

  • lisa.tests.starting.utilclamp: Use square brackets for df column access

  • lisa.trace: Allow best-effort swap writing

  • lisa.trace: Allow parsers to return LazyFrames based on scans of files not in the cache

  • lisa.trace: Avoid error log when dataframe cannot be serialized to cache

  • lisa.trace: Avoid errors when dropping non-existent columns

  • lisa.trace: Bind "path" in TraceParserBase.__init__()

  • lisa.trace: Compress cached parquet files

  • lisa.trace: Do not query parser if available events set is known

  • lisa.trace: Do not use pl.Expr.str on Categorical

  • lisa.trace: Ensure MissingTraceEventError has accurate event info

  • lisa.trace: Ensure Trace.window has a (Timestamp, Timestamp) type

  • lisa.trace: Ensure TxtTraceParser.from_data(events=None) works

  • lisa.trace: Ensure _TraceProxy has a __deallocator attribute

  • lisa.trace: Ensure the dataframe cache preserves the index column

  • lisa.trace: Fix FtraceCollector error when non-existant event is required

  • lisa.trace: Fix FtraceCollector(events=['print'])

  • lisa.trace: Fix FtraceConf merging

  • lisa.trace: Fix FtraceConf.add_merged_src()

  • lisa.trace: Fix FtraceConf.merge()

  • lisa.trace: Fix MockTraceParser time range inference

  • lisa.trace: Fix Trace attributes init order

  • lisa.trace: Fix Trace data swap size estimation

  • lisa.trace: Fix TraceEventCheckerBase.check_events() DynamicTraceEventChecker handling

  • lisa.trace: Fix TraceEventCheckerBase.check_events() with namespaces

  • lisa.trace: Fix caching for Trace(normalize_time=...) views

  • lisa.trace: Fix cpus-count metadata on trace-cmd parser

  • lisa.trace: Fix dataframe prefiltering for userspace ftrace events

  • lisa.trace: Fix meta event availability detection

  • lisa.trace: Fix parquet loading from cache

  • lisa.trace: Fix parser identification

  • lisa.trace: Fix parser metadata handling

  • lisa.trace: Fix parser parquet stealing

  • lisa.trace: Fix polars LazyFrame caching

  • lisa.trace: Fix polars exception import

  • lisa.trace: Fix polars scan path handling

  • lisa.trace: Fix support for Polars 1.32

  • lisa.trace: Fix task comm extraction

  • lisa.trace: Fix text trace parser regex

  • lisa.trace: Fix trace-id metadata

  • lisa.trace: Hide polars streaming engine DeprecationWarning

  • lisa.trace: Hide warnings related to LazyFrame JSON serialization

  • lisa.trace: Improve missing optional events FtraceCollector reporting

  • lisa.trace: Only update metadata JSON if necessary

  • lisa.trace: Reduce FtraceConf.add_merged_src() debug output

  • lisa.trace: Remove dataframe columns that should not be exposed

  • lisa.trace: Rename FtraceConf event-namespaces key

  • lisa.trace: Run trace events discovery as root

  • lisa.trace: Support polars 1.2.0

  • lisa.trace: Support polars 1.7.0

  • lisa.trace: Treat DynamicTraceEventChecker as optional in FtraceCollector

  • lisa.trace: Update Trace.df_event() docstring

  • lisa.utils.Serializable: Only allow custom YAML tags in unsafe mode.

  • lisa.utils: Avoid abbreviating code in get_obj_name()

  • lisa.utils: Avoid using tempfile.TemporaryDirectory(delete) parameter

  • lisa.utils: Fix DirCache temporary cleanup

  • lisa.utils: Fix YAML constructor handling

  • lisa.utils: Fix deprecate() decorator handling of import errors

  • lisa.utils: Fix inspect.getsource() for newtype() in Python 3.13

  • lisa.utils: Fix optional_kwargs __doc__ forwarding

  • lisa.utils: Hide warnings in import_all_submodules()

  • lisa.utils: Make memoized decorator thread-safe

  • lisa.utils: Stop using ruamel.yaml.YAML(typ='unsafe')

  • lisa.utils: Strip whitespaces in get_short_doc()

  • lisa.version: Check if we are inside a git repository

  • lisa.version: Make VERSION_TOKEN only depend on lisa sources

  • lisa.version: Take binary files diff into account

  • lisa.wa.plugins._kmod: Fix lisa-kmod instrument

  • lisa.wa: Fix WATraceCollector.traces

  • lisa.wlgen.rta: Fix ComposableMultiConcretePropertyBase._ATTRIBUTES type hint

  • lisa.wlgen.rta: Fix PeriodicWload(run_wload=...) expected type

  • lisa.wlgen.rta: Fix PeriodicWload.unscaled_duty_cycle_pct()

  • lisa.wlgen.rta: Fix docstring of PeriodicWload

  • lisa.wlgen.rta: Fix double self parameter passing

  • lisa.wlgen.rta: Fix rt-app calibration debug logging

  • lisa/_assets//binaries/*/rt-app: Update rt-app

  • lisa/_assets/kmodules/lisa: Add symbol namespace for kernel_read()

  • lisa/_assets/kmodules/lisa: Fix typo __worqueue

  • lisa/analysis: Customize power rails for Pixel-9

  • lisa: Add pyproject.toml

  • lisa: Address some pandas FutureWarning

  • lisa: Ensure DirCache always has fmt_version set

  • lisa: Fix __dir__ implementations

  • lisa: Fix pl.LazyFrame.rename() uses

  • lisa: Fix use of inspect.BoundArguments.arguments

  • lisa: Remove block quote from docstrings

  • lisa: Remove dependency on nest_asyncio

  • lisa: Remove use of pandas.Series.fillna(method=...)

  • lisa: Replace np.NaN with np.nan

  • lisa: Shield __getattr__() implementations from infinite recursion

  • lisa: Silence polars fork warning

  • lisa: Upgrade code for polars 1.0.0

  • lisa: Use typing.Sequence instead of typing.List

  • lsia.trace: Fix events-namespaces FtraceConf key type

  • shell/lisa_shell: Avoid error if ANDROID_HOME does not exist

  • shell/lisa_shell: Better report which virtual env is disabled

  • shell/lisa_shell: Create git hooks dir

  • shell/lisa_shell: Fix error message when tkinter is not installed

  • shell/lisa_shell: Fix hook install in git worktrees

  • shell/lisa_shell: Propagate pip errors in lisa-install

  • shell: Fix git hook install location

  • target_conf.yml: analysis: Fix trivial typos

  • tests: Fix task PID/comm mapping unit test

  • tests: Fix test_get_task_id

  • tools/batch-rebase: Allow any branch name

  • tools/batch-rebase: Always try YAML load and display an error if ruamel.yaml is not installed

  • tools/batch-rebase: Cherry pick commits in correct order

  • tools/batch-rebase: Fix cherry picking in some scenarios

  • tools/batch-rebase: Fix content of .batch-rebase-state when a conflict occured

  • tools/batch-rebase: Improve error message when parsing configuration

  • tools/batch-rebase: Support Path in json dump

  • tools/batch-rebase: Use typing instead of lisa._generic

  • tools/batch-rebase: require subcommand in CLI

  • tools/bisector: Fix ruamel usage of DEFAULT_MAPPING_TAG

  • tools/buildroot_config: Remove deprecated config

  • tools/check-setuppy: Allow running without LISA_HOME env var set

  • tools/exekall: Allow imported modules to manipulate sys.modules

  • tools/exekall: Do not consider inherited methods defined outside of the package set

  • tools/exekall: Fix use of Path as str

  • tools/exekall: Restrict selected callables

  • tools/lisa-build-asset: Assume BROKEN_CROSS_COMPILATION=1

  • tools/lisa-build-asset: Avoid emptying --build-dir

  • tools/lisa-build-asset: Fix --build-dir and TMPDIR handling

  • tools/lisa-build-asset: Try harder to remove bind mounts

  • tools/lisa-build-asset: Use lazy umount

  • tools/lisa-combine-gitlab-mr: Use merge request reference

  • tools/lisa-combine-pr: Use logging module

  • tools/lisa-make-preview: Fix case where there is no preview PR

  • tools/lisa-make-preview: Use branch sha1 for remote name

  • tools/lisa-plot: Ensure we never silently consume an exception

  • tools/lisa-version: Make lisa-version work regardless of current working directory

  • tools/recipes/busybox.recipe: Fix insmod applet

  • tools/recipes/pahole.manifest.yaml: Add typedef fix

  • tools/recipes/rt-app.manifest.yaml: Rebase topics and fix uclamp-reset range

  • tools/recipes/trace-cmd.recipe: Avoid building shared object

  • tools/recipes/trace-cmd.recipe: Enable zlib

  • tools/trace-parser/trace-tools: Fix parquet conversion

  • tools/trace-parser/trace-tools: Fix trace_printk() schema inference

  • tools/trace-parser/trace-tools: Limit amount of reported errors

  • tools/trace-parser/traceevent: Make attempt to build a decoder for some type an error

  • tools/trace-parser: Allow more than one symbol to share an address

  • tools/trace-parser: Allow trailing whitespaces in trace_printk events

  • tools/trace-parser: Better error handling for truncated files

  • tools/trace-parser: Display more precise error in some cases

  • tools/trace-parser: Do not emit event info key if event did not occur

  • tools/trace-parser: Fix %zu, %zd and %zx support

  • tools/trace-parser: Fix __print_flags() display

  • tools/trace-parser: Fix event selection

  • tools/trace-parser: Fix parsing of __typeof__(<type>)

  • tools/trace-parser: Fix symbol size display

  • tools/trace-parser: Propagate writer thread error

  • tools/trace-parser: Relax kallsyms filter

  • tools/trace-parser: Remove double indirections

  • tools: Add missing __init__.py

  • tools: Remove main() call

Breaking change#

  • install_base.sh: Remove --install-bisector-dbus

  • lisa._assets.kmodules.lisa: Avoid unnecessary string copies

  • lisa._kmod: Do not uninstall() kmod before installing it

  • lisa.datautils: Disallow df_window(clip_window=False)

  • lisa.datautils: Enforce string for column names in converted dataframes

  • lisa.datautils: Remove df_refit_index(method=...) parameter

  • lisa.notebook: Do not initialize holoviews

  • lisa.trace: Convert TxtTraceParserBase internals to polars

  • lisa.trace: Make TraceCache private

  • lisa.trace: Make event namespaces simple prefixes

  • lisa.trace: Move event sanitization to parser classes

  • lisa.trace: Remove Trace.df_event(raw=...) parameter

  • lisa.trace: Remove TrappyTraceParser

  • lisa.trace: Remove cpumask sanitization

  • lisa.trace: Remove optional field support in meta events

  • lisa.trace: Remove trace_printk@ meta event bputs support

  • lisa.trace: Use Categorical for polars LazyFrame string columns

  • lisa.wa_results_collector: Remove the module

  • lisa: Move test application code into its own package

  • lisa: Remove matplotlib options for holoviews plots

  • lisa: Remove support for Vagrant

  • lisa_tests: Split off lisa_tests

v3.1.0#

Feature#

  • lisa._assets.kmodules.sched_tp: Add Pixel 6 integrated energy meter support

  • lisa._assets: Make HOST_PATH depend on LISA_USE_SYSTEM_BIN

  • lisa._kmod: Add DynamicKmod.mod_name property

  • lisa._kmod: Add a from_proc_config() kernel tree loader

  • lisa._kmod: Bump Alpine to v3.16

  • lisa._kmod: Bump to Alpine v3.17.3

  • lisa._kmod: Explicitly pass module/kernel path when building module

  • lisa._kmod: Improve kernel tree preparation exception reporting

  • lisa._kmod: Update Alpine to v3.17.1

  • lisa.analysis.latency: Include CPUs in latency DFs

  • lisa.analysis: Add Pixel 6 analysis

  • lisa.notebook: Add dimension parameter to plot_signal

  • lisa.target: Add Target.from_custom_cli(description=...)

  • lisa.target: Expose devlib's Target(max_async=...)

  • lisa.tests.base.RTATestBundle: Add rtapp_profile_kwargs ctor param

  • lisa.trace: Allow CollectorBase.get_data(path=None)

  • lisa.trace: Collect metadata when using concurrent parsing

  • lisa.trace: Improve FtraceCollector docstring

  • lisa.trace: Improve FtraceCollector kmod build error error reporting

  • lisa.trace: Use lisa._assets.get_bin() for trace-cmd

  • lisa.utils: Add LazyMapping

  • lisa.utils: Add destroyablecontextmanager

  • lisa.utils: Add ignore_exceps() context manager combinator

  • lisa.wa: Expose jobs, outputs in WAOutput & traces in WATraceCollector

  • lisa.wlgen.rta: Add RTA(log_level=None) parameter

  • shell/lisa_shell: Allow lisa-install to upgrade venv

  • tools/check-setuppy: Allow watching multiple patterns

  • tools/exekall: Support PEP 673 Self return annotation

  • tools/lisa-whatsnew: Add lisa-whatsnew

  • tools/recipes/rt-app.recipe: Update versions

  • tools/recipes/trace-cmd.recipe: Update to trace-cmd 3.1.5

  • tools/recipes/trace-cmd.recipe: Update to trace-cmd to use libtraceevent 1.7.0

  • tools/recipes: Add rt-app.manifest.yaml

Fix#

  • .gitignore: Add cache/ and kernel module artifacts

  • doc/conf.py: Fix holoviews intersphinx inventory location

  • install_base.sh: Do not install selenium geckodriver on recent Ubuntu

  • ipynb: Update hv.extension() calls

  • lisa.__init__: Ignore pending deprecation warnings in matplotlib

  • lisa._assets.kmodules.sched_tp: Add MODULE_IMPORT_NS()

  • lisa._assets.kmodules.sched_tp: Fix symbol namespace extraction

  • lisa._git: Avoid warning when git notes are not available

  • lisa._kmod: Enable KBUILD_MODPOST_WARN=1

  • lisa._kmod: Fix try_loaders() exception handling

  • lisa._kmod: Ignore non-existing include/linux/atomic

  • lisa._kmod: Workaround broken atomic headers in IKHEADERS

  • lisa.analysis.pixel6: Fix df_power_meter() with pandas 2.0.0

  • lisa.analysis.rta: Silence pandas warning

  • lisa.analysis.tasks: Fix plot_tasks_activation() with trace window

  • lisa.analysis: Fix doc comments relating to task_states

  • lisa.analysis: Fix lisa.trace.Trace doc links

  • lisa.conf: Avoid kwargs in exceptions

  • lisa.datautils: Fix :type ...: in docstrings

  • lisa.datautils: Speedup and fix df_update_duplicates()

  • lisa.monad: Fix module docstring

  • lisa.notebook: Disable pagination in Tabulator

  • lisa.notebook: Fix plot UI table scroll

  • lisa.target: Fix TargetConf max-async key type

  • lisa.target: Fix max_async=None

  • lisa.target: Fix nargs=argparse.REMAINDER in Target.from_custom_cli()

  • lisa.target: Pass max_async to devlib Target

  • lisa.target: Restore compat with non-async devlib

  • lisa.tests.scheduler.load_tracking: Add missing noise check

  • lisa.tests.scheduler.load_tracking: Fix noise check usage

  • lisa.tests.scheduler.sanity: Fix use of collector

  • lisa.trace: Add compatiblity with recent trace-cmd

  • lisa.trace: Avoid broken trace in FtraceCollector.get_data()

  • lisa.trace: Avoid nested multiprocessing.Pool

  • lisa.trace: Ensure FtraceCollector context manager is reusable

  • lisa.trace: Fix HRTxtTraceParser regex parsing

  • lisa.trace: Fix Trace.from_target() with kernel module

  • lisa.trace: Fix TxtEventParser regex for named ring buffer

  • lisa.trace: Fix automatic Trace parser detection

  • lisa.trace: Fix cpuhp_enter fun field dtype

  • lisa.trace: Preserve time-range metadata in TxtTraceParserBase

  • lisa.trace: Update HRTxtTraceParser skeleton regex

  • lisa.trace: Use SysTraceParser.from_html() for .html files

  • lisa.utils: Fix PartialInit.__getattribute__

  • lisa.utils: Fix destroyablecontextmanager exception handling

  • lisa.wa: Fix caching of _get_job_df()

  • lisa.wa: Fix getting jobs in WACollectorBase

  • lisa.wlgen.sysbench: Fix docstring

  • lisa: Avoid using DataFrame.iteritems()

  • lisa: Fix iteration over DataFrame.groupby([x])

  • lisa: Fix pandas warnings

  • lisa: Specify DataFrame/Series.groupby(group_keys=False)

  • lisa: Use lisa.utils.destroyablecontextmanager

  • pytest.ini: Ignore deprecation warnings comming from devlib

  • pytest.ini: Ignore deprecation warnings in dependencies

  • pytest.ini: Ignore some Jupyterlab internal deprecation warnings

  • tools/check-setuppy: Fix CLI path detection

  • tools/check-setuppy: Watch git hooks

  • tools/exekall/exekall/engine.py: Fix support of typing.Self

  • tools/exekall: Allow class without __init__

Breaking change#

  • lisa.analysis.pixel6: Change df_power_meter() "value" column to "power"

v3.0.1#

Fix#

  • doc: Set Sphinx language

  • exekall.engine: Fix FrozenExprVal.callable_ property

  • lisa._assets.kmodules.sched_tp: Fix Makefile vmlinux.h dependency

  • lisa._doc.helpers: Escape changelog entries

v3.0.0#

Feature#

  • .github: Add Python 3.10 workflow

  • doc/changes.rst: Add Versioning section

  • doc/changes.rst: Document instance attributes stability

  • doc/changes.rst: Document release process

  • doc/setup.rst: Add paragraph on Python version requirement.

  • lisa-version: Display LISA python package version

  • lisa._assets.kmodules.sched_tp: Do not fail module load when no feature was manually selected

  • lisa._assets.kmodules.sched_tp: Refactor kernel module

  • lisa._assets: Add HOST_PATH

  • lisa._doc.helpers: Make use of refs/notes/changelog

  • lisa._git: Add find_root()

  • lisa._git: Allow get_commit_message to display notes

  • lisa._kmod: Add FtraceDynamicKmod

  • lisa._kmod: Add LISAFtraceDynamicKmod

  • lisa._kmod: Allow passing parameters to insmod

  • lisa._kmod: Introduce dynamic kernel module building

  • lisa._kmod: Rename lisa kernel module to "lisa"

  • lisa._kmod: Speedup copy overlay backend

  • lisa._kmod: Use LLVM make var to infer CC

  • lisa._unshare: Add lisa._unshare module

  • lisa.fuzz: Add lisa.fuzz module

  • lisa.monad: Replace the State monad implementation

  • lisa.notebook: Use Tabulator panel widget

  • lisa.target: Add Target.cached_pull()

  • lisa.target: Add Target.get_kmod()

  • lisa.target: Allow pickling Target

  • lisa.tests.scheduler.eas_behaviour: Frequency based duty cycle

  • lisa.trace: Add DynamicTraceEventChecker

  • lisa.trace: Add TraceEventCheckerBase.check_events(..., optional=False)

  • lisa.trace: Add modules/auto-load key to FtraceConf

  • lisa.trace: Allow TraceEventCheckerBase for FtraceCollector events

  • lisa.trace: Allow TraceEventCheckerBase in Trace(events=...)

  • lisa.trace: Hook LISAFtraceDynamicKmod into FtraceCollector

  • lisa.trace: Log missing optional events in FtraceCollector

  • lisa.trace: Make TraceEventCheckerBase a Sequence

  • lisa.trace: Make kmod build failure an error when possible

  • lisa.trace: Try building the kmod for optional events

  • lisa.trace: Use kmod features in FtraceCollector._get_kmods()

  • lisa.utils: Add DirCache class

  • lisa.utils: Add LISA_CACHE_HOME

  • lisa.utils: Add LISA_HOST_ABI

  • lisa.utils: Add SerializeViaConstructor class

  • lisa.utils: Add chain_cm() helper

  • lisa.utils: Add instancemethod decorator

  • lisa.utils: Add subprocess_log

  • lisa.version: Allow overriding VERSION_TOKEN

  • lisa.wlgen.rta: Add RTAPhaseBase.get_rtapp_repr(no_force_default_keys=None)

  • lisa.wlgen.rta: Add async API

  • lisa.wlgen.rta: Add leaf_precedence()

  • tools/batch-rebase: Make "name" topic key optional

  • tools/batch-rebase: Make "rr-cache" key optional

  • tools/recipes/pahole.recipe: Add pahole binary to LISA

  • tools/recipes/pahole: Add the batch-rebase conf and update it

Fix#

  • .github: Add read permissions to debugfs

  • bisector: Do not return None in Report.load()

  • bisector: Use the new location for exekall's ExceptionPickler

  • doc/conf.py: Fix matplotlib intersphinx inventory URL

  • doc/setup.rst: Fix manual kmod setup instruction

  • doc: Fix broken matplotlib docstring xref

  • doc: Ignore some broken references

  • exekall._utils: Fix ExceptionPickler memory leak

  • exekall: Add missing import

  • exekall: Fix standalone module handling passed on CLI

  • exekall: Set package attribute when importing submodule

  • external/subtrees.conf: Revert to devlib master

  • lisa-doc-build: Handle change in argparse --help output

  • lisa-version: Fix python version display

  • lisa.__init__: Ignore spurious CryptographyDeprecationWarning

  • lisa._assets.binaries: Update rt-app

  • lisa._assets.kmodules.sched_tp: Fix failed feature dependency

  • lisa._assets.kmodules.sched_tp: tp.h: Fix tp feature init

  • lisa._assets.kmodules: Add missing static in sched_helpers.h

  • lisa._kmod: Avoid broken split .BTF section in .ko

  • lisa._kmod: Control env vars

  • lisa._kmod: Fix DynamicKmod._do_compile()

  • lisa._kmod: Fix KernelTree docstring

  • lisa._kmod: Fix PATH in Alpine chroot

  • lisa._kmod: Fix copy overlay backend

  • lisa._kmod: Fix misleading log

  • lisa._kmod: Fix module with subfolders build

  • lisa._kmod: Fix undefined variable in DynamicKmod

  • lisa._kmod: Forward kwargs in KmodSrc.from_path()

  • lisa._kmod: Handle non-str make variables

  • lisa._kmod: Propagate overlay_backend to _make_chroot()

  • lisa.analysis.frequency: Add missing type annotation for plot_peripheral_frequency

  • lisa.analysis.frequency: Fix df_peripheral_clock_effective_rate

  • lisa.analysis.tasks: Best effort in plot_tasks_activations()

  • lisa.analysis.tasks: Fix plot_tasks_activation()

  • lisa.conf: Allow empty levels in YAML

  • lisa.datautils: Add SignalDesc for clk_* events

  • lisa.datautils: Avoid deprecated use of Index.__and__

  • lisa.datautils: Replace pd.Float64Index by pd.Index

  • lisa.energy_model: Fix estimate_from_trace

  • lisa.fuzz: Update docstring

  • lisa.stats: Fix plot_stats() X scale

  • lisa.target: Allow None for target-conf/kernel/src config

  • lisa.target: Fix tools install

  • lisa.target: Remove adb rooting attempt

  • lisa.tests.base: Add OptionalFtraceTestBundle

  • lisa.tests.base: Fix FtraceTestBundle docstring

  • lisa.tests.base: Fix as_root value passed to wload

  • lisa.tests.base: Use Series.str.replace(regex=False)

  • lisa.tests.hotplug: Fix HotplugRollback MRO

  • lisa.tests.scheduler.eas_behaviour: Use a custom RTAPhase Buffer

  • lisa.trace: Add TraceEventCheckerBase.__bool__

  • lisa.trace: De-hardcode tracefs location

  • lisa.trace: Ensure Trace.trace_path is a string or None

  • lisa.trace: Fix parsing of sched_pelt_se/sched_util_est_se

  • lisa.trace: Fix parsing of thermal events

  • lisa.utils: Fix PartialInit param binding

  • lisa.utils: Fix SimpleHash.__eq__

  • lisa.utils: Fix sig_bind()

  • lisa.utils: Speedup Loggable.get_logger()

  • lisa.wlgen.rta: Cope with broken ulimit -Hr

  • lisa.wlgen.rta: Fix PlaceHolderValue.__str__()

  • lisa.wlgen.rta: Fix recursive calibration

  • lisa.wlgen.rta: Fix with_props() examples

  • lisa.wlgen.rta: Use a separate result folder for each CPU calibration workload

  • lisa/_assets/kmodules/sched_tp/Makefile: Do not use pahole --forward_decl

  • lisa: Ban DataFrame.append

  • lisa: Fix uses of Index.get_indexer()

  • lisa: Remove deprecated use of pandas.Index.get_loc()

  • tests.__init__: Move test-specific setup from lisa to tests

  • tests/test_wlgen_rtapp.py: Fix workload cleanup

  • tools/batch-rebase: Fix git cherry-pick --continue error handling

  • tools/batch-rebase: Fix tag action

  • tools/kmodules/: Make a symlink per file

  • tools/recipes/pahole.manifest.yaml: Add pointer size fix

Breaking change#

  • lisa.fuzz: Port lisa.fuzz.Gen over the new lisa.monad API

  • lisa.monad: Replace the State monad implementation

  • lisa.target_script: Remove deprecated module

  • lisa.tests.base: Require root for ftrace

  • lisa.trace: Drop df.name attribute

  • lisa.utils: Replace serialized_whitelist/blacklist/placeholders by ATTRIBUTES_SERIALIZATION

v2.0.0#

Breaking change#

  • lisa-plot: Update to use refurbished analysis plot backends

  • lisa.analysis.base: Move COLOR_CYCLES to notebook and rename to COLOR_CYCLE

  • lisa.analysis.functions: Move ksym resolution from event sanitization to analysis

  • lisa.analysis.functions: Rename FunctionsAnalysis

  • lisa.analysis.rta: Rename RTAEventsAnalysis.tasks_window() into task_window()

  • lisa.analysis.status: Move sched_overutilized synthetic "len" column to analysis

  • lisa.analysis.tasks: Make df_task_activation() duty_cycle aware of preemption

  • lisa.assets: Rename to lisa._assets

  • lisa.colors: Remove lisa.colors as it is unused

  • lisa.datautils: Update df_window_signals to take a list of signals

  • lisa.doc: Rename to lisa._doc

  • lisa.generic: Move generic classes from lisa.conf to lisa.generic

  • lisa.generic: Rename to lisa._generic

  • lisa.git: Rename to lisa._git

  • lisa.platforms.platinfo: Change cpu-capacities key

  • lisa.proxy: Rename to lisa._proxy

  • lisa.stats: Use holoviews for plots

  • lisa.stats: rename Stats.plot_histogram nbins parameter to bins

  • lisa.tests.base: Add TestConfBase class

  • lisa.tests.base: Add buffer phase in get_rtapp_profile()

  • lisa.tests.base: Remove CannotCreateError

  • lisa.tests: Pass a composed collector to _from_target()

  • lisa.trace: Add text trace parser

  • lisa.trace: Remove barely used Trace.df_events(rename_cols=True) option

  • lisa.trace: Remove big/LITTLE assumption in events sanitization

  • lisa.trace: Remove sanitization for cpu_frequency event

  • lisa.trace: Rename 'func' column to 'ip' for print events

  • lisa.trace: TxtTraceParserBase: rename __time into __timestamp

  • lisa.trace: Use HRTxtTraceParser by default for .txt trace

  • lisa.trace: Use trace-cmd raw report for unknown events

  • lisa.typeclass: Rename to lisa._typeclass

  • lisa.wlgen.rta: Introduce new wlgen rt-app API

  • lisa.wlgen.rta: Port RTA to the new Workload API

  • lisa.wlgen.sysbench: Port Sysbench to the new Workload API

  • lisa.wlgen.workload: Fix long standing Workload API issues

  • lisa.wlgen.workload: Rename required_tools to REQUIRED_TOOLS

  • lisa.wlgen: Make Workload 'name' parameter optional

  • tools: lisa-plot: Rename --platinfo into --plat-info