lisa.analysis.idle.IdleAnalysis#
- class lisa.analysis.idle.IdleAnalysis(trace, proxy=None)[source]#
Bases:
TraceAnalysisBaseSupport for plotting Idle Analysis data
- Parameters:
trace (lisa.trace.Trace) – input Trace object
Attributes
Name of the analysis class.
Properties
loggerinheritedConvenience short-hand for
self.get_logger().Methods
Compute time spent by a given cluster in each idle state.
Same as
df_cpus_idle()but for one CPU.Compute time spent by a given CPU in each idle state.
Dataframe of the
cpu_idleevent, with the following columns:.Get a DataFrame showing when CPUs have woken from idle.
Plot the idle state residency of a cluster.
Plot the idle state residency of all clusters.
Plot the idle state residency of a CPU.
Build a square wave representing the active (i.e. non-idle) cluster time.
Build a square wave representing the active (i.e. non-idle) CPU time.
cache()inheritedDecorator to enable caching of the output of dataframe getter function in the trace cache.
call_on_trace()inheritedCall a method of a subclass on a given trace.
df_method()inheritedDataframe function decorator.
get_all_events()inheritedReturns the set of all events used by any of the methods.
get_analysis_classes()inheritedget_default_plot_path()inheritedReturn the default path to use to save plots for the analysis.
get_df_methods()inheritedget_logger()inheritedProvides a
logging.Loggernamed aftercls.get_plot_methods()inheritedlog_locals()inheritedDebugging aid: log the local variables of the calling function.
plot_method()inheritedPlot function decorator.
save_plot()inheritedSave a holoviews element or
matplotlib.figure.Figureas an image file.
Attributes#
- IdleAnalysis.name = 'idle'#
Name of the analysis class.
Properties#
- property IdleAnalysis.logger#
Inherited property, see
lisa.utils.Loggable.loggerConvenience short-hand for
self.get_logger().
Methods#
- IdleAnalysis.df_cluster_idle_state_residency(cluster, *, df_fmt=None)[source]#
Called on
Traceinstances astrace.ana.idle.df_cluster_idle_state_residency()Compute time spent by a given cluster in each idle state.
- Parameters:
- Returns:
a
pandas.DataFramewith:Idle states as index
A
timecolumn (The time spent in the idle state)
Added by
lisa.analysis.base.TraceAnalysisBase.df_method():- Parameters:
df_fmt (str or None) –
Format of dataframe to return. One of:
"pandas":pandas.DataFrame"polars-lazyframe":polars.LazyFrame
- Returns:
The return type is determined by the dataframe format chosen for the trace object.
- Required trace events:
cpu_idle
- IdleAnalysis.df_cpu_idle(cpu=None, *, df_fmt=None)[source]#
Called on
Traceinstances astrace.ana.idle.df_cpu_idle()Same as
df_cpus_idle()but for one CPU.Added by
lisa.analysis.base.TraceAnalysisBase.df_method():- Parameters:
df_fmt (str or None) –
Format of dataframe to return. One of:
"pandas":pandas.DataFrame"polars-lazyframe":polars.LazyFrame
- Returns:
The return type is determined by the dataframe format chosen for the trace object.
- Required trace events:
cpu_idle
- IdleAnalysis.df_cpu_idle_state_residency(cpu, *, df_fmt=None)[source]#
Called on
Traceinstances astrace.ana.idle.df_cpu_idle_state_residency()Compute time spent by a given CPU in each idle state.
- Parameters:
cpu (int) – CPU ID
- Returns:
a
pandas.DataFramewith:Idle states as index
A
timecolumn (The time spent in the idle state)
Added by
lisa.analysis.base.TraceAnalysisBase.df_method():- Parameters:
df_fmt (str or None) –
Format of dataframe to return. One of:
"pandas":pandas.DataFrame"polars-lazyframe":polars.LazyFrame
- Returns:
The return type is determined by the dataframe format chosen for the trace object.
- Required trace events:
cpu_idle
- IdleAnalysis.df_cpus_idle(cpus=None, *, df_fmt=None)[source]#
Called on
Traceinstances astrace.ana.idle.df_cpus_idle()Dataframe of the
cpu_idleevent, with the following columns:cpustate: Instead of 4294967295, the -1 type independent value is used.
Added by
lisa.analysis.base.TraceAnalysisBase.df_method():- Parameters:
df_fmt (str or None) –
Format of dataframe to return. One of:
"pandas":pandas.DataFrame"polars-lazyframe":polars.LazyFrame
- Returns:
The return type is determined by the dataframe format chosen for the trace object.
- Required trace events:
cpu_idle
- IdleAnalysis.df_cpus_wakeups(*, df_fmt=None)[source]#
Called on
Traceinstances astrace.ana.idle.df_cpus_wakeups()Get a DataFrame showing when CPUs have woken from idle
- Parameters:
cpus (list(int) or None) – List of CPUs to find wakeups for. If None, all CPUs.
- Returns:
A
pandas.DataFramewithA
cpucolumn (the CPU that woke up at the row index)
Added by
lisa.analysis.base.TraceAnalysisBase.df_method():- Parameters:
df_fmt (str or None) –
Format of dataframe to return. One of:
"pandas":pandas.DataFrame"polars-lazyframe":polars.LazyFrame
- Returns:
The return type is determined by the dataframe format chosen for the trace object.
- Required trace events:
cpu_idle
- IdleAnalysis.plot_cluster_idle_state_residency(cluster: Sequence[CPU], pct: bool = False, *, filepath=None, output='holoviews', img_format=None, always_save=False, backend=None, _compat_render=False, link_dataframes=None, cursor_delta=None, width=None, height=None, rc_params=None, axis=None, interactive=None, colors: Sequence[str] = None, linestyles: Sequence[str] = None, markers: Sequence[str] = None, **kwargs)[source]#
cluster=[0, 3, 4, 5], pct=False
Called on
Traceinstances astrace.ana.idle.plot_cluster_idle_state_residency()Plot the idle state residency of a cluster
- Parameters:
cluster – The cluster
pct (bool) – Plot residencies in percentage
Added by
lisa.analysis.base.AnalysisHelpers.plot_method():- Returns:
The return type is determined by the
outputparameter.- Parameters:
backend (str or None) –
Holoviews plot library backend to use:
bokeh: good support for interactive plotsmatplotlib: sometimes better static image output, but unpredictable results that more often than not require a fair amount of hacks to get something good.plotly: not supported by LISA but technically available. Since it’s very similar to bokeh feature-wise, bokeh should be preferred.
Note
In a notebook, the way to choose which backend should be used to display plots is typically selected with e.g.
holoviews.extension('bokeh')at the beginning of the notebook. Thebackendparameter is more intended for expert use where an object of the given library is required, without depending on the environment.link_dataframes (list(pandas.DataFrame) or None) – Gated by
output="ui". List of dataframes to display under the figure, which is dynamically linked with it: clicking on the plot will scroll in the dataframes and vice versa.filepath (str or None) – Path of the file to save the figure in. If None, no file is saved.
always_save (bool) – When
True, the plot is always saved even if nofilepathhas explicitly been set. In that case, a default path will be used.img_format (str) – The image format to generate. Defaults to using filepath to guess the type, or “png” if no filepath is given. html and rst are supported in addition to matplotlib image formats.
output (str or None) –
Change the return value of the method:
None: Equivalent toholoviewsfor now. In the future, this will be eitherholoviewsoruiif used in an interactive jupyter notebook.holoviews: a bare holoviews element.render: a backend-specific object, such asmatplotlib.figure.Figureifbackend='matplotlib'html: HTML documentrst: a snippet of reStructuredTextui: Pseudo holoviews figure, enriched with extra controls.Note
No assumption must be made on the return type other than that it can be displayed in a notebook cell output (and with
IPython.display.display()). The public API holoviews is implemented in a best-effort approach, so that.options()and.opts()will work, but compositions using e.g.x * ywill not work ifxis a holoviews element.In the midterm, the output type will be changed so that it is a real holoviews object, rather than some sort of proxy.
List of color names to use for the plots.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
linestyles (list(str) or None) –
List of linestyle to use for the plots.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
List of marker to use for the plots.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
axis (matplotlib.axes.Axes or numpy.ndarray(matplotlib.axes.Axes) or None) –
instance of
matplotlib.axes.Axesto plot into. If None, a new figure and axis are created and returned.Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to compose plot elements: http://holoviews.org/user_guide/Composing_Elements.html
rc_params (dict(str, object) or None) –
Matplotlib rc params dictionary overlaid on existing settings.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
_compat_render (bool) – Internal parameter not to be used. This enables the compatibility mode where
render=Trueby default when matplotlib is the current holoviews backend.
- Required trace events:
cpu_idle
- IdleAnalysis.plot_clusters_idle_state_residency(pct: bool = False, *, filepath=None, output='holoviews', img_format=None, always_save=False, backend=None, _compat_render=False, link_dataframes=None, cursor_delta=None, width=None, height=None, rc_params=None, axis=None, interactive=None, colors: Sequence[str] = None, linestyles: Sequence[str] = None, markers: Sequence[str] = None, **kwargs)[source]#
pct=False
Called on
Traceinstances astrace.ana.idle.plot_clusters_idle_state_residency()Plot the idle state residency of all clusters
- Parameters:
pct (bool) – Plot residencies in percentage
Note
This assumes clusters == frequency domains, which may not hold true…
Added by
lisa.analysis.base.AnalysisHelpers.plot_method():- Returns:
The return type is determined by the
outputparameter.- Parameters:
backend (str or None) –
Holoviews plot library backend to use:
bokeh: good support for interactive plotsmatplotlib: sometimes better static image output, but unpredictable results that more often than not require a fair amount of hacks to get something good.plotly: not supported by LISA but technically available. Since it’s very similar to bokeh feature-wise, bokeh should be preferred.
Note
In a notebook, the way to choose which backend should be used to display plots is typically selected with e.g.
holoviews.extension('bokeh')at the beginning of the notebook. Thebackendparameter is more intended for expert use where an object of the given library is required, without depending on the environment.link_dataframes (list(pandas.DataFrame) or None) – Gated by
output="ui". List of dataframes to display under the figure, which is dynamically linked with it: clicking on the plot will scroll in the dataframes and vice versa.filepath (str or None) – Path of the file to save the figure in. If None, no file is saved.
always_save (bool) – When
True, the plot is always saved even if nofilepathhas explicitly been set. In that case, a default path will be used.img_format (str) – The image format to generate. Defaults to using filepath to guess the type, or “png” if no filepath is given. html and rst are supported in addition to matplotlib image formats.
output (str or None) –
Change the return value of the method:
None: Equivalent toholoviewsfor now. In the future, this will be eitherholoviewsoruiif used in an interactive jupyter notebook.holoviews: a bare holoviews element.render: a backend-specific object, such asmatplotlib.figure.Figureifbackend='matplotlib'html: HTML documentrst: a snippet of reStructuredTextui: Pseudo holoviews figure, enriched with extra controls.Note
No assumption must be made on the return type other than that it can be displayed in a notebook cell output (and with
IPython.display.display()). The public API holoviews is implemented in a best-effort approach, so that.options()and.opts()will work, but compositions using e.g.x * ywill not work ifxis a holoviews element.In the midterm, the output type will be changed so that it is a real holoviews object, rather than some sort of proxy.
List of color names to use for the plots.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
linestyles (list(str) or None) –
List of linestyle to use for the plots.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
List of marker to use for the plots.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
axis (matplotlib.axes.Axes or numpy.ndarray(matplotlib.axes.Axes) or None) –
instance of
matplotlib.axes.Axesto plot into. If None, a new figure and axis are created and returned.Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to compose plot elements: http://holoviews.org/user_guide/Composing_Elements.html
rc_params (dict(str, object) or None) –
Matplotlib rc params dictionary overlaid on existing settings.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
_compat_render (bool) – Internal parameter not to be used. This enables the compatibility mode where
render=Trueby default when matplotlib is the current holoviews backend.
- Required trace events:
cpu_idle
- IdleAnalysis.plot_cpu_idle_state_residency(cpu: CPU, pct: bool = False, *, filepath=None, output='holoviews', img_format=None, always_save=False, backend=None, _compat_render=False, link_dataframes=None, cursor_delta=None, width=None, height=None, rc_params=None, axis=None, interactive=None, colors: Sequence[str] = None, linestyles: Sequence[str] = None, markers: Sequence[str] = None, **kwargs)[source]#
cpu=0, pct=False
Called on
Traceinstances astrace.ana.idle.plot_cpu_idle_state_residency()Plot the idle state residency of a CPU
Added by
lisa.analysis.base.AnalysisHelpers.plot_method():- Returns:
The return type is determined by the
outputparameter.- Parameters:
backend (str or None) –
Holoviews plot library backend to use:
bokeh: good support for interactive plotsmatplotlib: sometimes better static image output, but unpredictable results that more often than not require a fair amount of hacks to get something good.plotly: not supported by LISA but technically available. Since it’s very similar to bokeh feature-wise, bokeh should be preferred.
Note
In a notebook, the way to choose which backend should be used to display plots is typically selected with e.g.
holoviews.extension('bokeh')at the beginning of the notebook. Thebackendparameter is more intended for expert use where an object of the given library is required, without depending on the environment.link_dataframes (list(pandas.DataFrame) or None) – Gated by
output="ui". List of dataframes to display under the figure, which is dynamically linked with it: clicking on the plot will scroll in the dataframes and vice versa.filepath (str or None) – Path of the file to save the figure in. If None, no file is saved.
always_save (bool) – When
True, the plot is always saved even if nofilepathhas explicitly been set. In that case, a default path will be used.img_format (str) – The image format to generate. Defaults to using filepath to guess the type, or “png” if no filepath is given. html and rst are supported in addition to matplotlib image formats.
output (str or None) –
Change the return value of the method:
None: Equivalent toholoviewsfor now. In the future, this will be eitherholoviewsoruiif used in an interactive jupyter notebook.holoviews: a bare holoviews element.render: a backend-specific object, such asmatplotlib.figure.Figureifbackend='matplotlib'html: HTML documentrst: a snippet of reStructuredTextui: Pseudo holoviews figure, enriched with extra controls.Note
No assumption must be made on the return type other than that it can be displayed in a notebook cell output (and with
IPython.display.display()). The public API holoviews is implemented in a best-effort approach, so that.options()and.opts()will work, but compositions using e.g.x * ywill not work ifxis a holoviews element.In the midterm, the output type will be changed so that it is a real holoviews object, rather than some sort of proxy.
List of color names to use for the plots.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
linestyles (list(str) or None) –
List of linestyle to use for the plots.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
List of marker to use for the plots.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
axis (matplotlib.axes.Axes or numpy.ndarray(matplotlib.axes.Axes) or None) –
instance of
matplotlib.axes.Axesto plot into. If None, a new figure and axis are created and returned.Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to compose plot elements: http://holoviews.org/user_guide/Composing_Elements.html
rc_params (dict(str, object) or None) –
Matplotlib rc params dictionary overlaid on existing settings.
Deprecated since version 2.0: This parameter is deprecated, use holoviews APIs to set matplotlib options.
_compat_render (bool) – Internal parameter not to be used. This enables the compatibility mode where
render=Trueby default when matplotlib is the current holoviews backend.
- Required trace events:
cpu_idle
- IdleAnalysis.signal_cluster_active(cluster)[source]#
Called on
Traceinstances astrace.ana.idle.signal_cluster_active()Build a square wave representing the active (i.e. non-idle) cluster time
- Parameters:
cluster (list(int)) – list of CPU IDs belonging to a cluster
- Returns:
A
pandas.Seriesthat equals 1 at timestamps where at least one CPU is reported to be non-idle, 0 otherwise- Required trace events:
cpu_idle
- IdleAnalysis.signal_cpu_active(cpu)[source]#
Called on
Traceinstances astrace.ana.idle.signal_cpu_active()Build a square wave representing the active (i.e. non-idle) CPU time
- Parameters:
cpu (int) – CPU ID
- Returns:
A
pandas.Seriesthat equals 1 at timestamps where the CPU is reported to be non-idle, 0 otherwise- Required trace events:
cpu_idle
- classmethod IdleAnalysis.cache(f, fmt='parquet', ignored_params=None)#
Inherited method, see
lisa.analysis.base.TraceAnalysisBase.cache()Decorator to enable caching of the output of dataframe getter function in the trace cache.
- classmethod IdleAnalysis.call_on_trace(meth, trace, meth_kwargs)#
Inherited method, see
lisa.analysis.base.TraceAnalysisBase.call_on_trace()Call a method of a subclass on a given trace.
- classmethod IdleAnalysis.df_method(f, index=None)#
Inherited method, see
lisa.analysis.base.TraceAnalysisBase.df_method()Dataframe function decorator.
- classmethod IdleAnalysis.get_all_events()#
Inherited method, see
lisa.analysis.base.TraceAnalysisBase.get_all_events()Returns the set of all events used by any of the methods.
- classmethod IdleAnalysis.get_analysis_classes()#
Inherited method, see
lisa.analysis.base.TraceAnalysisBase.get_analysis_classes()
- IdleAnalysis.get_default_plot_path(**kwargs)#
Inherited method, see
lisa.analysis.base.TraceAnalysisBase.get_default_plot_path()Return the default path to use to save plots for the analysis.
- classmethod IdleAnalysis.get_df_methods(*args, **kwargs)#
Inherited method, see
lisa.analysis.base.TraceAnalysisBase.get_df_methods()
- classmethod IdleAnalysis.get_logger(suffix=None)#
Inherited method, see
lisa.utils.Loggable.get_logger()Provides a
logging.Loggernamed aftercls.
- classmethod IdleAnalysis.get_plot_methods(*args, **kwargs)#
Inherited method, see
lisa.analysis.base.AnalysisHelpers.get_plot_methods()
- classmethod IdleAnalysis.log_locals(var_names=None, level='debug')#
Inherited method, see
lisa.utils.Loggable.log_locals()Debugging aid: log the local variables of the calling function.
- classmethod IdleAnalysis.plot_method(f)#
Inherited method, see
lisa.analysis.base.AnalysisHelpers.plot_method()Plot function decorator.
- IdleAnalysis.save_plot(figure, filepath=None, img_format=None, backend=None)#
Inherited method, see
lisa.analysis.base.AnalysisHelpers.save_plot()Save a holoviews element or
matplotlib.figure.Figureas an image file.