From d4d4ece671836763515203c0e36ce425c056eabe Mon Sep 17 00:00:00 2001 From: Douglas Raillard Date: Fri, 6 Oct 2023 17:17:43 +0100 Subject: [PATCH 1/2] lisa.tests.staging.utilclamp: Add expected signal plot FEATURE Add expected signal value to the debug plot. --- lisa/tests/staging/utilclamp.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lisa/tests/staging/utilclamp.py b/lisa/tests/staging/utilclamp.py index 1b9d79a14..07011b82a 100644 --- a/lisa/tests/staging/utilclamp.py +++ b/lisa/tests/staging/utilclamp.py @@ -228,7 +228,7 @@ class UtilClamp(RTATestBundle, TestBundle): return df_phases.apply(parse_phase, axis=1) - def _plot_phases(self, test, failures, signal=None): + def _plot_phases(self, test, failures, signals=None): task, = self.rtapp_task_ids ana = self.trace.ana( task=task, @@ -252,10 +252,14 @@ class UtilClamp(RTATestBundle, TestBundle): ) ), ] - if signal is not None: + if signals is not None: figs.append( - plot_signal(signal).opts(responsive=True, height=400) + hv.Overlay([ + plot_signal(signals[signal]).opts(responsive=True, height=400) + for signal in signals.columns + ]) ) + fig = hv.Layout(figs).cols(1) self._save_debug_plot(fig, name=f'utilclamp_{test}') @@ -369,6 +373,7 @@ class UtilClamp(RTATestBundle, TestBundle): num_activations = df['activation_start'].sum() expected = schedutil_map_util_cap(df['cpu'].unique()[0], uclamp_val) + df['expected_capacity'] = expected # Activations numbering df['activation'] = df['activation_start'].cumsum() @@ -385,7 +390,7 @@ class UtilClamp(RTATestBundle, TestBundle): num_failures = failures['activation'].nunique() test_failures.extend(failures.index.tolist()) - capacity_dfs.append(df[['capacity']]) + capacity_dfs.append(df[['capacity', 'expected_capacity']]) metrics[phase['phase']] = { 'uclamp-min': TestMetric(uclamp_val), @@ -402,7 +407,7 @@ class UtilClamp(RTATestBundle, TestBundle): self._plot_phases( 'test_frequency', test_failures, - signal=pd.concat(capacity_dfs), + signals=pd.concat(capacity_dfs) ) return res -- GitLab From ff6051336f3ac829ee6d342d406d38a990e2bbd7 Mon Sep 17 00:00:00 2001 From: Douglas Raillard Date: Fri, 6 Oct 2023 17:19:01 +0100 Subject: [PATCH 2/2] lisa.tests.staging.utilclamp: Protect against noisy tasks Protect UtilClamp.test_freq_selection() against the effect of noisy tasks that could change the frequency of the system. --- lisa/tests/staging/utilclamp.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lisa/tests/staging/utilclamp.py b/lisa/tests/staging/utilclamp.py index 07011b82a..72586b488 100644 --- a/lisa/tests/staging/utilclamp.py +++ b/lisa/tests/staging/utilclamp.py @@ -315,6 +315,7 @@ class UtilClamp(RTATestBundle, TestBundle): @FrequencyAnalysis.df_cpus_frequency.used_events @LoadTrackingAnalysis.df_tasks_signal.used_events + @RTATestBundle.test_noisy_tasks.undecided_filter(noise_threshold_pct=1) def test_freq_selection(self) -> ResultBundle: """ For each phase, checks if the task placement and frequency selection -- GitLab