diff options
author | David Hashe <david.hashe@amd.com> | 2018-04-18 16:40:28 -0400 |
---|---|---|
committer | Brandon Potter <Brandon.Potter@amd.com> | 2019-04-25 20:38:57 +0000 |
commit | ae3a00cd1fd8a0500a9d8be96c9b176a0326b133 (patch) | |
tree | 7779532d98e94308beac80806828872e56b2ff5b /configs/ruby/MESI_Three_Level.py | |
parent | 26e888965d08486aeed7ebb3ef934ceb1a38cd6f (diff) | |
download | gem5-ae3a00cd1fd8a0500a9d8be96c9b176a0326b133.tar.xz |
configs: faux-filesystem fix w/ ruby in se mode
These changes are needed so that the config scripts
can report cache hierarchy information to the faux
filesystem.
This is useful for the ROCm runtime when it reads
psuedofiles from the host filesytem from "/proc".
Change-Id: Iad3e6c088d47c9b93979f584de748367eae8259b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/12121
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Maintainer: Brandon Potter <Brandon.Potter@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'configs/ruby/MESI_Three_Level.py')
-rw-r--r-- | configs/ruby/MESI_Three_Level.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/configs/ruby/MESI_Three_Level.py b/configs/ruby/MESI_Three_Level.py index 95ac342a7..6d6bc89b9 100644 --- a/configs/ruby/MESI_Three_Level.py +++ b/configs/ruby/MESI_Three_Level.py @@ -35,6 +35,7 @@ from m5.objects import * from m5.defines import buildEnv from Ruby import create_topology, create_directories from Ruby import send_evicts +import FileSystemConfig # # Declare caches used by the protocol @@ -260,6 +261,45 @@ def create_system(options, full_system, system, dma_ports, bootmem, io_controller.requestToDir.master = ruby_system.network.slave all_cntrls = all_cntrls + [io_controller] + # Register configuration with filesystem + else: + FileSystemConfig.config_filesystem(options) + + for i in xrange(options.num_clusters): + for j in xrange(num_cpus_per_cluster): + FileSystemConfig.register_cpu(physical_package_id = 0, + core_siblings = xrange(options.num_cpus), + core_id = i*num_cpus_per_cluster+j, + thread_siblings = []) + + FileSystemConfig.register_cache(level = 0, + idu_type = 'Instruction', + size = '4096B', + line_size = options.cacheline_size, + assoc = 1, + cpus = [i*num_cpus_per_cluster+j]) + FileSystemConfig.register_cache(level = 0, + idu_type = 'Data', + size = '4096B', + line_size = options.cacheline_size, + assoc = 1, + cpus = [i*num_cpus_per_cluster+j]) + + FileSystemConfig.register_cache(level = 1, + idu_type = 'Unified', + size = options.l1d_size, + line_size = options.cacheline_size, + assoc = options.l1d_assoc, + cpus = [i*num_cpus_per_cluster+j]) + + FileSystemConfig.register_cache(level = 2, + idu_type = 'Unified', + size = str(MemorySize(options.l2_size) * \ + num_l2caches_per_cluster)+'B', + line_size = options.cacheline_size, + assoc = options.l2_assoc, + cpus = [n for n in xrange(i*num_cpus_per_cluster, \ + (i+1)*num_cpus_per_cluster)]) ruby_system.network.number_of_virtual_networks = 3 topology = create_topology(all_cntrls, options) |