Commit ab2cf43a authored by Antoine Kaufmann's avatar Antoine Kaufmann
Browse files

experiments: add support for specifying gem5 variant

Experiments can explicitly specify opt/fast (default is the latter).
parent af58f1b3
...@@ -66,6 +66,7 @@ for internal in [True, False]: ...@@ -66,6 +66,7 @@ for internal in [True, False]:
for h in [client, server]: for h in [client, server]:
h.cpu_type = h.cpu_type_cp = 'TimingSimpleCPU' h.cpu_type = h.cpu_type_cp = 'TimingSimpleCPU'
h.variant = 'opt' # need opt gem5 variant with debug support
h.extra_main_args.append('--debug-flags=SimBricksEthernet,SimBricksPci,EthernetAll,EthernetDesc') h.extra_main_args.append('--debug-flags=SimBricksEthernet,SimBricksPci,EthernetAll,EthernetDesc')
if internal: if internal:
h.add_netdirect(net) h.add_netdirect(net)
......
...@@ -36,10 +36,12 @@ class ExpEnv(object): ...@@ -36,10 +36,12 @@ class ExpEnv(object):
self.qemu_img_path = self.repodir + '/sims/external/qemu/build/qemu-img' self.qemu_img_path = self.repodir + '/sims/external/qemu/build/qemu-img'
self.qemu_path = self.repodir + '/sims/external/qemu/build/x86_64-softmmu/qemu-system-x86_64' self.qemu_path = self.repodir + '/sims/external/qemu/build/x86_64-softmmu/qemu-system-x86_64'
self.qemu_kernel_path = self.repodir + '/images/bzImage' self.qemu_kernel_path = self.repodir + '/images/bzImage'
self.gem5_path = self.repodir + '/sims/external/gem5/build/X86/gem5.fast'
self.gem5_py_path = self.repodir + '/sims/external/gem5/configs/simbricks/simbricks.py' self.gem5_py_path = self.repodir + '/sims/external/gem5/configs/simbricks/simbricks.py'
self.gem5_kernel_path = self.repodir + '/images/vmlinux' self.gem5_kernel_path = self.repodir + '/images/vmlinux'
def gem5_path(self, variant):
return self.repodir + '/sims/external/gem5/build/X86/gem5.' + variant
def hdcopy_path(self, sim): def hdcopy_path(self, sim):
return '%s/hdcopy.%s' % (self.workdir, sim.name) return '%s/hdcopy.%s' % (self.workdir, sim.name)
......
...@@ -296,6 +296,7 @@ class Gem5Host(HostSim): ...@@ -296,6 +296,7 @@ class Gem5Host(HostSim):
super().__init__() super().__init__()
self.extra_main_args = [] self.extra_main_args = []
self.extra_config_args = [] self.extra_config_args = []
self.variant = 'fast'
def set_config(self, nc): def set_config(self, nc):
nc.sim = 'gem5' nc.sim = 'gem5'
...@@ -315,7 +316,7 @@ class Gem5Host(HostSim): ...@@ -315,7 +316,7 @@ class Gem5Host(HostSim):
if env.create_cp: if env.create_cp:
cpu_type = self.cpu_type_cp cpu_type = self.cpu_type_cp
cmd = f'{env.gem5_path} --outdir={env.gem5_outdir(self)} ' cmd = f'{env.gem5_path(self.variant)} --outdir={env.gem5_outdir(self)} '
cmd += ' '.join(self.extra_main_args) cmd += ' '.join(self.extra_main_args)
cmd += (f' {env.gem5_py_path} --caches --l2cache --l3cache ' cmd += (f' {env.gem5_py_path} --caches --l2cache --l3cache '
'--l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l3_size=32MB ' '--l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l3_size=32MB '
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment