From cf108dd376aecc37583a43168e9f44d51a58dccb Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Wed, 26 Feb 2020 17:49:35 -0800 Subject: [PATCH] tests: Migrated 80.dram scons-based tests to testlib framework "configs/dram/low_power_sweep.py" has been modified to keep the generated "lowp_sweep.cfg" file in "configs/dram". This generated file is now ignored by git. Change-Id: I700d04944fee58f8a506c71fd474b84024ec4374 Jira: https://gem5.atlassian.net/browse/GEM5-109 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25923 Reviewed-by: Bobby R. Bruce Maintainer: Bobby R. Bruce Tested-by: kokoro --- .gitignore | 1 + configs/dram/low_power_sweep.py | 7 ++-- tests/gem5/dram-lowp/ref/simout | 14 +++++++ tests/gem5/dram-lowp/test_dram_lowp.py | 51 ++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 tests/gem5/dram-lowp/ref/simout create mode 100644 tests/gem5/dram-lowp/test_dram_lowp.py diff --git a/.gitignore b/.gitignore index 977e82b5c..b851a23f1 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ m5out /system/arm/bootloader/arm64/boot_emm.arm64 /system/arm/bootloader/arm64/boot_v2.arm64 configs/example/memcheck.cfg +configs/dram/lowp_sweep.cfg diff --git a/configs/dram/low_power_sweep.py b/configs/dram/low_power_sweep.py index e97263fb6..9a6239362 100644 --- a/configs/dram/low_power_sweep.py +++ b/configs/dram/low_power_sweep.py @@ -127,8 +127,9 @@ system.mem_ctrls[0].page_policy = args.page_policy period = 250000000 # We specify the states in a config file input to the traffic generator. -cfg_file_name = "configs/dram/lowp_sweep.cfg" -cfg_file = open(cfg_file_name, 'w') +cfg_file_name = "lowp_sweep.cfg" +cfg_file_path = os.path.dirname(__file__) + "/" +cfg_file_name +cfg_file = open(cfg_file_path, 'w') # Get the number of banks nbr_banks = int(system.mem_ctrls[0].banks_per_rank.value) @@ -214,7 +215,7 @@ cfg_file.write("TRANSITION %d %d 1\n" % (nxt_state, nxt_state)) cfg_file.close() # create a traffic generator, and point it to the file we just created -system.tgen = TrafficGen(config_file = cfg_file_name) +system.tgen = TrafficGen(config_file = cfg_file_path) # add a communication monitor system.monitor = CommMonitor() diff --git a/tests/gem5/dram-lowp/ref/simout b/tests/gem5/dram-lowp/ref/simout new file mode 100644 index 000000000..5128ab4f4 --- /dev/null +++ b/tests/gem5/dram-lowp/ref/simout @@ -0,0 +1,14 @@ +gem5 Simulator System. http://gem5.org +gem5 is copyrighted software; use the --copyright option for details. + + +Global frequency set at 1000000000000 ticks per second +--- Done DRAM low power sweep --- +Fixed params - + burst: 64, banks: 16, max stride: 512, itt min: 3332.0 ns +Swept params - + itt max multiples input: [1, 20, 100] + itt max values [46993.0, 939860.0, 4699300.0] + bank utilization values [1, 8, 16] + stride values: [64, 256, 512] +Traffic gen config file: lowp_sweep.cfg diff --git a/tests/gem5/dram-lowp/test_dram_lowp.py b/tests/gem5/dram-lowp/test_dram_lowp.py new file mode 100644 index 000000000..7a065f0d8 --- /dev/null +++ b/tests/gem5/dram-lowp/test_dram_lowp.py @@ -0,0 +1,51 @@ +# Copyright (c) 2020 The Regents of the University of California +# All Rights Reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +from testlib import * + +verifiers = ( + verifier.MatchStdoutNoPerf(joinpath(getcwd(), 'ref', 'simout')), +) + +gem5_verify_config( + name='test-low_power-close_adaptive', + fixtures=(), + verifiers=verifiers, + config=joinpath(config.base_dir, 'configs', 'dram','low_power_sweep.py'), + config_args=['-p', 'close_adaptive', '-r', '2'], + valid_isas=('NULL',), + valid_hosts=constants.supported_hosts, +) + +gem5_verify_config( + name='test-low_power-open_adaptive', + fixtures=(), + verifiers=verifiers, + config=joinpath(config.base_dir, 'configs', 'dram','low_power_sweep.py'), + config_args=['-p', 'open_adaptive', '-r', '2'], + valid_isas=('NULL',), + valid_hosts=constants.supported_hosts, +) -- 2.30.2