Skip to content
  1. Apr 15, 2019
    • Douglas Raillard's avatar
      The Big Switch · e189103b
      Douglas Raillard authored
      And so it begins ...
      
      Merge-in the "next" branch, that contains the new version of LISA. The
      old master can be found under the "legacy" branch that has been only
      taking minor tweaks for quite a while now, while hot new stuff were
      merged into next.
      
      A transition guide listing major API changes and how to port code from
      LISA legacy is available here:
      https://lisa-linux-integrated-system-analysis.readthedocs.io/en/master/transition_guide.html
      
      note: this is not a merge commit proper, in order to speed up git
      subtree split. The commit of "next" branch merged is:
      c543fb77 Merge pull request #871 from douglas-raillard-arm/_pr133
      v0.0.0
      e189103b
  2. Feb 22, 2019
  3. Feb 21, 2019
    • Chris Redpath's avatar
      utils/energy_model: Fix loading EM from recent android-4.14 targets · a3d1f0fa
      Chris Redpath authored
      
      
      Since commit 9001b8f1a,
      "ANDROID: sched: Add support for frequency/power energy model"
      android-4.14 has been able to load a frequency-based energy model.
      
      Adding this extended the capacity_state structure in
      sched_group_energy with a new frequency member. This is automatically
      reflected in the energy model tuples printed in procfs and so Lisa can
      no longer load sensible Energy models from any target running
      android-4.14 later than the above commit, although the error is not
      detected so you do get an EnergyModel object which contains junk
      capacity and power values.
      
      We can figure out which kind of kernel we have by reading the number
      of capacity states for a cpu and check how many items are in the
      cap_state tuples so that we can handle 2 or 3 values per state
      transparently.
      
      Signed-off-by: Chris Redpath's avatarChris Redpath <chris.redpath@arm.com>
      a3d1f0fa
  4. Oct 31, 2018
  5. Oct 30, 2018
  6. Oct 29, 2018
  7. Oct 16, 2018
  8. Oct 12, 2018
  9. Sep 11, 2018
  10. Aug 29, 2018
  11. Aug 24, 2018
  12. Aug 17, 2018
  13. Aug 14, 2018
    • Quentin Perret's avatar
      tests/eas/generic.py: Tweak RampDown energy threshold · 25bfa54e
      Quentin Perret authored
      
      
      The RampDown test happens to fail on TC2 with a 16% or 17% energy delta,
      while the behaviour is clearly correct. This happens because of the
      overutilized band. The exact location of that band depends on the
      capacity ratio of CPUs of the platform, but the RampDown test
      configuration is hardcoded, without taking the platform's topology into
      account. As a result, the test is hitting more sensible part of the
      power-perf curve on some targets than others, and that is the cause of
      the problems observed on TC2.
      
      Fix this by tweaking the threshold at a level that should suit TC2
      better. A proper fix would be to compute the threshold depending on the
      EM of the target, but this is difficult to do in the current state of
      the test framework. The new test framework should handle these scenarios
      a lot better, so implementing 'the right thing' should be easier then.
      In the meantime, the threshold tweak should workaround the issue just
      fine.
      
      Signed-off-by: default avatarQuentin Perret <quentin.perret@arm.com>
      25bfa54e
  14. Aug 06, 2018
    • Valentin Schneider's avatar
      tests/eas: Add misfit.py test file · 504cead9
      Valentin Schneider authored
      This test suite targets the behaviour of misfit tasks.
      
      For now it only has the "staggered finishes" test case, which consists
      of NR_CPUS 100% tasks, briefly pinned to one CPU to ensure there is one
      task per CPU.
      The tasks running on the big CPUs should complete first, and at this
      point we expect them to pull the tasks on the LITTLEs via idle balance.
      
      The tests associated with this workload are:
      
      - test_preempt_time:
          Asserts that tasks are not preempted for more than 1% of the
          test duration, since each task should get its own CPU.
      
      - test_migration_delay:
          Asserts that big CPUs pull tasks ASAP after their initial task
          is completed.
      
      - test_throughput
          Asserts that big CPUs are never idle for more than 1ms when there
          are tasks running the LITTLEs.
      
      ======
      Known issues:
      
      Because there can be unwanted processes (e.g. sshd) popping up at the
      wrong time, causing the imbalance to be of type group_overloaded
      instead of group_misfit_task, the misfit logic can be skipped in the
      load balance. This is something that should eventually be fixed.
      
      Also, test_migration_delay is just a subset of test_throughput. However,
      because of the group_overloaded issues, tasks can still move from big
      to LITTLE CPUs, and it takes >1ms to move them back, causing
      test_throughput to fail.
      
      test_migration_delay is here to at least ensure the newidle pull
      happened, since test_throughput is going to fail a lot in the
      foreseeable future.
      504cead9
    • Valentin Schneider's avatar
      f1f6ed9d
    • Valentin Schneider's avatar
      e2aacb62
    • Valentin Schneider's avatar
      utils/trace: Add squash_df() method · f274d2ac
      Valentin Schneider authored
      This method takes in a dataframe with a time delta column (as created by
      addEventsDeltas), and slices it to fit within a given interval.
      
      Instead of writing a wall of text, here's what it's doing:
      
      df is:
      Time len state
      15    1   1
      16    1   0
      17    1   1
      18    1   0
      -------------
      
      squash_df(df, 16.5, 17.5) =>
      
      Time len state
      16.5  .5   0
      17    .5   1
      
      squash_df(df, 16.2, 16.8) =>
      
      Time len state
      16.2  .6   0
      f274d2ac
    • Valentin Schneider's avatar
      utils/trace: Add an addEventsDeltas helper · 62d174fc
      Valentin Schneider authored
      This computes the time delta between rows of a dataframe and adds it
      to a new column. This can be helpful for events that track an on/off
      state, e.g. overutilized. This commit replaces the current delta
      computation for sanitize_SchedOverutilized() by this helper.
      62d174fc
  15. Jul 27, 2018
  16. Jul 24, 2018
    • Chris Redpath's avatar
      wltests/wa_results_collector: Add composite energy for Monsoon results · c8e34348
      Chris Redpath authored
      
      
      Ideally, one would rewrite the monsoon devlib instrument to provide the
      data in a form which allows the DerivedEnergyMeasurement class to give
      summed energy & power values. However, the monsoon python driver does
      not appear to be written in such a way that this could be done easily.
      
      For the time being, lets make our own combosite measurement here if it
      not supplied by Devlib and we have the known monsoon EM channels.
      
      Signed-off-by: Chris Redpath's avatarChris Redpath <chris.redpath@arm.com>
      c8e34348
  17. Jul 20, 2018
  18. Jul 12, 2018
    • Valentin Schneider's avatar
      Merge pull request #611 from qperret/fix-cpuhp-test · 9b8c7cfd
      Valentin Schneider authored
      Fix cpuhp test
      9b8c7cfd
    • Quentin Perret's avatar
      tests/cpuhp: Ensure tests fail when the target crashed · 4de3fd06
      Quentin Perret authored
      
      
      The CPU hotplug test is full of useless dependencies which silently talk
      to the target (rt-app, freezing userspace, ftrace, ...). When the target
      crashes during the hotplug stress, requests sent to the target because
      of the above modules can hang indefinitely, or fail miserably. That is
      an issue since, in the specific case of the hotplug test, we would like
      to classify these crashes as test failures.
      
      Remove all the dependencies by overwritting the runExperiments method of
      LisaTest in order to avoid using an Executor. The test spawns a bash
      script on the target that plugs CPUs in and out for a specific duration,
      and check on the host side if the target is still alive after a while.
      
      Signed-off-by: default avatarQuentin Perret <quentin.perret@arm.com>
      4de3fd06
  19. Jul 11, 2018
  20. Jul 05, 2018
  21. Jun 29, 2018
  22. Jun 27, 2018
    • Patrick Bellasi's avatar
      latency_analysis: add statistics getter method · 89d718ee
      Patrick Bellasi authored
      
      
      Right now, the plotLatency method returns a DF with statistics for the
      latencies of a specified task. However, sometimes we could be
      interested in getting these stats without necessarily plotting all the
      data.
      
      Let's move the statistics DF generation into an internal _get_latency_df
      method, which can then be used by the plotLatency but also from an
      additional DF gatter: _dfg_latency_stats_df.
      Thus, this will make available a new:
      
         trace.data_frame.latency_stats_df()
      
      which just return the overall latency stats for the specified task.
      
      Signed-off-by: default avatarPatrick Bellasi <patrick.bellasi@arm.com>
      89d718ee
Loading