From a6704ff730d5d183d6825b78ec8b500f4377ef15 Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Thu, 19 May 2022 10:49:46 +0100 Subject: [PATCH] tests: Add enable_dvm flag to test DVM in long regressions We are only adding the option to the LinuxArmFSSystem and not to the LinuxArmFSSystemUniprocessor as DVM is only supported for more than one CPU Change-Id: I57004b85158fb898297fb9d91c38673a5bb88268 Signed-off-by: Giacomo Travaglini Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/59870 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- tests/gem5/configs/arm_generic.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/gem5/configs/arm_generic.py b/tests/gem5/configs/arm_generic.py index 007b89b41e..a47a3b3824 100644 --- a/tests/gem5/configs/arm_generic.py +++ b/tests/gem5/configs/arm_generic.py @@ -1,4 +1,4 @@ -# Copyright (c) 2012, 2017, 2019 ARM Limited +# Copyright (c) 2012, 2017, 2019, 2022 Arm Limited # All rights reserved. # # The license below extends only to copyright in the software and shall @@ -71,7 +71,7 @@ class LinuxArmSystemBuilder(object): ARM-specific create_system method to a class deriving from one of the generic base systems. """ - def __init__(self, machine_type, aarch64_kernel, **kwargs): + def __init__(self, machine_type, aarch64_kernel, enable_dvm, **kwargs): """ Arguments: machine_type -- String describing the platform to simulate @@ -79,10 +79,11 @@ class LinuxArmSystemBuilder(object): use_ruby -- True if ruby is used instead of the classic memory system """ self.machine_type = machine_type + self.aarch64_kernel = aarch64_kernel + self.enable_dvm = enable_dvm self.num_cpus = kwargs.get('num_cpus', 1) self.mem_size = kwargs.get('mem_size', '256MB') self.use_ruby = kwargs.get('use_ruby', False) - self.aarch64_kernel = aarch64_kernel def init_kvm(self, system): """Do KVM-specific system initialization. @@ -133,6 +134,10 @@ class LinuxArmSystemBuilder(object): default_kernels[self.machine_type]) self.init_system(system) + if self.enable_dvm: + for cpu in system.cpu: + for decoder in cpu.decoder: + decoder.dvm_enabled = True system.workload.dtb_filename = \ os.path.join(m5.options.outdir, 'system.dtb') @@ -146,6 +151,7 @@ class LinuxArmFSSystem(LinuxArmSystemBuilder, def __init__(self, machine_type='VExpress_GEM5_Foundation', aarch64_kernel=True, + enable_dvm=False, **kwargs): """Initialize an ARM system that supports full system simulation. @@ -157,7 +163,7 @@ class LinuxArmFSSystem(LinuxArmSystemBuilder, """ BaseFSSystem.__init__(self, **kwargs) LinuxArmSystemBuilder.__init__( - self, machine_type, aarch64_kernel, **kwargs) + self, machine_type, aarch64_kernel, enable_dvm, **kwargs) def create_caches_private(self, cpu): # Use the more representative cache configuration @@ -180,7 +186,7 @@ class LinuxArmFSSystemUniprocessor(LinuxArmSystemBuilder, **kwargs): BaseFSSystemUniprocessor.__init__(self, **kwargs) LinuxArmSystemBuilder.__init__( - self, machine_type, aarch64_kernel, **kwargs) + self, machine_type, aarch64_kernel, False, **kwargs) class LinuxArmFSSwitcheroo(LinuxArmSystemBuilder, BaseFSSwitcheroo): """Uniprocessor ARM system prepared for CPU switching""" @@ -191,4 +197,4 @@ class LinuxArmFSSwitcheroo(LinuxArmSystemBuilder, BaseFSSwitcheroo): **kwargs): BaseFSSwitcheroo.__init__(self, **kwargs) LinuxArmSystemBuilder.__init__( - self, machine_type, aarch64_kernel, **kwargs) + self, machine_type, aarch64_kernel, False, **kwargs)