Merge branch 'dev' into suffixtagdocs

This commit is contained in:
Sagar Karandikar 2020-02-19 19:12:16 +00:00
commit 781cdcee9d
5 changed files with 36 additions and 8 deletions

View File

@ -158,7 +158,8 @@ class FireSimServerNode(FireSimNode):
def __init__(self, server_hardware_config=None, server_link_latency=None,
server_bw_max=None, server_profile_interval=None,
trace_enable=None, trace_select=None, trace_start=None, trace_end=None, trace_output_format=None, autocounter_readrate=None):
trace_enable=None, trace_select=None, trace_start=None, trace_end=None, trace_output_format=None, autocounter_readrate=None,
zerooutdram=None):
super(FireSimServerNode, self).__init__()
self.server_hardware_config = server_hardware_config
self.server_link_latency = server_link_latency
@ -170,6 +171,7 @@ class FireSimServerNode(FireSimNode):
self.trace_end = trace_end
self.trace_output_format = trace_output_format
self.autocounter_readrate = autocounter_readrate
self.zerooutdram = zerooutdram
self.job = None
self.server_id_internal = FireSimServerNode.SERVERS_CREATED
FireSimServerNode.SERVERS_CREATED += 1
@ -243,7 +245,7 @@ class FireSimServerNode(FireSimNode):
slotno, all_macs, all_rootfses, all_linklatencies, all_maxbws,
self.server_profile_interval, all_bootbins, self.trace_enable,
self.trace_select, self.trace_start, self.trace_end, self.trace_output_format,
self.autocounter_readrate, all_shmemportnames)
self.autocounter_readrate, all_shmemportnames, self.zerooutdram)
run(runcommand)
@ -470,7 +472,8 @@ class FireSimSuperNodeServerNode(FireSimServerNode):
runcommand = self.server_hardware_config.get_boot_simulation_command(
slotno, all_macs, all_rootfses, all_linklatencies, all_maxbws,
self.server_profile_interval, all_bootbins, self.trace_enable,
self.trace_select, self.trace_start, self.trace_end, self.trace_output_format, self.autocounter_readrate, all_shmemportnames)
self.trace_select, self.trace_start, self.trace_end, self.trace_output_format,
self.autocounter_readrate, all_shmemportnames, self.zerooutdram)
run(runcommand)

View File

@ -36,7 +36,8 @@ class FireSimTopologyWithPasses:
defaultnetbandwidth, defaultprofileinterval,
defaulttraceenable, defaulttraceselect, defaulttracestart, defaulttraceend,
defaulttraceoutputformat,
defaultautocounterreadrate, terminateoncompletion):
defaultautocounterreadrate, terminateoncompletion,
defaultzerooutdram):
self.passes_used = []
self.user_topology_name = user_topology_name
self.no_net_num_nodes = no_net_num_nodes
@ -55,6 +56,7 @@ class FireSimTopologyWithPasses:
self.defaulttraceend = defaulttraceend
self.defaulttraceoutputformat = defaulttraceoutputformat
self.defaultautocounterreadrate = defaultautocounterreadrate
self.defaultzerooutdram = defaultzerooutdram
self.terminateoncompletion = terminateoncompletion
self.phase_one_passes()
@ -317,6 +319,8 @@ class FireSimTopologyWithPasses:
node.trace_output_format = self.defaulttraceoutputformat
if node.autocounter_readrate is None:
node.autocounter_readrate = self.defaultautocounterreadrate
if node.zerooutdram is None:
node.zerooutdram = self.defaultzerooutdram
def pass_allocate_nbd_devices(self):

View File

@ -93,7 +93,8 @@ class RuntimeHWConfig:
all_bootbinaries, trace_enable,
trace_select, trace_start, trace_end,
trace_output_format,
autocounter_readrate, all_shmemportnames):
autocounter_readrate, all_shmemportnames,
enable_zerooutdram):
""" return the command used to boot the simulation. this has to have
some external params passed to it, because not everything is contained
in a runtimehwconfig. TODO: maybe runtimehwconfig should be renamed to
@ -131,7 +132,7 @@ class RuntimeHWConfig:
command_blkdev_logs = array_to_lognames(all_rootfses, "blkdev-log")
command_bootbinaries = array_to_plusargs(all_bootbinaries, "+prog")
zero_out_dram = "+zero-out-dram"
zero_out_dram = "+zero-out-dram" if (enable_zerooutdram) else ""
# TODO supernode support
dwarf_file_name = "+dwarf-file-name0=" + all_bootbinaries[0] + "-dwarf"
@ -266,6 +267,7 @@ class InnerRuntimeConfiguration:
self.trace_end = "-1"
self.trace_output_format = "0"
self.autocounter_readrate = 0
self.zerooutdram = False
if 'tracing' in runtime_dict:
self.trace_enable = runtime_dict['tracing'].get('enable') == "yes"
self.trace_select = runtime_dict['tracing'].get('selector', "0")
@ -275,6 +277,8 @@ class InnerRuntimeConfiguration:
if 'autocounter' in runtime_dict:
self.autocounter_readrate = int(runtime_dict['autocounter'].get('readrate', "0"))
self.defaulthwconfig = runtime_dict['targetconfig']['defaulthwconfig']
if 'hostdebug' in runtime_dict:
self.zerooutdram = runtime_dict['hostdebug'].get('zerooutdram') == "yes"
self.workload_name = runtime_dict['workload']['workloadname']
# an extra tag to differentiate workloads with the same name in results names
@ -329,7 +333,8 @@ class RuntimeConfig:
self.innerconf.profileinterval, self.innerconf.trace_enable,
self.innerconf.trace_select, self.innerconf.trace_start, self.innerconf.trace_end,
self.innerconf.trace_output_format,
self.innerconf.autocounter_readrate, self.innerconf.terminateoncompletion)
self.innerconf.autocounter_readrate, self.innerconf.terminateoncompletion,
self.innerconf.zerooutdram)
def launch_run_farm(self):
""" directly called by top-level launchrunfarm command. """

View File

@ -49,3 +49,10 @@ readrate=0
workloadname=linux-uniform.json
terminateoncompletion=no
suffixtag=
[hostdebug]
# When enabled (=yes), Zeros-out FPGA-attached DRAM before simulations
# begin (takes 2-5 minutes).
# In general, this is not required to produce deterministic simulations on
# target machines running linux. Enable if you observe simulation non-determinism.
zerooutdram=no

View File

@ -224,7 +224,6 @@ Set this to ``no`` if you want your Run Farm to keep running once the workload
has completed. Set this to ``yes`` if you want your Run Farm to be TERMINATED
after the workload has completed and results have been copied off.
``suffixtag``
""""""""""""""""""""""""""
@ -235,6 +234,16 @@ without renaming the entire workload. For example, specifying
in a workload results directory named
``results-workload/DATE--TIME-super-application-test-v1/``.
``[hostdebug]``
^^^^^^^^^^^^^^^^^^
``zerooutdram``
"""""""""""""""""""""""""""""
Set this to ``yes`` to zero-out FPGA-attached DRAM before simulation begins.
This process takes 2-5 minutes. In general, this is not required to produce
deterministic simulations on target machines running linux, but should be
enabled if you observe simulation non-determinism.
.. _config-build: