New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 902785 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Feature
Build-Toolchain



Sign in to add a comment

need to make crosperf support for CWP approximation

Project Member Reported by zhizhouy@chromium.org, Nov 7

Issue description

There is no mechanism for crosperf to support CWP approximation technique.

This bug will be used to track the implementation of this feature.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/toolchain-utils/+/1a199b1827d125b89c8cf66c8d5680bf14a1b857

commit 1a199b1827d125b89c8cf66c8d5680bf14a1b857
Author: Zhizhou Yang <zhizhouy@google.com>
Date: Tue Nov 13 11:32:49 2018

crosperf: introduce cwp_dso and weight for CWP approximation

This patch does initial work to support CWP approximation in crosperf.
It introduceds a global option cwp_dso, which is used to specify the
type of DSO to use for approximation; an option weight in benchmark
setting, which decides the weight of each benchmark in test. This patch
also contains some value checks for these two options.

BUG= chromium:902785 
TEST=Passed all unit tests and sample tests locally.

Change-Id: I565c4baf0630ce6c1b62ad0398d05a5f336aac6e
Reviewed-on: https://chromium-review.googlesource.com/1323473
Commit-Ready: Zhizhou Yang <zhizhouy@google.com>
Tested-by: Zhizhou Yang <zhizhouy@google.com>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[modify] https://crrev.com/1a199b1827d125b89c8cf66c8d5680bf14a1b857/crosperf/settings_factory.py
[modify] https://crrev.com/1a199b1827d125b89c8cf66c8d5680bf14a1b857/crosperf/benchmark.py
[modify] https://crrev.com/1a199b1827d125b89c8cf66c8d5680bf14a1b857/crosperf/experiment_factory_unittest.py
[modify] https://crrev.com/1a199b1827d125b89c8cf66c8d5680bf14a1b857/crosperf/experiment_factory.py
[modify] https://crrev.com/1a199b1827d125b89c8cf66c8d5680bf14a1b857/crosperf/experiment.py

Project Member

Comment 2 by bugdroid1@chromium.org, Nov 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/toolchain-utils/+/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b

commit e2b0d3ef23cfdf19db4f39cb900845a35c3af82b
Author: Zhizhou Yang <zhizhouy@google.com>
Date: Fri Nov 16 23:10:52 2018

crosperf: Passing dso and weight to result_cache.py

To generate and collect dso sample count, this patch passes dso and
weight into result_cache.py, by setting them as members of Benchmark
object.

Meantime, fixed all related unit tests.

BUG= chromium:902785 
TEST=Passed all unit tests and sample tests locally.

Change-Id: I483a00d199d48fd5e77d882d7ac81bf93b6940df
Reviewed-on: https://chromium-review.googlesource.com/1338344
Commit-Ready: Zhizhou Yang <zhizhouy@google.com>
Tested-by: Zhizhou Yang <zhizhouy@google.com>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[modify] https://crrev.com/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b/crosperf/benchmark_run_unittest.py
[modify] https://crrev.com/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b/crosperf/benchmark_unittest.py
[modify] https://crrev.com/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b/crosperf/benchmark_run.py
[modify] https://crrev.com/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b/crosperf/benchmark.py
[modify] https://crrev.com/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b/crosperf/crosperf_unittest.py
[modify] https://crrev.com/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b/crosperf/experiment_factory.py
[modify] https://crrev.com/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b/crosperf/results_cache.py
[modify] https://crrev.com/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b/crosperf/results_cache_unittest.py
[modify] https://crrev.com/e2b0d3ef23cfdf19db4f39cb900845a35c3af82b/crosperf/settings_factory_unittest.py

Project Member

Comment 3 by bugdroid1@chromium.org, Nov 18

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/toolchain-utils/+/f1a38c2aa40388fc077a4972f9cf8bf38d6cd6bf

commit f1a38c2aa40388fc077a4972f9cf8bf38d6cd6bf
Author: Zhizhou Yang <zhizhouy@google.com>
Date: Sun Nov 18 04:20:17 2018

crosperf: collect CPU cycles for CWP approximation

This patch added functionality to collect CPU cycles in Result object
for each benchmark run. It will work when cwp_dso is specified.

BUG= chromium:902785 
TEST=Tested locally with telemetry_Crosperf with cwp_dso

Change-Id: I15e187220876084eb696ffd8f3b01304ac4b96b6
Reviewed-on: https://chromium-review.googlesource.com/1340722
Commit-Ready: Zhizhou Yang <zhizhouy@google.com>
Tested-by: Zhizhou Yang <zhizhouy@google.com>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[modify] https://crrev.com/f1a38c2aa40388fc077a4972f9cf8bf38d6cd6bf/crosperf/results_cache.py

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/toolchain-utils/+/6535cc843c4860246fb455d147b1b282e2b72c87

commit 6535cc843c4860246fb455d147b1b282e2b72c87
Author: Zhizhou Yang <zhizhouy@google.com>
Date: Thu Dec 06 13:54:39 2018

crosperf: make cwp_dso only work for run_local=False

We do not want to run cwp_dso experiment with run_local to be True.
Note that run_local is set to True by default.

BUG= chromium:902785 
TEST=Passed all unit tests

Change-Id: I11688f34b3c96ac91d3a75ec645bdb5430bef69e
Reviewed-on: https://chromium-review.googlesource.com/1363472
Commit-Ready: Zhizhou Yang <zhizhouy@google.com>
Tested-by: Zhizhou Yang <zhizhouy@google.com>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[modify] https://crrev.com/6535cc843c4860246fb455d147b1b282e2b72c87/crosperf/experiment_factory_unittest.py
[modify] https://crrev.com/6535cc843c4860246fb455d147b1b282e2b72c87/crosperf/experiment_factory.py

Project Member

Comment 5 by bugdroid1@chromium.org, Dec 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/toolchain-utils/+/f7f2b877ad1334f6a45be9e89578d07ea879c04c

commit f7f2b877ad1334f6a45be9e89578d07ea879c04c
Author: Zhizhou Yang <zhizhouy@google.com>
Date: Sat Dec 29 00:14:04 2018

crosperf: Generate report for cwp approximation

TODO: unit tests needed.

This patch trys to generate a new type of report when cwp_dso is
specified. The report will:
1) Generate a new summary table at benchmark level with weighted cpu
cycle data.
2) Do not generate perf table.
3) Generate a full table with only cpu cycles in it.

TEST=generated correct report with a normal run and two cwp_dso runs:
one succeeded run and one with failures.
BUG= chromium:902785 

Change-Id: I0c62000c6690c66d50a7a4de3cfc280853b134e2
Reviewed-on: https://chromium-review.googlesource.com/1376571
Commit-Ready: Zhizhou Yang <zhizhouy@google.com>
Tested-by: Zhizhou Yang <zhizhouy@google.com>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[modify] https://crrev.com/f7f2b877ad1334f6a45be9e89578d07ea879c04c/cros_utils/tabulator.py
[modify] https://crrev.com/f7f2b877ad1334f6a45be9e89578d07ea879c04c/crosperf/results_organizer.py
[modify] https://crrev.com/f7f2b877ad1334f6a45be9e89578d07ea879c04c/crosperf/results_cache.py
[modify] https://crrev.com/f7f2b877ad1334f6a45be9e89578d07ea879c04c/crosperf/results_report.py

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/toolchain-utils/+/ad8b237f62b9464dbff9a163647ebe6b721d6b35

commit ad8b237f62b9464dbff9a163647ebe6b721d6b35
Author: Zhizhou Yang <zhizhouy@google.com>
Date: Sun Dec 30 02:18:11 2018

crosperf: Fix bugs and nit in report generation

Fixed two parts in source code to make unit test pass:
1) Without unit, cpu cycles still should multiply by weight
2) Do not try to access cwp_dso from experiment in BenchmarkResult object,
   because there is method to generate report without running
   experiment.

One nit to change the name of TableGenerator used for CPU cycle report.

TEST=passed all unit tests in crosperf
BUG= chromium:902785 
CQ-DEPEND=CL:1376571

Change-Id: I8308b0287d60e77542ac60f5ecd5734907e51e01
Reviewed-on: https://chromium-review.googlesource.com/1389035
Commit-Ready: Zhizhou Yang <zhizhouy@google.com>
Tested-by: Zhizhou Yang <zhizhouy@google.com>
Reviewed-by: Luis Lozano <llozano@chromium.org>

[modify] https://crrev.com/ad8b237f62b9464dbff9a163647ebe6b721d6b35/cros_utils/tabulator.py
[modify] https://crrev.com/ad8b237f62b9464dbff9a163647ebe6b721d6b35/crosperf/results_report.py

Status: Fixed (was: Started)

Sign in to add a comment