14178:f68430623245 |
13-Aug-2019 |
Adrian Herrera <adrian.herrera@arm.com> |
configs: root, platform options in fs bigLITTLE
(1) Two new options are added to fs_bigLITTLE.py: - "root": disk/partition containing the rootfs (def. "/dev/vda1") - "machine-type": hardware platform class (def. "VExpress_GEM5_V1") + Accepts platform classes from PlatformConfig (2) Default kernel is not available in public uploads, force the user to provide its own kernel instead of crashing.
Change-Id: I88283ae12cd7289e15b9277ea2cc382e9136f11c Reviewed-by: Ciro Santilli <ciro.santilli@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20148 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com> |
14115:2a3eee6ded38 |
29-Jul-2019 |
Chun-Chen TK Hsu <chunchenhsu@google.com> |
configs, arch-arm: Check if gic has cpu_addr attribute
Add this check because Gicv3 does not have the cpu_addr attribute.
Test: Change VExpress_GEM5_V1() to VExpress_GEM5_V2() and run the following command to boot Debian.
M5_PATH=$PWD/fs_files ./build/ARM/gem5.opt ./configs/example/arm/fs_bigLITTLE.py \ --dtb $PWD/fs_files/binaries/armv8_gem5_v2_1cpu.dtb \ --kernel $PWD/fs_files/binaries/vmlinux \ --disk $PWD/fs_files/disks/disk.img \ --cpu-type atomic --big-cpus 1 --little-cpus 0
Change-Id: I23595ae5238dc7cc915ab09300f91aa5e8c24fdc Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19648 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com> |
14051:aff599136be8 |
07-Jun-2019 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
configs: Fix read_config to work with new AddrRange serialization
Change-Id: I122c77c34c2f8c75f8b32682be858f651112ce89 Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19151 Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> |
14050:09be542e022f |
07-Jun-2019 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
configs: Add python3 workarounds in read_config
Change-Id: Ib065f41b87e5ada9535b9c2645067162aa69234b Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19150 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> |
14032:f65b663b0df8 |
03-Apr-2019 |
Willy Wolff <willy.mh.wolff.ml@gmail.com> |
config, arm: memoryMode test
Commit 9a13acaa367769c38859342de9bc35aac59a6710 doesn't comply with the same behaviour. The conditional test the memory mode on the same cluster, while it should test the other cluster.
Change-Id: If3a7863f0905e66a548001d8e74689f5dd07179c Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17748 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13980:62a28c423e91 |
16-May-2019 |
Jason Lowe-Power <jason@lowepower.com> |
configs: Generalize FileSystemConfig for non se.py
This patch updates the FileSystemConfig so it works with more kinds of config scripts (e.g., the Learning gem5 scripts).
There are 4 main changes: - Added system as a parameter to the config_filesystem function so the function can search the system for the number of CPUs instead of relying on options from Options.py - Instead of calling redirect_paths everywhere config_filesystem is used, now it is implicitly called. - Cleaned up the Ruby scripts a bit to remove redundant calls to config_filesystem - Added a config_filesystem call to the Ruby Learning gem5 script (currently the only Learning gem5 script that requires it).
In the future, I think it would be better to move the config_filesystem call into simulate.py, probably into the instantiate function. I tried to use the per-CPU configuration parameters instead of options from Options.py, but that's not possible until after the SimObject params have been finalized in instantiate.
Change-Id: Ie6501a7435cfb3ac9d2b45be3722388b34063b1e Signed-off-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18848 Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Tested-by: kokoro <noreply+kokoro@google.com> |
13958:1945df12e5b0 |
07-Jan-2019 |
Jairo Balart <jairo.balart@metempsy.com> |
config: add an option to list and select indirect branch predictor
Change-Id: I9a855d36de7d95b7785ff8a897899037cea6a3d8 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/15320 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com> |
13883:f44e21d3aaa7 |
18-Apr-2018 |
David Hashe <david.hashe@amd.com> |
sim-se: add a faux-filesystem
This change introduces the concept of a faux-filesystem. The faux-filesystem creates a directory structure in m5out (or whatever output dir the user specifies) where system calls may be redirected.
This is useful to avoid non-determinism when reading files with varying path names (e.g., variations from run-to-run if the simulation is scheduled on a cluster where paths may change).
Also, this changeset allows circumventing host pseudofiles which have information specific to the host processor (such as cache hierarchy or processor information). Bypassing host pseudofiles can be useful when executing runtimes in the absence of an operating system kernel since runtimes may try to query standard files (i.e. /proc or /sys) which are not relevant to an application executing in syscall emulation mode.
Change-Id: I90821b3b403168b904a662fa98b85def1628621c Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/12119 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> |
13864:815193aa6617 |
22-Apr-2019 |
Po-Hao Su <supohaosu@gmail.com> |
configs: Use param to get number of processors
Although the parameter np is the same as options.num_cpus. But we should get the number of processors from the parameters of the function.
Change-Id: I3eb02d7c75ab35410b773b06001d1b145cdccd49 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18248 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Tested-by: kokoro <noreply+kokoro@google.com> |
13838:d90eaeb087c8 |
07-Apr-2019 |
Ryan Gambord <gambordr@oregonstate.edu> |
configs: Removed redudant exec-style import
garnet_synth_traffic.py imports common.Options on line 40, so exec'ing the Options.py file again seems redundant.
It also runs Options.py as a script rather than a module, which throws ValueError: Attempted relative import in non-package due to the recent change to python3 imports.
Change-Id: Id729a8dfa776af0d14312e765168aff6900eb727 Signed-off-by: Ryan Gambord <gambordr@oregonstate.edu> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17888 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13803:32c104f40e57 |
25-Jul-2018 |
Daniel R. Carvalho <odanrc@yahoo.com.br> |
configs: Remove default kernel value from system creation
Kernel was being set using a placeholder and then assigned the correct value. This would generate the following error if the placeholder file did not exist: 'IOError: Can't find file <placeholder> on path'
This patch follows the same directions of commit 12eca7ac04ae1ba559bf322b5c625513929d369d and removes the default values, forcing the user to properly configure the kernel.
Change-Id: I0eb45d12eda6b6efe9a3fe118996b640844a7b34 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/11850 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13774:a1be2a0c55f2 |
25-Feb-2019 |
Andreas Sandberg <andreas.sandberg@arm.com> |
configs: Use absolute import paths
Use absoluate import paths to be Python 3 compatible. This also imports absolute_import from __future__ to ensure that Python 2.7 behaves the same way as Python 3.
Change-Id: Ica06ed95814e9cd3e768b3e1785075e36f6e56d0 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/16708 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
13731:67cd980cb20f |
26-Jan-2019 |
Andreas Sandberg <andreas.sandberg@arm.com> |
configs: Fix Python 3 iterator and exec compatibility issues
Python 2.7 used to return lists for operations such as map and range, this has changed in Python 3. To make the configs Python 3 compliant, add explicit conversions from iterators to lists where needed, replace xrange with range, and fix changes to exec syntax.
This change doesn't fix import paths since that might require us to restructure the configs slightly.
Change-Id: Idcea8482b286779fc98b4e144ca8f54069c08024 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/16002 Reviewed-by: Gabe Black <gabeblack@google.com> |
13727:8d69b7e86acd |
20-Feb-2019 |
Gabe Black <gabeblack@google.com> |
systemc: Update the sc_main.py config to use m5.systemc.
Change-Id: I386970b5cf7ee1262b259abfb3b5e902ccea9991 Reviewed-on: https://gem5-review.googlesource.com/c/16568 Maintainer: Gabe Black <gabeblack@google.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
13684:076506a21535 |
24-Jan-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
configs: simpoint-profile usable with NonCachingCPUs only
NonCachingCPU is replacing the Atomic+fastmem option.
Change-Id: I66f5c8a880d1b3fd1331871d89e8d6a229938e57 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15935 Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13659:c2d68b376f7f |
11-Feb-2019 |
Gabe Black <gabeblack@google.com> |
systemc: config: Don't inject a custom argv[0] in sc_main.py.
argv[0] is already part of sys.argv, so we don't need to add an additional argument in front of sys.argv.
The argv[0] which is used in gem5 config scripts is the name of the config script itself. While it might seem a little odd for the name of a systemc program to end in .py, it's as arbitrary as any other name, and generally shouldn't cause a problem. If some other more sophisticated mechanism for setting argv[0] is necessary, then the user can write a very slightly more complicated version of this script with additional logic.
Change-Id: Ifd5d8a02d3cd5db76054151ed6c7a7b1f8495fa8 Reviewed-on: https://gem5-review.googlesource.com/c/16342 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com> |
13658:f82614880471 |
09-Feb-2019 |
Gabe Black <gabeblack@google.com> |
systemc: configs: Add a very simple config which just runs sc_main.
This config will just run the sc_main function (which must have been provided in c++ somehow), passing through any of the scripts command line arguments to sc_main.
Needing to do this sort of thing is common enough that there should be a canned config which supports it.
Change-Id: I8f88ba4776b9ec919dd8145a58cd856e11ac4e77 Reviewed-on: https://gem5-review.googlesource.com/c/16287 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13636:3b55e4bae1d8 |
04-Feb-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
configs, arch-arm: Using AddrRange for Realview mem_regions
Physical memory ranges are now saved in Realview objects as pairs of addresses (start address and size). This patch is substituting them with a single AddrRange object.
Change-Id: I02d25d557c5c54d062f0dccef8ede45744d0ce6b Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Ciro Santilli <ciro.santilli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/16206 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13635:d9dcebb1d6b6 |
03-Feb-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
configs: Unifiy interpretation of Realview mem_regions
In every arm platform which is making use of them, mem_regions are interpreted as a pair of start address and size. However arm SimpleSystem, which is using VExpress_GEM5_V1, is interpreting them as start address and end address. This patch is fixing this mismatch.
Change-Id: I0b2a2193cd07fbc5430f233438269a9c7c353df9 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Ciro Santilli <ciro.santilli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/16205 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13609:adc3dd5e3384 |
25-Jan-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
configs: Enable DTB autogeneration in starter_fs.py
This patch is removing hardcoded default DTBs in favour of common DTB autogeneration.
Change-Id: I68fdc2a169bfa8e8657c9ed4e4e127957a08cca1 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15959 Reviewed-by: Ciro Santilli <ciro.santilli@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13608:e91969b61d3d |
25-Jan-2019 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm, configs: Create single instance of DTB autogeneration
This patch is rewriting the DTB autogeneration functions available in fs_bigLITTLE.py and fs.py as a single method in the GenericArmSystem so that other configuration scripts can make use of it.
Change-Id: I492bbf77e6b0ac5c5fbdbc75c0eecba29bd63bda Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15958 Reviewed-by: Ciro Santilli <ciro.santilli@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13606:2ad4449e6cb4 |
24-Jan-2019 |
Ciro Santilli <ciro.santilli@arm.com> |
configs: fs.py remove --generate-dtb and enable it by default
The option is now enabled if neither --bare-metal nor --dtb-filename are given.
This is what fs_bigLITTLE.py already did before this patch.
Change-Id: I9179f8c9fa18edbd1e0f1a65ea2c1de0a26b7921 Reviewed-on: https://gem5-review.googlesource.com/c/15899 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13432:6ce67b7e6e44 |
07-Nov-2018 |
Pau Cabre <pau.cabre@metempsy.com> |
configs: Added an option for choosing branch predictor type
Added the parameter "--bp-type" to set the branch predictor type Added the parameter "--list-bp-types" to list all the available branch predictor types
Change-Id: Ia6aae90c784aef359b6d8233c8383cd7a871aca1 Signed-off-by: Pau Cabre <pau.cabre@metempsy.com> Reviewed-on: https://gem5-review.googlesource.com/c/14015 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
13408:f586d7fb4623 |
04-Oct-2018 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
configs: Revamp ruby mem test to align with MemTest
The test script was broken as it was based on an older version of MemTest, this changes revamps the creation of MemTest and removes parameters that are not any longer valid.
Change-Id: Ib87369c1e4717c2da23e8108c72eec871e56f6ed Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/13596 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13357:110926e15f1f |
13-Sep-2018 |
Ciro Santilli <ciro.santilli@arm.com> |
config: add --param to fs.py, se.py and fs_bigLITTLE.py
The option allows to set SimObject params from the CLI.
The existing config scripts have a large number of options that simply set a single SimObject parameter, and many still are not exposed.
This commit allows users to pass arbitrary parameters from the command line to prevent the need for this kind of trivial option.
Change-Id: Ic4bd36948aca4998d2eaf6369c85d3668efa3944 Reviewed-on: https://gem5-review.googlesource.com/c/12985 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13174:6d96125a657c |
09-Oct-2018 |
Daniel R. Carvalho <odanrc@yahoo.com.br> |
configs: Fix CPUClass typo in se.py
Change 719eb033fe435133abf15501c249eec10d1c861f added a typo to se.py that breaks simpoint simulation, which generates the following error:
Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/daniel/gem5/src/python/m5/main.py", line 435, in main exec filecode in scope File "./configs/example/se.py", line 217, in <module> if not CpuConfig.is_atomic_cpu(TestCPUClass): NameError: name 'TestCPUClass' is not defined
Change-Id: Ideede8c96a40ee16af733c3d57b02b64f1a18d12 Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/13267 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13022:6c0f747b0c64 |
14-Sep-2018 |
Sherif Elhabbal <elhabbalsherif@gmail.com> |
config, arm, power: Example to report the power for the L2 Cache
This patch add an example to demonstrate how to report the power for the L2 Cache of the big cluster separately ,it decouples the L2 contributions from the CPU power equation
Signed-off-by: Sherif Elhabbal <elhabbalsherif@gmail.com> Change-Id: Idde43c8bcb10df9d44d20282eaf21ce87a9d3f58 Reviewed-on: https://gem5-review.googlesource.com/12684 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Anouk Van Laer <anouk.vanlaer@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
13012:5fbc6b9c64bc |
15-Mar-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
cpu: Replace the fastmem with a new CPU model
The AtomicSimpleCPU used to be able to access memory directly to speed up simulation if no caches are used. This is fine as long as no switching between CPU models is required. In order to switch to a new CPU model that requires caches, we currently need to checkpoint the system and restore it into a new configuration. The new 'atomic_noncaching' memory mode provides a solution that avoids this issue since caches are bypassed in this mode. This changeset removes the old fastmem option from the AtomicSimpleCPU and introduces a new CPU, NonCachingSimpleCPU, which derives from the AtomicSimpleCPU.
The NonCachingSimpleCPU uses the same mechanism as the AtomicSimpleCPU used to use when accessing memory in when fastmem was enabled.
This changeset also introduces a new switcheroo test that tests switching between a NonCachingSimpleCPU and a TimingSimpleCPU with caches.
Change-Id: If01893f9b37528b14f530c11ce6f53c097582c21 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/12419 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12941:24771c7aee2e |
28-Aug-2018 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config: Move KVM CPU checking to CpuConfig helper module
Both se.py and fs.py need to check if a CPU is a KVM CPU. This is somewhat involved since CPUs can be disabled at compile time. Enable better code reuse by moving it to the CpuConfig module.
Change-Id: I47b1512ecb62e757399a407a0e41be83b9f83be3 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/12418 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12726:850e9965525b |
05-Feb-2018 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
mem-cache: Add a non-coherent cache
The class re-uses the existing MSHR and write queue. At the moment every single access is handled by the cache, even uncacheable accesses, and nothing is forwarded.
This is a modified version of a changeset put together by Andreas Hansson <andreas.hansson@arm.com>
Change-Id: I41f7f9c2b8c7fa5ec23712a4446e8adb1c9a336a Reviewed-on: https://gem5-review.googlesource.com/8291 Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> |
12697:cd71b966be1e |
27-Apr-2018 |
Tony Gutierrez <anthony.gutierrez@amd.com> |
style: fix amd license and style issues
Change-Id: I26136fb49f743c4a597f8021cfd27f78897267b5 Reviewed-on: https://gem5-review.googlesource.com/10463 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com> |
12647:6d7e2f321496 |
12-Apr-2018 |
Tony Gutierrez <anthony.gutierrez@amd.com> |
configs, mem-ruby: fix issues with style in AMD license
fixes line length and white space issues.
Change-Id: Ia04a91ec68cae2bcdabeb93bb1a0f74e8e5486c3 Reviewed-on: https://gem5-review.googlesource.com/9801 Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com> Maintainer: Bradford Beckmann <brad.beckmann@amd.com> |
12598:b80b2d9a251b |
12-Feb-2018 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
arch-arm, configs: Treat the bootloader rom as cacheable memory
Prior to this changeset the bootloader rom (instantiated as a SimpleMemory) in ruby Arm systems was treated as an IO device and it was fronted by a DMA controller. This changeset moves the bootloader rom and adds it to the system as another memory with a dedicated directory controller.
Change-Id: I094fed031cdef7f77a939d94f948d967b349b7e0 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/8741 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12564:2778478ca882 |
06-Mar-2018 |
Gabe Black <gabeblack@google.com> |
config: Switch from the print statement to the print function.
Change-Id: I701fa58cfcfa2767ce9ad24da314a053889878d0 Reviewed-on: https://gem5-review.googlesource.com/8762 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> Maintainer: Gabe Black <gabeblack@google.com> |
12490:a98a4a21417a |
04-Feb-2018 |
Nayan Deshmukh <nayan26deshmukh@gmail.com> |
config: remove dead code in fs.py
We have not added the --generate-dtb option for non-ARM systems and hence this case becomes dead code. It also leads to error on non-ARM systems as is tries to access a non existent field.
Change-Id: Ia926bd0c61efa275bc5e3864b8a9c3ffb7aa3cb5 Signed-off-by: Nayan Deshmukh <nayan26deshmukh@gmail.com> Reviewed-on: https://gem5-review.googlesource.com/7801 Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12476:a891137813ec |
11-Sep-2017 |
Curtis Dunham <Curtis.Dunham@arm.com> |
config, arm: enable device tree autogeneration for bigLITTLE
Change-Id: Iaa5eeb3504b3ff9e46b6f592a06d6b833c830d83 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5969 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12475:c6a23d6370de |
14-Mar-2016 |
Glenn Bergmans <glenn.bergmans@arm.com> |
config: Embed Device Tree generation in fs.py config
Equips the fs.py config routine with an extra commandline option --generate-dtb that will generate a dtb file automatically before running the simulation. Only works with ARM systems and gives a warning if the simulated system is not of --machine-type VExpress_GEM5_V1.
Change-Id: I7766e5459fd9bec2245de83cef103091ebaf7229 Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5968 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12430:11cb907bd81b |
03-Jan-2018 |
Chen Zou <chenzou@uchicago.edu> |
configs: Fill in the cpu.isa field in etrace_replay.py since no default are provided now
Change-Id: I5f337b9969820bd74ed67e576e2d1a8e4666ecdb Reviewed-on: https://gem5-review.googlesource.com/7021 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12418:340406d827e2 |
05-Jan-2018 |
Tony Gutierrez <anthony.gutierrez@amd.com> |
gpu-compute: call createThreads() on cpu objs in apu_se.py
commit 8ad26e2688b8736f9290086bb4026cc7500429e9 cpu: Don't override ISA if provided by user
removed the default ISA from the BaseCPU, and instead relies on createThreads() to initiate a default ISA if none is specified. the apu_se.py script, however does not call creatThreads() leading to a fatal when constructing CPU objects. this patch adds the appropriate calls to createThreads() inside apu_se.py.
Change-Id: I16a5929454c59d68a3f1b7b3858c48a70cb76412 Reviewed-on: https://gem5-review.googlesource.com/7101 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Michael LeBeane <Michael.Lebeane@amd.com> Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com> |
12411:394fa4ecc018 |
21-Dec-2017 |
Gabe Black <gabeblack@google.com> |
config: Handle NULL simobject parameters in read_config.py.
Change-Id: If0f87e8ee37099be4d0f3567db4fc34f8467e409 Reviewed-on: https://gem5-review.googlesource.com/6943 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12410:184beca7f554 |
21-Dec-2017 |
Gabe Black <gabeblack@google.com> |
config: Fix parsing AddrRange parameters in read_config.py.
The format of AddrRange parameters was changed, but config/example/read_config.py wasn't updated for the new format.
Change-Id: Ie0da7aaa47c827bacc2b4f7f44929efd868b8794 Reviewed-on: https://gem5-review.googlesource.com/6942 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12409:0435e2ab811a |
14-Dec-2017 |
Gabe Black <gabeblack@google.com> |
config: Add a --checkpoint-dir argument to read_config.py.
This argument lets the user restore a checkpoint after loading simulator state from config.ini.
Change-Id: I6e0630d75b798a1d2536e2408660843f57f46c4b Reviewed-on: https://gem5-review.googlesource.com/6941 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12395:322bb93e5f06 |
09-Nov-2017 |
Swapnil Haria <swapnilster@gmail.com> |
mem-ruby: Support atomic_noncaching acceses in ruby
Ruby has no support for atomic_noncaching accesses, which prevents using it with kvm-cpu. This patch fixes this by directly forwarding atomic requests from the ruby port/sequencer to the corresponding directory based on the destination address of the packet.
Change-Id: I0b4928bfda44fd9e5e48583c51d1ea422800da2d Reviewed-on: https://gem5-review.googlesource.com/5601 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Maintainer: Bradford Beckmann <brad.beckmann@amd.com> |
12340:a52f6d327259 |
22-Nov-2017 |
Éder F. Zulian <zulian@eit.uni-kl.de> |
config, mem, hmc: fix HMC test script
This patch keeps the logic behind the HMC model implementation untouched.
Additional changes: - simple hello world script using HMC (SE simulation)
Usage examples:
./build/ARM/gem5.opt configs/example/hmctest.py ./build/ARM/gem5.opt configs/example/hmctest.py --enable-global-monitor --enable-link-monitor --arch=same ./build/ARM/gem5.opt configs/example/hmctest.py --enable-global-monitor --enable-link-monitor --arch=mixed ./build/ARM/gem5.opt configs/example/hmc_hello.py ./build/ARM/gem5.opt configs/example/hmc_hello.py --enable-global-monitor --enable-link-monitor
Change-Id: I64eb6c9abb45376b6ed72722926acddd50765394 Reviewed-on: https://gem5-review.googlesource.com/6061 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12166:1e88ad5f1a47 |
03-Aug-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
configs, arm: Fix incorrect use of mem_range in bL example
The change "config: Change mem_range attribute naming in ARM SimpleSystem" modified the SimpleSystem class to be compatible with the MemConfig utility script. While doing so, the way we report the memory ranges supported by the system changed, which broke the bL example configration. This changeset introduces the necessary changes to make the script work again.
Change-Id: I789987950ff04b6c5ae1c8b807355bcba34f6b3c Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4380 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
12165:463d335724d7 |
20-Jul-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
arm, config: Fix CPU names in ARM example configs
The ARM example configs used to rely on CPU aliases for the AtomicSimpleCPU and KVM when configuring clusters. This broken when support for CPU aliases was removed ('config: Remove support for CPU aliases.'). This change updates the config scripts to use the full class names instead.
Change-Id: If36c46207f39ca1897ecf77d9588f1c059819e63 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4360 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
12153:dc6e9f6dfd9c |
27-Jul-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
arch-arm: Switch to DTOnly as the default machine type
Old ARM systems used to pass the machine type in the ATAGS list passed to the kernel. This has been largely deprecated by the introduction of device trees. Switch to the DTOnly machine type by default in gem5 since all new platforms and kernel will require this behavior.
Change-Id: Icfd085e4862863b4ef495566bfddbd11591866c3 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4260 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> |
12151:52ac7a63ca39 |
07-Jul-2017 |
Gabor Dozsa <gabor.dozsa@arm.com> |
config, arm: SE configuration for the ARM starter kit
Add a full system example configuration for the ARM Research Starter Kit on System Modeling. More information can be found at: http://www.arm.com/ResearchEnablement/SystemModeling
Change-Id: Ia32a28eb713ba7050d790327ba6dbb73ec33b53a Signed-off-by: Gabor Dozsa <gabor.dozsa@arm.com> [ Minor cleanups and more documentation ] Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4203 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12150:765558361fd6 |
05-Jul-2017 |
Gabor Dozsa <gabor.dozsa@arm.com> |
config, arm: FS configuration for the ARM starter kit
Add a full system example configuration for the ARM Research Starter Kit on System Modeling. More information can be found at: http://www.arm.com/ResearchEnablement/SystemModeling
Change-Id: Ifa40419d21923a32bb383d58466e421fe4260ddd Signed-off-by: Gabor Dozsa <gabor.dozsa@arm.com> [ Minor cleanups and more documentation ] Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4202 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12148:6d367c7fdb1d |
05-Jul-2017 |
Gabor Dozsa <gabor.dozsa@arm.com> |
config: Change mem_range attribute naming in ARM SimpleSystem
MemConfig.config() expects memory ranges to be defined in a particular way. This patch changes the naming of the mem_range attribute in SympleSystem to enable use of MemConfig for configuring the memory.
Change-Id: I4964c136e53a99c69ff5e086cacb929aa435168d Signed-off-by: Gabor Dozsa <gabor.dozsa@arm.com> Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/4200 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12146:bb4ca633cf1f |
19-Jul-2017 |
Pau Cabre <pau.cabre@metempsy.com> |
configs,sim-se: fix se.py multi-cpu multi-cmd issue
Assign different pids to the different commands specified with the "--cmd" flag to configs/example/se.py
Without this change, the following command line triggers a "fatal: _pid 100 is already used" error:
command=$PWD/tests/test-progs/hello/bin/arm/linux/hello ./build/ARM/gem5.opt configs/example/se.py -n 2 -c "$command;$command"
Change-Id: If6f726481eb196d4f42680b6aa46364fce4190ed Signed-off-by: Pau Cabre <pau.cabre@metempsy.com> Reviewed-on: https://gem5-review.googlesource.com/4160 Reviewed-by: Brandon Potter <Brandon.Potter@amd.com> Maintainer: Brandon Potter <Brandon.Potter@amd.com> |
12097:77a3d2890ba6 |
26-Jun-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config: Move core timing models to config/common/cores
Change-Id: I189b6462cc64f7cc6c1b7a6c2af1abb60e1854de Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3943 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12079:a5cc6df83fcf |
23-Feb-2017 |
Gedare Bloom <gedare@rtems.org> |
configs, arm: add option to enable security extensions
Change-Id: I0c839bb649a5d2d73080b7e718da3c9b5839cf8c Signed-off-by: Gedare Bloom <gedare@rtems.org> Reviewed-on: https://gem5-review.googlesource.com/3264 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12029:f8b3a3bf4711 |
12-May-2017 |
Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr> |
configs: fix cpu names in big.LITTLE example
CPU aliases have been dropped, this change fixes the big.LITTLE example.
Change-Id: Idd59a6eca93448ef0e23087365fb5452bcef9247 Signed-off-by: Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr> Reviewed-on: https://gem5-review.googlesource.com/3300 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> |
12028:29ea3c7bc92f |
22-Mar-2017 |
Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr> |
arm, config: added support for ex5 model of big.LITTLE
This patch enables using calibrated big and LITTLE cores, ex5_big and ex5_LITTLE instead of the default 'arm_detailed' and 'minor' cpus. The ex5 model is based on the Samsung Exynos 5 Octa (5422) SoC. Operation and memory hierarchy latencies have been calibrated using the lmbench micro-benchmark suite. The preliminary validation results have been published as: 'Full-System Simulation of big.LITTLE Multicore Architecture for Performance and Energy Exploration', in International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSoC'16), Lyon, France (Sep, 2016).
From http://reviews.gem5.org/r/3666
Change-Id: I4935dee0a9222bd1bf7adfccb9443014945bb2d7 Signed-off-by: Anastasiia Butko <abutko@lbl.gov> Signed-off-by: Pierre-Yves Péneau <pierre-yves.peneau@lirmm.fr> Reviewed-on: https://gem5-review.googlesource.com/2464 Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
12014:f973caaf935d |
08-May-2017 |
Gabe Black <gabeblack@google.com> |
config: Fix up some configs to not use CPU aliases.
Support for CPU aliases were removed recently.
Change-Id: I3c1173dc34170d8639d95e52bf660f248848f77f Reviewed-on: https://gem5-review.googlesource.com/3100 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
11995:d3dbd5a6b19a |
27-Apr-2017 |
Gabe Black <gabeblack@google.com> |
config: Remove support for CPU aliases.
This was added for backwards compatability, but it adds a decent amount of complexity.
The table below shows what CPU class name to use in place of a given alias.
+==========+========================================================+ | Alias | CPU class | +==========+========================================================+ | timing | TimingSimpleCPU | | atomic | AtomicSimpleCPU | | minor | MinorCPU | | detailed | DrivO3CPU | | kvm | ArmKvmCPU, ArmV8KvmCPU or X86KvmCPU, depending on arch | | trace | TraceCPU | +==========+========================================================+
Change-Id: I251c4f64b7869c6b64dd25b36967ae240f01ef08 Reviewed-on: https://gem5-review.googlesource.com/2940 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
11973:aa43e508ade4 |
05-Apr-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config, arm: Add an example power model
Add a script to demonstrate how power models can be wired to gem5 models. The script is meant as an example only and does not correlate with any realistic implementation.
Change-Id: Ib95a74b2cb4af77a7816e3e8e89c89f3460775a1 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2721 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> |
11936:8ab45fd19f40 |
17-Mar-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config, arm: Add multi-core KVM support to bL config
Add support for KVM in the big.LITTLE(tm) example configuration. This replaces the --atomic option with a --cpu-type option that can be used to switch between atomic, kvm, and timing simulation.
When running in KVM mode, the simulation script automatically assigns separate event queues (threads) to each of the simulated CPUs. All simulated devices, including CPU child devices (e.g., interrupt controllers and caches), are assigned to event queue 0.
Change-Id: Ic9a3f564db91f5a3d3cb754c5a02fdd5c17d5fdf Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2561 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Weiping Liao <weipingliao@google.com> |
11935:28290ed77b03 |
20-Mar-2017 |
Andreas Sandberg <andreas.sandberg@arm.com> |
config, arm: Unify checkpoint path handling in bL configs
The vanilla bL configuration file and the dist-gem5 configuration file use slightly different code paths when restoring from checkpoints. Unify this by passing the parsed options to the instantiate() method and adding an optional checkpoint keyword argument for checkpoint directories (only used by the dist-gem5 script).
Change-Id: I9943ec10bd7a256465e29c8de571142ec3fbaa0e Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2560 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Weiping Liao <weipingliao@google.com> |
11851:824055fe6b30 |
09-Nov-2016 |
Brandon Potter <brandon.potter@amd.com> |
syscall_emul: [patch 5/22] remove LiveProcess class and use Process instead
The EIOProcess class was removed recently and it was the only other class which derived from Process. Since every Process invocation is also a LiveProcess invocation, it makes sense to simplify the organization by combining the fields from LiveProcess into Process. |
11845:afd6aaee268e |
14-Feb-2017 |
Gabor Dozsa <gabor.dozsa@arm.com> |
arm,config: Add dist-gem5 support to the big.LITTLE(tm) config
This patch extends the example big.LITTLE configuration to enable dist-gem5 simulations of big.LITTLE systems.
Change-Id: I49c095ab3c737b6a082f7c6f15f514c269217756 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11843:9323db591b22 |
14-Feb-2017 |
Gabor Dozsa <gabor.dozsa@arm.com> |
arm,config: Refactor the example big.LITTLE(tm) configuration
This patch prepares future extensions and customisation of the example big.LITTLE configuration script. It breaks out the major phases into functions so they can be called from other python scripts.
Change-Id: I2cb7c207c410fe14602cf17af7482719abba6c24 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11839:dd6df2e47c14 |
14-Feb-2017 |
Curtis Dunham <Curtis.Dunham@arm.com> |
sim, kvm: make KvmVM a System parameter
A KVM VM is typically a child of the System object already, but for solving future issues with configuration graph resolution, the most logical way to keep track of this object is for it to be an actual parameter of the System object.
Change-Id: I965ded22203ff8667db9ca02de0042ff1c772220 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11837:17b37f38944a |
14-Feb-2017 |
Wendy Elsasser <wendy.elsasser@arm.com> |
mem: Update DRAM configuration names
Names of DRAM configurations were updated to reflect both the channel and device data width.
Previous naming format was: <DEVICE_TYPE>_<DATA_RATE>_<CHANNEL_WIDTH>
The following nomenclature is now used: <DEVICE_TYPE>_<DATA_RATE>_<n>x<w> where n = The number of devices per rank on the channel x = Device width
Total channel width can be calculated by n*w
Example: A 64-bit DDR4, 2400 channel consisting of 4-bit devices: n = 16 w = 4 The resulting configuration name is: DDR4_2400_16x4
Updated scripts to match new naming convention.
Added unique configurations for DDR4 for: 1) 16x4 2) 8x8 3) 4x16
Change-Id: Ibd7f763b7248835c624309143cb9fc29d56a69d1 Reviewed-by: Radhika Jagtap <radhika.jagtap@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> |
11790:f1ffedcf3b98 |
09-Jan-2017 |
Matthias Jung <jungma@eit.uni-kl.de> |
config: Fix missing include in fs.py
Bugfix for Elastic Traces
This patch fixes the bug when elastic traces are used:
build/ARM/gem5.opt \ configs/example/fs.py \ --cpu-type=arm_detailed \ --num-cpu=1 \ --mem-type=SimpleMemory \ --mem-size=512MB \ --mem-channels=1 \ --caches \ --elastic-trace-en \ --data-trace-file=data.proto.gz \ --inst-trace-file=inst.proto.gz \ --machine-type=VExpress_EMM \ --dtb-filename=vexpress.aarch32.ll_20131205.0-gem5.1cpu.dtb \ --kernel=vmlinux.aarch32.ll_20131205.0-gem5 \ --disk-image=linux-aarch32-ael.img
NameError: global name 'CpuConfig' is not defined
Signed-off by: Jason Lowe-Power <jason@lowepower.com> |
11756:0d38e56356c7 |
06-Dec-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
arm, config: Add missing IOCache in bL config
This patch adds an IOCache to the example bigLITTLE configuration. An IOCache is required for correct DMA transfers when we have caches in the system.
Change-Id: Ifeddc1b360aacbb16b1393f361dd98873c834012 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11753:6aefb19ff369 |
05-Dec-2016 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
config: Add an option to generate a random topology in memcheck
This change adds the option to use the memcheck with random memory hierarchies at the moment limited to a maximum depth of 3 allowing testing with uncommon topologies.
Change-Id: Id2c2fe82a8175d9a67eb4cd7f3d2e2720a809b60 Reviewed-by: Andreas Hansson <andreas.hansson@arm.com> |
11752:e922938edf18 |
05-Dec-2016 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
config: Add whole line accesses to improve memchecker's coverage
Change-Id: Ie1a047139e350ce7400f3a20be644eaff1e21428 Reviewed-by: Andreas Hansson <andreas.hansson@arm.com> |
11722:f15f02d8c79e |
30-Nov-2016 |
Sophiane Senni <sophiane.senni@gmail.com> |
mem: Split the hit_latency into tag_latency and data_latency
If the cache access mode is parallel, i.e. "sequential_access" parameter is set to "False", tags and data are accessed in parallel. Therefore, the hit_latency is the maximum latency between tag_latency and data_latency. On the other hand, if the cache access mode is sequential, i.e. "sequential_access" parameter is set to "True", tags and data are accessed sequentially. Therefore, the hit_latency is the sum of tag_latency plus data_latency.
Signed-off-by: Jason Lowe-Power <jason@lowepower.com> |
11700:7d4d424c9f17 |
26-Oct-2016 |
Tony Gutierrez <anthony.gutierrez@amd.com> |
gpu-compute: support in-order data delivery in GM pipe
this patch adds an ordered response buffer to the GM pipeline to ensure in-order data delivery. the buffer is implemented as a stl ordered map, which sorts the request in program order by using their sequence ID. when requests return to the GM pipeline they are marked as done. only the oldest request may be serviced from the ordered buffer, and only if is marked as done.
the FIFO response buffers are kept and used in OoO delivery mode |
11688:725fef71f376 |
26-Oct-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Break out base options for usage with NULL ISA
This patch breaks out the most basic configuration options into a set of base options, to allow them to be used also by scripts that do not involve any ISA, and thus no actual CPUs or devices.
The patch also fixes a few modules so that they can be imported in a NULL build, and avoid dragging in FSConfig every time Options is imported. |
11682:612f75cf36a0 |
14-Oct-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Make configs/common a Python package
Continue along the same line as the recent patch that made the Ruby-related config scripts Python packages and make also the configs/common directory a package.
All affected config scripts are updated (hopefully).
Note that this change makes it apparent that the current organisation and naming of the config directory and its subdirectories is rather chaotic. We mix scripts that are directly invoked with scripts that merely contain convenience functions. While it is not addressed in this patch we should follow up with a re-organisation of the config structure, and renaming of some of the packages. |
11670:6ce719503eae |
13-Oct-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
ruby: Fix regressions and make Ruby configs Python packages
This patch moves the addition of network options into the Ruby module to avoid the regressions all having to add it explicitly. Doing this exposes an issue in our current config system though, namely the fact that addtoPath is relative to the Python script being executed. Since both example and regression scripts use the Ruby module we would end up with two different (relative) paths being added. Instead we take a first step at turning the config modules into Python packages, simply by adding a __init__.py in the configs/ruby, configs/topologies and configs/network subdirectories.
As a result, we can now add the top-level configs directory to the Python search path, and then use the package names in the various modules. The example scripts are also updated, and the messy path-deducing variations in the scripts are unified. |
11662:004d34b65092 |
06-Oct-2016 |
Tushar Krishna <tushar@ece.gatech.edu> |
config: add a separate config file for the network. This patch adds a new file configs/network/Network.py to setup the network, instead of doing that within Ruby.py. |
11661:2bc3962f59fe |
06-Oct-2016 |
Tushar Krishna <tushar@ece.gatech.edu> |
ruby: rename networktest to garnet_synthetic_traffic. networktest is essentially a collection of synthetic traffic patterns for the network. The protocol name and the tester having the same name led to multiple python configuration files with the same name, adding confusion. This patch renames networktest to garnet_synthetic_traffic, and also adds more synthetic traffic patterns. |
11630:6e2408ad4425 |
15-Sep-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
arm, config: Fixups for the example big.LITTLE(tm) configuration
This patch refactors the configuration file to use a more object-oriented design.
Change-Id: I44ac2d063c2b5901f385544fb6ce3f259459cb05 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com> |
11616:d726d0cea027 |
22-Aug-2016 |
David Hashe <david.j.hashe@gmail.com> |
config: KVM acceleration for apu_se.py
Add support for using KVM to accelerate APU simulations. The intended use case is to fast-forward through runtime initialization until the first kernel launch. |
11598:e0ddee91eb13 |
10-Aug-2016 |
Andreas Sandberg <andreas.sandberg@arm.com> |
arm, config: Add initial support for Ruby
Add initial support for creating an ARM system with a Ruby-based memory system. This support is currently experimental and limited to the new VExpress_GEM5_V1 platform.
Change-Id: I36baeb68b0d891e34ea46aafe17b5e55217b4bfa Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Brad Beckmann <brad.beckmann@amd.com> |
11569:2eae1dfaa791 |
21-Jul-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
arm, config: Add an example ARM big.LITTLE(tm) configuration script
An ARM big.LITTLE system consists of two cpu clusters: the big CPUs are typically complex out-of-order cores and the little CPUs are simpler in-order ones. The fs_bigLITTLE.py script can run a full system simulation with various number of big and little cores and cache hierarchy. The commit also includes two example device tree files for booting Linux on the bigLITTLE system.
Change-Id: I6396fb3b2d8f27049ccae49d8666d643b66c088b Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> |
11552:354e5631a6c1 |
01-Jul-2016 |
Abdul Mutaal Ahmad <abdul.mutaal@gmail.com> |
mem: tester for new HMC configuration
This patch provides the example test script to configure different HMC architecture and run traffic through traffic generator.
Committed by Jason Lowe-Power <jason@lowepower.com> |
11534:7106f550afad |
09-Jun-2016 |
jkalamat <john.kalamatianos@amd.com> |
gpu-compute: parametrize Wavefront size
Eliminate the VSZ constant that defined the Wavefront size (in numbers of work items); replaced it with a parameter in the GPU.py configuration script. Changed all data structures dependent on the Wavefront size to be dynamically sized. Legal values of Wavefront size are 16, 32, 64 for now and checked at initialization time. |
11451:082f25c02518 |
21-Apr-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add missing point of coherency to memcheck script
Bring in line with changes to the XBar class. |
11334:9bd2e84abdca |
10-Feb-2016 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Move the point of coherency to the coherent crossbar
This patch introduces the ability of making the coherent crossbar the point of coherency. If so, the crossbar does not forward packets where a cache with ownership has already committed to responding, and also does not forward any coherency-related packets that are not intended for a downstream memory controller. Thus, invalidations and upgrades are turned around in the crossbar, and the memory controller only sees normal reads and writes.
In addition this patch moves the express snoop promotion of a packet to the crossbar, thus allowing the downstream cache to check the express snoop flag (as it should) for bypassing any blocking, rather than relying on whether a cache is responding or not. |
11320:42ecb523c64a |
06-Feb-2016 |
Steve Reinhardt <steve.reinhardt@amd.com> |
style: remove trailing whitespace
Result of running 'hg m5style --skip-all --fix-white -a'. |
11310:b4bbf540d1a7 |
22-Jan-2016 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: changed all references to numCPs to num-cp |
11308:7d8836fd043d |
19-Jan-2016 |
Tony Gutierrez <anthony.gutierrez@amd.com> |
gpu-compute: AMD's baseline GPU model |
11291:9d2364203316 |
07-Jan-2016 |
Gabor Dozsa <gabor.dozsa@arm.com> |
config: Updates for distributed gem5 simulations |
11272:744e6074f6ae |
17-Dec-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
configs: Make the default memtest behaviour more complex
Add functional and uncacheable accesses by default. |
11266:452e10b868ea |
20-Jul-2015 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: more flexible ruby tester support
This patch allows the ruby random tester to use ruby ports that may only support instr or data requests. This patch is similar to a previous changeset (8932:1b2c17565ac8) that was unfortunately broken by subsequent changesets. This current patch implements the support in a more straight-forward way. Since retries are now tested when running the ruby random tester, this patch splits up the retry and drain check behavior so that RubyPort children, such as the GPUCoalescer, can perform those operations correctly without having to duplicate code. Finally, the patch also includes better DPRINTFs for debugging the tester. |
11251:a15c86af004a |
07-Dec-2015 |
Radhika Jagtap <radhika.jagtap@ARM.com> |
config: Enable elastic trace capture and replay in se/fs
This patch adds changes to the configuration scripts to support elastic tracing and replay.
The patch adds a command line option to enable elastic tracing in SE mode and FS mode. When enabled the Elastic Trace cpu probe is attached to O3CPU and a few O3 CPU parameters are tuned. The Elastic Trace probe writes out both instruction fetch and data dependency traces. The patch also enables configuring the TraceCPU to replay traces using the SE and FS script.
The replay run is designed to resume from checkpoint using atomic cpu to restore state keeping it consistent with FS run flow. It then switches to TraceCPU to replay the input traces. |
11228:021524c21cbc |
22-Nov-2015 |
Andrew Bardsley <Andrew.Bardsley@arm.com> |
config: Added missing types to JSON/INI Python reader
Added the missing types EthernetAddr and Current to the JSON/INI file reader example configs/example/read_config.py.
Also added __str__ to EthernetAddr to make values appear in the same form in JSON an INI files. |
11200:6ef7d715d583 |
06-Nov-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Update memtest to stress test clean writebacks
This patch adds yet another twist to the memtest cache hierarchy, in that the writeback_clean option is toggled at every level to match the clusivity of the downstream cache. |
11198:8149b36b8803 |
06-Nov-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Update memtest to stress test cache clusivity
This patch adds an new twist to the memtest cache hierarchy, in that it switches from mostly inclusive to mostly exclusive at every level in the tree. This has helped weed out plenty issues, and serves as a good stress tests. |
11183:276ad9121192 |
03-Nov-2015 |
Erfan Azarkhish <erfan.azarkhish@unibo.it> |
mem: hmc: top level design
This patch enables modeling a complete Hybrid Memory Cube (HMC) device. It highly reuses the existing components in gem5's general memory system with some small modifications. This changeset requires additional patches to model a complete HMC device.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
11150:a8a64cca231b |
30-Sep-2015 |
Mitch Hayenga <mitch.hayenga@arm.com> |
isa,cpu: Add support for FS SMT Interrupts
Adds per-thread interrupt controllers and thread/context logic so that interrupts properly get routed in SMT systems. |
11147:cc8d6e99cf46 |
30-Sep-2015 |
Mitch Hayenga <mitch.hayenga@arm.com> |
config,cpu: Add SMT support to Atomic and Timing CPUs
Adds SMT support to the "simple" CPU models so that they can be used with other SMT-supported CPUs. Example usage: this enables the TimingSimpleCPU to be used to warmup caches before swapping to detailed mode with the in-order or out-of-order based CPU models. |
11088:d322dd2e2b2d |
07-Sep-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: allow ruby to be used with Minor CPU |
11053:62544e45c0f4 |
21-Aug-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Add explicit Cache subclass and make BaseCache abstract
Open up for other subclasses to BaseCache and transition to using the explicit Cache subclass. |
10926:f48e72961850 |
21-Jul-2015 |
Nilay Vaish <nilay@cs.wisc.edu> |
configs: network test: remove redundant physical memory |
10887:279efb97ec99 |
03-Jul-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Remove redundant is_top_level cache parameter
This patch takes the final step in removing the is_top_level parameter from the cache. With the recent changes to read requests and write invalidations, the parameter is no longer needed, and consequently removed.
This also means that asymmetric cache hierarchies are now fully supported (and we are actually using them already with L1 caches, but no table-walker caches, connected to a shared L2). |
10803:a91eb7b4a442 |
23-Apr-2015 |
bpotter <brandon.potter@amd.com> |
config: enable setting SE-mode environment variables from file |
10780:46070443051e |
08-Apr-2015 |
Curtis Dunham <Curtis.Dunham@arm.com> |
config: Support full-system with SST's memory system
This patch adds an example configuration in ext/sst/tests/ that allows an SST/gem5 instance to simulate a 4-core AArch64 system with SST's memHierarchy components providing all the caches and memories. |
10750:30efc3828bb4 |
19-Mar-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add soak test for memtest.py
This patch adds a random option to memtest.py which allows the user to easily test valid random tree topologies. The patch also adds a wrapper script to run soak tests using the newly introduced option.
We also adjust the progress interval and progress limit check to make the output less noisy, and avoid false positives.
Bring on the pain. |
10747:3fe41011333d |
19-Mar-2015 |
Chris Emmons <Chris.Emmons@arm.com> |
config: Specify OS type and release on command line
This patch enables users to speficy --os-type on the command line. This option is used to take specific actions for an OS type, such as changing the kernel command line. This patch is part of the Android KitKat enablement. |
10720:67b3e74de9ae |
02-Mar-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Move crossbar default latencies to subclasses
This patch introduces a few subclasses to the CoherentXBar and NoncoherentXBar to distinguish the different uses in the system. We use the crossbar in a wide range of places: interfacing cores to the L2, as a system interconnect, connecting I/O and peripherals, etc. Needless to say, these crossbars have very different performance, and the clock frequency alone is not enough to distinguish these scenarios.
Instead of trying to capture every possible case, this patch introduces dedicated subclasses for the three primary use-cases: L2XBar, SystemXBar and IOXbar. More can be added if needed, and the defaults can be overridden. |
10705:c6cb94a14fea |
16-Feb-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add memcheck stress test
This is a rather unfortunate copy of the memtest.py example script, that actually stresses the system with true sharing as opposed to the false sharing of the MemTest. To do so it uses TrafficGen instances to generate the reads/writes, and MemCheckerMonitor combined with the MemChecker to check the validity of the read/written values.
As a bonus, this script also enables the addition of prefetchers, and the traffic is created to have a mix of random addresses and linear strides. We use the TaggedPrefetcher since the packets do not have a request with a PC.
At the moment the code is almost identical to the memtest.py script, and no effort has been made to factor out the construction of the tree. The challenge is that the instantiation and connection of the testers and monitors is done as part of the tree building. |
10697:71c40e5c8bd4 |
16-Jan-2015 |
Curtis Dunham <Curtis.Dunham@arm.com> |
config: add --root-device machine parameter
In case /dev/sda1 is not actually the boot partition for an image, we can override it on the command line or in a benchmark definition. |
10690:4972ada74310 |
11-Feb-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Revamp memtest to allow testers on any level
This patch revamps the memtest example script and allows for the insertion of testers at any level in the cache hierarchy. Previously all created topologies placed testers only at the very top, and the tree was thus entirely symmetric. With the changes made, it is possible to not only place testers at the leaf caches (L1), but also to connect testers at the L2, L3 etc.
As part of the changes the object hierarchy is also simplified to ensure that the visual representation from the DOT printing looks sensible. Using SubSystems to group the objects is one of the key features. |
10688:22452667fd5c |
11-Feb-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
cpu: Tidy up the MemTest and make false sharing more obvious
The MemTest class really only tests false sharing, and as such there was a lot of old cruft that could be removed. This patch cleans up the tester, and also makes it more clear what the assumptions are. As part of this simplification the reference functional memory is also removed.
The regression configs using MemTest are updated to reflect the changes, and the stats will be bumped in a separate patch. The example config will be updated in a separate patch due to more extensive re-work.
In a follow-on patch a new tester will be introduced that uses the MemChecker to implement true sharing. |
10650:a6fe75e8296b |
20-Jan-2015 |
Andreas Hansson <andreas.hansson@arm.com> |
scons: Do not build the InOrderCPU
One step closer to shifting focus to the MinorCPU. |
10635:ab05a080d7c5 |
03-Jan-2015 |
Anthony Gutierrez <atgutier@umich.edu> |
arm: fix build_drive_system when not using default options
when trying to dual boot on arm build_drive_system will only use the default values for the dtb file, number of processors, and disk image. if you are using the non-default files by passing values on the command line for example, or by making a new entry in Benchmarks.py, the build config scripts will still look for the default files. this will lead to the wrong system files being used, or the simulator will fail if you do not have them.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10608:427f988fe6e5 |
23-Dec-2014 |
Dam Sunwoo <dam.sunwoo@arm.com> |
config: Add options to take/resume from SimPoint checkpoints
More documentation at http://gem5.org/Simpoints
Steps to profile, generate, and use SimPoints with gem5:
1. To profile workload and generate SimPoint BBV file, use the following option:
--simpoint-profile --simpoint-interval <interval length>
Requires single Atomic CPU and fastmem. <interval length> is in number of instructions.
2. Generate SimPoint analysis using SimPoint 3.2 from UCSD. (SimPoint 3.2 not included with this flow.)
3. To take gem5 checkpoints based on SimPoint analysis, use the following option:
--take-simpoint-checkpoint=<simpoint file path>,<weight file path>,<interval length>,<warmup length>
<simpoint file> and <weight file> is generated by SimPoint analysis tool from UCSD. SimPoint 3.2 format expected. <interval length> and <warmup length> are in number of instructions.
4. To resume from gem5 SimPoint checkpoints, use the following option:
--restore-simpoint-checkpoint -r <N> --checkpoint-dir <simpoint checkpoint path>
<N> is (SimPoint index + 1). E.g., "-r 1" will resume from SimPoint #0. |
10594:4fdc929c0aaa |
04-Dec-2014 |
Gabe Black <gabeblack@google.com> |
config: Add two options for setting the kernel command line.
Both options accept template which will, through python string formatting, have "mem", "disk", and "script" values substituted in from the mdesc. Additional values can be used on a case by case basis by passing them as keyword arguments to the fillInCmdLine function. That makes it possible to have specialized parameters for a particular ISA, for instance.
The first option lets you specify the template directly, and the other lets you specify a file which has the template in it. |
10555:9f456b5cc474 |
23-Nov-2014 |
Alexandru Dutu <alexandru.dutu@amd.com> |
config, kvm: Enabling KvmCPU in SE mode This patch modifies se.py such that it can now use kvm cpu model. |
10547:b61dc895269a |
18-Nov-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
configs: small fix to ruby portion of fs.py and se.py In fs.py the io port controller was being attached to the iobus multiple times. This should be done only once. In se.py, the the option use_map was being set which no longer exists. |
10524:fff17530cef6 |
06-Nov-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: interface with classic memory controller This patch is the final in the series. The whole series and this patch in particular were written with the aim of interfacing ruby's directory controller with the memory controller in the classic memory system. This is being done since ruby's memory controller has not being kept up to date with the changes going on in DRAMs. Classic's memory controller is more up to date and supports multiple different types of DRAM. This also brings classic and ruby ever more close. The patch also changes ruby's memory controller to expose the same interface. |
10519:7a3ad4b09ce4 |
06-Nov-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: single physical memory in fs mode Both ruby and the system used to maintain memory copies. With the changes carried for programmed io accesses, only one single memory is required for fs simulations. This patch sets the copy of memory that used to reside with the system to null, so that no space is allocated, but address checks can still be carried out. All the memory accesses now source and sink values to the memory maintained by ruby. |
10512:b423e1d0735e |
30-Oct-2014 |
Ali Saidi <Ali.Saidi@ARM.com> |
arm, tests: Update config files to more recent kernels and create 64-bit regressions.
This changes the default ARM system to a Versatile Express-like system that supports 2GB of memory and PCI devices and updates the default kernels/file-systems for AArch64 ARM systems (64-bit) to support up to 32GB of memory and PCI devices. Some platforms that are no longer supported have been pruned from the configuration files.
In addition a set of 64-bit ARM regressions have been added to the regression system. |
10458:64809024b924 |
16-Oct-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add the ability to read a config file using C++ and Python
This patch adds the ability to load in config.ini files generated from gem5 into another instance of gem5 built without Python configuration support. The intended use case is for configuring gem5 when it is a library embedded in another simulation system.
A parallel config file reader is also provided purely in Python to demonstrate the approach taken and to provided similar functionality for as-yet-unknown use models. The Python configuration file reader can read both .ini and .json files.
C++ configuration file reading:
A command line option has been added for scons to enable C++ configuration file reading: --with-cxx-config
There is an example in util/cxx_config that shows C++ configuration in action. util/cxx_config/README explains how to build the example.
Configuration is achieved by the object CxxConfigManager. It handles reading object descriptions from a CxxConfigFileBase object which wraps a config file reader. The wrapper class CxxIniFile is provided which wraps an IniFile for reading .ini files. Reading .json files from C++ would be possible with a similar wrapper and a JSON parser.
After reading object descriptions, CxxConfigManager creates SimObjectParam-derived objects from the classes in the (generated with this patch) directory build/ARCH/cxx_config
CxxConfigManager can then build SimObjects from those SimObjectParams (in an order dictated by the SimObject-value parameters on other objects) and bind ports of the produced SimObjects.
A minimal set of instantiate-replacing member functions are provided by CxxConfigManager and few of the member functions of SimObject (such as drain) are extended onto CxxConfigManager.
Python configuration file reading (configs/example/read_config.py):
A Python version of the reader is also supplied with a similar interface to CxxConfigFileBase (In Python: ConfigFile) to config file readers.
The Python config file reading will handle both .ini and .json files.
The object construction strategy is slightly different in Python from the C++ reader as you need to avoid objects prematurely becoming the children of other objects when setting parameters.
Port binding also needs to be strictly in the same port-index order as the original instantiation. |
10405:7a618c07e663 |
20-Sep-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Rename Bus to XBar to better reflect its behaviour
This patch changes the name of the Bus classes to XBar to better reflect the actual timing behaviour. The actual instances in the config scripts are not renamed, and remain as e.g. iobus or membus.
As part of this renaming, the code has also been clean up slightly, making use of range-based for loops and tidying up some comments. The only changes outside the bus/crossbar code is due to the delay variables in the packet. |
10381:ab8b8601b6ff |
20-Sep-2014 |
Dam Sunwoo <dam.sunwoo@arm.com> |
cpu: use probes infrastructure to do simpoint profiling
Instead of having code embedded in cpu model to do simpoint profiling use the probes infrastructure to do it. |
10300:ed3816dae6d5 |
01-Sep-2014 |
Emilio Castillo <castilloe@unican.es>, Nilay Vaish <nilay@cs.wisc.edu> |
ruby: Fixes clock domains in configuration files
This patch fixes scripts related to ruby by adding the ruby clock domain. Now the L1 controllers and the Sequencer shares the cpu clock domain, while the rest of the components use the ruby clock domain.
Before this patch, running simulations with the cpu clock set at 2GHz or 1GHz will output the same time results and could distort power measurements.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
10270:763f76d5dea7 |
10-Aug-2014 |
Radhika Jagtap <radhika.jagtap@ARM.com> |
config: Fix cache latency param in mem test
This patch fixes the cache latency in mem test which is split into two params, hit and response latency as per BaseCache. |
10150:240969297314 |
01-Apr-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
configs: use SimpleMemory when using ruby in se mode A recent changeset altered the default memory class to DRAMCtrl. In se mode, ruby uses the physical memory to check if a given address is within the bounds of the physical memory. SimpleMemory is enough for this. Moreover, SimpleMemory does not check whether it is connected or not, something which DRAMCtrl does. |
10120:f5ceb3c3edb6 |
20-Mar-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: ruby: rename _cpu_ruby_ports to _cpu_ports |
10119:6f3f839bb496 |
20-Mar-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: fs.py: move creating of test/drive systems to functions The code that creates test and drive systems is being moved to separate functions so as to make the code more readable. Ultimately the two functions would be combined so that the replicated code is eliminated. |
10118:5e1f04b4d5e4 |
20-Mar-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: remove ruby_fs.py
The patch removes the ruby_fs.py file. The functionality is being moved to fs.py. This would being ruby fs simulations in line with how ruby se simulations are started (using --ruby option). The alpha fs config functions are being combined for classing and ruby memory systems. This required renaming the piobus in ruby to iobus. So, we will have stats being renamed in the stats file for ruby fs regression. |
10117:37e333de580f |
20-Mar-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: no piobus in se mode Piobus was recently added to se scripts for ruby so that the interrupt controller can be connected to something (required since the interrupt controller sends address range messages). This patch removes the piobus and instead, the pio port of ruby port will now ignore the range change messages in se mode. |
10092:c0db268f811b |
24-Feb-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: correct errors in changeset 4eec7bdde5b0 Couple of errors were discovered in 4eec7bdde5b0 which necessitated this patch. Firstly, we create interrupt controllers in the se mode, but no piobus was being created. RubyPort, which earlier used to ignore range changes now forwards those to the piobus. The lack of piobus resulted in segmentation fault. This patch creates a piobus even in se mode. It is not created only when some tester is running. Secondly, I had missed out on modifying port connections for other coherence protocols. |
10090:4eec7bdde5b0 |
23-Feb-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: route all packets through ruby port Currently, the interrupt controller in x86 is connected to the io bus directly. Therefore the packets between the io devices and the interrupt controller do not go through ruby. This patch changes ruby port so that these packets arrive at the ruby port first, which then routes them to their destination. Note that the patch does not make these packets go through the ruby network. That would happen in a subsequent patch. |
10083:2beea2a439b4 |
21-Feb-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: ruby_random_test: updates due to recent unrelated changes |
10056:33db5d81c2cb |
31-Jan-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: correct bug in x86 drive sys instantiation |
10041:fae4550d2103 |
27-Jan-2014 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: allow more than 3GB of memory for x86 simulations This patch edits the configuration files so that x86 simulations can have more than 3GB of memory. It also corrects a bug in the MemConfig.py script. |
10037:5cac77888310 |
24-Jan-2014 |
ARM gem5 Developers |
arm: Add support for ARMv8 (AArch64 & AArch32)
Note: AArch64 and AArch32 interworking is not supported. If you use an AArch64 kernel you are restricted to AArch64 user-mode binaries. This will be addressed in a later patch.
Note: Virtualization is only supported in AArch32 mode. This will also be fixed in a later patch.
Contributors: Giacomo Gabrielli (TrustZone, LPAE, system-level AArch64, AArch64 NEON, validation) Thomas Grocutt (AArch32 Virtualization, AArch64 FP, validation) Mbou Eyole (AArch64 NEON, validation) Ali Saidi (AArch64 Linux support, code integration, validation) Edmund Grimley-Evans (AArch64 FP) William Wang (AArch64 Linux support) Rene De Jong (AArch64 Linux support, performance opt.) Matt Horsnell (AArch64 MP, validation) Matt Evans (device models, code integration, validation) Chris Adeniyi-Jones (AArch64 syscall-emulation) Prakash Ramrakhyani (validation) Dam Sunwoo (validation) Chander Sudanthi (validation) Stephan Diestelhorst (validation) Andreas Hansson (code integration, performance opt.) Eric Van Hensbergen (performance opt.) Gabe Black |
9935:cc9dc514036e |
17-Oct-2013 |
Dam Sunwoo <dam.sunwoo@arm.com> |
util: Streamline .apc project convertsion script
This Python script generates an ARM DS-5 Streamline .apc project based on gem5 run. To successfully convert, the gem5 runs needs to be run with the context-switch-based stats dump option enabled (The guest kernel also needs to be patched to allow gem5 interrogate its task information.) See help for more information. |
9928:9d3b979cd3ed |
17-Oct-2013 |
Ali Saidi <Ali.Saidi@ARM.com> |
config: Fix memtest example script |
9909:0679c3554ba3 |
09-Oct-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: correct example ruby scripts A couple of recent changesets added/deleted/edited some variables that are needed for running the example ruby scripts. This changeset edits these scripts to bring them to a working state. |
9907:8bddb3879c16 |
07-Oct-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: set cwd for processes in se.py |
9872:ad7d5f966b74 |
17-Sep-2013 |
Joel Hestness <jthestness@gmail.com> |
configs: Fix ruby_fs.py cache line size
Recent changes added setting of system-wide cache line size and these settings occur in the top-level configs (se.py and fs.py). This setting also needs to take place in ruby_fs.py. This change sets the cache line size as appropriate. |
9870:e147cc305061 |
12-Sep-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add voltage domain to Ruby example scripts
This patch adds the minimum required voltage domain configuration to the Ruby example scripts. |
9836:4411b4e0c03a |
19-Aug-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Command line support for multi-channel memory
This patch adds support for specifying multi-channel memory configurations on the command line, e.g. 'se/fs.py --mem-type=ddr3_1600_x64 --mem-channels=4'. To enable this, it enhances the functionality of MemConfig and moves the existing makeMultiChannel class method from SimpleDRAM to the support scripts.
The se/fs.py example scripts are updated to make use of the new feature. |
9835:cc7a7fc71c42 |
19-Aug-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
mem: Change AbstractMemory defaults to match the common case
This patch changes the default parameter value of conf_table_reported to match the common case. It also simplifies the regression and config scripts to reflect this change. |
9827:f47274776aa0 |
19-Aug-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
power: Add voltage domains to the clock domains
This patch adds the notion of voltage domains, and groups clock domains that operate under the same voltage (i.e. power supply) into domains. Each clock domain is required to be associated with a voltage domain, and the latter requires the voltage to be explicitly set.
A voltage domain is an independently controllable voltage supply being provided to section of the design. Thus, if you wish to perform dynamic voltage scaling on a CPU, its clock domain should be associated with a separate voltage domain.
The current implementation of the voltage domain does not take into consideration cases where there are derived voltage domains running at ratio of native voltage domains, as with the case where there can be on-chip buck/boost (charge pumps) voltage regulation logic.
The regression and configuration scripts are updated with a generic voltage domain for the system, and one for the CPUs. |
9826:014ff1fbff6d |
19-Aug-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Move the memory instantiation outside FSConfig
This patch moves the instantiation of the memory controller outside FSConfig and instead relies on the mem_ranges to pass the information to the caller (e.g. fs.py or one of the regression scripts). The main motivation for this change is to expose the structural composition of the memory system and allow more tuning and configuration without adding a large number of options to the makeSystem functions.
The patch updates the relevant example scripts to maintain the current functionality. As the order that ports are connected to the memory bus changes (in certain regresisons), some bus stats are shuffled around. For example, what used to be layer 0 is now layer 1.
Going forward, options will be added to support the addition of multi-channel memory controllers. |
9815:3b3b94536547 |
18-Jul-2013 |
Andreas Hansson <andreas.hansson> |
config: Update script to set cache line size on system
This patch changes the config scripts such that they do not set the cache line size per cache instance, but rather for the system as a whole. |
9800:5fdd91246b7b |
28-Jun-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
configs: rearrange the available options in Options.py It also changes the instantiation of physmem in se.py so as to make use of the memory size supplied by the mem_size option. |
9793:6e6cefc1db1f |
27-Jun-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
sim: Add the notion of clock domains to all ClockedObjects
This patch adds the notion of source- and derived-clock domains to the ClockedObjects. As such, all clock information is moved to the clock domain, and the ClockedObjects are grouped into domains.
The clock domains are either source domains, with a specific clock period, or derived domains that have a parent domain and a divider (potentially chained). For piece of logic that runs at a derived clock (a ratio of the clock its parent is running at) the necessary derived clock domain is created from its corresponding parent clock domain. For now, the derived clock domain only supports a divider, thus ensuring a lower speed compared to its parent. Multiplier functionality implies a PLL logic that has not been modelled yet (create a separate clock instead).
The clock domains should be used as a mechanism to provide a controllable clock source that affects clock for every clocked object lying beneath it. The clock of the domain can (in a future patch) be controlled by a handler responsible for dynamic frequency scaling of the respective clock domains.
All the config scripts have been retro-fitted with clock domains. For the System a default SrcClockDomain is created. For CPUs that run at a different speed than the system, there is a seperate clock domain created. This domain incorporates the CPU and the associated caches. As before, Ruby runs under its own clock domain.
The clock period of all domains are pre-computed, such that no virtual functions or multiplications are needed when calling clockPeriod. Instead, the clock period is pre-computed when any changes occur. For this to be possible, each clock domain tracks its children. |
9790:ccc428657233 |
27-Jun-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
config: Add a system clock command-line option
This patch adds a 'sys_clock' command-line option and use it to assign clocks to the system during instantiation.
As part of this change, the default clock in the System class is removed and whenever a system is instantiated a system clock value must be set. A default value is provided for the command-line option.
The configs and tests are updated accordingly. |
9789:233420718e61 |
27-Jun-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
config: Add a CPU clock command-line option
This patch adds a 'cpu_clock' command-line option and uses the value to assign clocks to components running at the CPU speed (L1 and L2 including the L2-bus). The configuration scripts are updated accordingly.
The 'clock' option is left unchanged in this patch as it is still used by a number of components. In follow-on patches the latter will be disambiguated further. |
9788:5558ee8dd7d9 |
27-Jun-2013 |
Akash Bagdia <akash.bagdia@arm.com> |
config: Remove redundant explicit setting of default clocks
This patch removes the explicit setting of the clock period for certain instances of CoherentBus, NonCoherentBus and IOCache where the specified clock is same as the default value of the system clock. As all the values used are the defaults, there are no performance changes. There are similar cases where the toL2Bus is set to use the parent CPU clock which is already the default behaviour.
The main motivation for these simplifications is to ease the introduction of clock domains. |
9756:0b4a08751b42 |
13-Jun-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
config: Do not instantiate membus when using ruby This patch moves the instantiation of system.membus in se.py to the area of code where classic memory system has been dealt with. Ruby does not require this bus and hence it should not be instantiated. |
9677:773aae0990ae |
23-Apr-2013 |
Marco Elver <marco.elver@ed.ac.uk> |
config: Fix mem-type option not used in ruby_fs script This fixes missing mem-type arguments to makeLinuxAlphaRubySystem and makeLinuxX86System after a recent changeset allowing mem-type to be configured via options missed fixing these calls.
Committed by: Nilay Vaish <nilay@cs.wisc.edu> |
9665:6dbdeee787cc |
22-Apr-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add a mem-type config option to se/fs scripts
This patch enables selection of the memory controller class through a mem-type command-line option. Behind the scenes, this option is treated much like the cpu-type, and a similar framework is used to resolve the valid options, and translate the short-hand description to a valid class.
The regression scripts are updated with a hardcoded memory class for the moment. The best solution going forward is probably to get the memory out of the makeSystem functions, but Ruby complicates things as it does not connect the memory controller to the membus. |
9653:5307d06e1d0e |
22-Apr-2013 |
Andreas Sandberg <Andreas.Sandberg@ARM.com> |
config: Add a KVM VM to systems with KVM CPUs
KVM-based CPUs need a KVM VM object in the system to manage system-global KVM stuff (VM creation, interrupt delivery, memory managment, etc.). This changeset adds a VM to the system if KVM has been enabled at compile time (the BaseKvmCPU object exists) and a KVM-based CPU has been selected at runtime. |
9647:5b6b315472e7 |
22-Apr-2013 |
Dam Sunwoo <dam.sunwoo@arm.com> |
cpu: generate SimPoint basic block vector profiles
This patch is based on http://reviews.m5sim.org/r/1474/ originally written by Mitch Hayenga. Basic block vectors are generated (simpoint.bb.gz in simout folder) based on start and end addresses of basic blocks.
Some comments to the original patch are addressed and hooks are added to create and resume from checkpoints based on instruction counts dictated by external SimPoint analysis tools.
SimPoint creation/resuming options will be implemented as a separate patch. |
9577:91cac7c9c636 |
06-Mar-2013 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: remove the functional copy of memory in se mode This patch removes the functional copy of the memory that was maintained in the se mode. Now ruby itself will provide the data. |
9539:0ac00d9a8aaf |
15-Feb-2013 |
Anthony Gutierrez <atgutier@umich.edu> |
options: add command line option for dtb file |
9408:10a84dceab25 |
07-Jan-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Do not use hardcoded physmem in fs script
This patch generalises the address range resolution for the I/O cache and I/O bridge such that they do not assume a single memory. The patch involves adding a parameter to the system which is then defined based on the memories that are to be visible from the I/O subsystem, whether behind a cache or a bridge.
The change is needed to allow interleaved memory controllers in the system. |
9384:877293183bdf |
07-Jan-2013 |
Andreas Sandberg <Andreas.Sandberg@arm.com> |
arch: Make the ISA class inherit from SimObject
The ISA class on stores the contents of ID registers on many architectures. In order to make reset values of such registers configurable, we make the class inherit from SimObject, which allows us to use the normal generated parameter headers.
This patch introduces a Python helper method, BaseCPU.createThreads(), which creates a set of ISAs for each of the threads in an SMT system. Although it is currently only needed when creating multi-threaded CPUs, it should always be called before instantiating the system as this is an obvious place to configure ID registers identifying a thread/CPU. |
9365:644be05ee7c2 |
11-Dec-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: modify the directed tester to read/write streams The directed tester supports only generating only read or only write accesses. The patch modifies the tester to support streams that have both read and write accesses. |
9317:2daeea4bce1b |
26-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Add a check for fastmem only used with Atomic CPU
This patch adds an additional check to ensure that the fastmem option is only used if the system is using the Atomic CPU. |
9316:4e2dc4b01c50 |
26-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
config: Remove unused mem_size in fs.py
This patch removes a segment of dead code that is never used. |
9302:c2e70a9bc340 |
15-Oct-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby: improved support for functional accesses This patch adds support to different entities in the ruby memory system for more reliable functional read/write accesses. Only the simple network has been augmented as of now. Later on Garnet will also support functional accesses. The patch adds functional access code to all the different types of messages that protocols can send around. These messages are functionally accessed by going through the buffers maintained by the network entities. The patch also rectifies some of the bugs found in coherence protocols while testing the patch.
With this patch applied, functional writes always succeed. But functional reads can still fail. |
9288:3d6da8559605 |
15-Oct-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Mem: Use cycles to express cache-related latencies
This patch changes the cache-related latencies from an absolute time expressed in Ticks, to a number of cycles that can be scaled with the clock period of the caches. Ultimately this patch serves to enable future work that involves dynamic frequency scaling. As an immediate benefit it also makes it more convenient to specify cache performance without implicitly assuming a specific CPU core operating frequency.
The stat blocked_cycles that actually counter in ticks is now updated to count in cycles.
As the timing is now rounded to the clock edges of the cache, there are some regressions that change. Plenty of them have very minor changes, whereas some regressions with a short run-time are perturbed quite significantly. A follow-on patch updates all the statistics for the regressions. |
9268:a0ca00815cc4 |
28-Sep-2012 |
Malek Musleh <malek.musleh@gmail.com> |
Configs: SE script fix for Alpha and Ruby simulations
PIO interrupt port is only present for x86. Do not attempt to connect for other ISAs. |
9267:f8c85a7d109f |
27-Sep-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Configs: Fix memtest cache latency to match new parameters
This patch changes the memtest config to use the new response latency of the cache model. |
9266:6ed55550d19e |
27-Sep-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Configs: Fix memtest.py by moving the system port
The memtest.py script used to connect the system port directly to the SimpleMemory, but the latter is now single ported. Since the system port is not used for anything in this particular example, a quick fix is to attach it to the functional bus instead. |
9222:dfc6a4ba338c |
12-Sep-2012 |
Joel Hestness <hestness@cs.wisc.edu> |
se.py Ruby: Connect TLB walker ports In order to ensure correct functionality of switch CPUs, the TLB walker ports must be connected to the Ruby system in x86 simulation.
This fixes x86 assertion failures that the TLB walker ports are not connected during the CPU switch process. |
9217:d3772fe85fa6 |
11-Sep-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
se.py: removes error in passing options to a binary |
9197:0281650db548 |
09-Sep-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
se.py: support specifying multiple programs via command line This patch allows for specifying multiple programs via command line. It also adds an option for specifying whether to use of SMT. But SMT does not work for the o3 cpu as of now. |
9164:d112473185ea |
22-Aug-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Bridge: Remove NACKs in the bridge and unify with packet queue
This patch removes the NACKing in the bridge, as the split request/response busses now ensure that protocol deadlocks do not occur, i.e. the message-dependency chain is broken by always allowing responses to make progress without being stalled by requests. The NACKs had limited support in the system with most components ignoring their use (with a suitable call to panic), and as the NACKs are no longer needed to avoid protocol deadlocks, the cleanest way is to simply remove them.
The bridge is the starting point as this is the only place where the NACKs are created. A follow-up patch will remove the code that deals with NACKs in the endpoints, e.g. the X86 table walker and DMA port. Ultimately the type of packet can be complete removed (until someone sees a need for modelling more complex protocols, which can now be done in parts of the system since the port and interface is split).
As a consequence of the NACK removal, the bridge now has to send a retry to a master if the request or response queue was full on the first attempt. This change also makes the bridge ports very similar to QueuedPorts, and a later patch will change the bridge to use these. A first step in this direction is taken by aligning the name of the member functions, as done by this patch.
A bit of tidying up has also been done as part of the simplifications.
Surprisingly, this patch has no impact on any of the regressions. Hence, there was never any NACKs issued. In a follow-up patch I would suggest changing the size of the bridge buffers set in FSConfig.py to also test the situation where the bridge fills up. |
9129:b57966a6c512 |
23-Jul-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Config: Use clock option in se/fs script and pass to switch_cpus
This patch changes the se and fs script to use the clock option and not simply set the CPUs clock to 2 GHz. It also makes a minor change to the assignment of the switch_cpus clock to allow different clocks. |
9120:48eeef8a0997 |
12-Jul-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Mem: Make SimpleMemory single ported
This patch changes the simple memory to have a single slave port rather than a vector port. The simple memory makes no attempts at modelling the contention between multiple ports, and any such multiplexing and demultiplexing could be done in a bus (or crossbar) outside the memory controller. This scenario also matches with the ongoing work on a SimpleDRAM model, which will be a single-ported single-channel controller that can be used in conjunction with a bus (or crossbar) to create a multi-port multi-channel controller.
There are only very few regressions that make use of the vector port, and these are all for functional accesses only. To facilitate these cases, memtest and memtest-ruby have been updated to also have a "functional" bus to perform the (de)multiplexing of the functional memory accesses. |
9108:ad76a669e9d9 |
11-Jul-2012 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: remove the cpu assumptions for the random tester |
9100:3caf131d7a95 |
11-Jul-2012 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: changes how Topologies are created
Instead of just passing a list of controllers to the makeTopology function in src/mem/ruby/network/topologies/<Topo>.py we pass in a function pointer which knows how to make the topology, possibly with some extra state set in the configs/ruby/<protocol>.py file. Thus, we can move all of the files from network/topologies to configs/topologies. A new class BaseTopology is added which all topologies in configs/topologies must inheirit from and follow its API. |
9061:135aa8f54bc4 |
07-Jun-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: call to setWorkCountOptions() for all ISAs |
9060:ee4104e628f3 |
07-Jun-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Remove setMipsOptions As status matrix, MIPS fs does not work. Hence, these options are not required. Secondly, the function is setting param values for a CPU class. This seems strange, should probably be done in a different way. |
9059:95b525b1d3a0 |
07-Jun-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: changes to a couple of error msgs |
9036:6385cf85bf12 |
31-May-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Bus: Split the bus into a non-coherent and coherent bus
This patch introduces a class hierarchy of buses, a non-coherent one, and a coherent one, splitting the existing bus functionality. By doing so it also enables further specialisation of the two types of buses.
A non-coherent bus connects a number of non-snooping masters and slaves, and routes the request and response packets based on the address. The request packets issued by the master connected to a non-coherent bus could still snoop in caches attached to a coherent bus, as is the case with the I/O bus and memory bus in most system configurations. No snoops will, however, reach any master on the non-coherent bus itself. The non-coherent bus can be used as a template for modelling PCI, PCIe, and non-coherent AMBA and OCP buses, and is typically used for the I/O buses.
A coherent bus connects a number of (potentially) snooping masters and slaves, and routes the request and response packets based on the address, and also forwards all requests to the snoopers and deals with the snoop responses. The coherent bus can be used as a template for modelling QPI, HyperTransport, ACE and coherent OCP buses, and is typically used for the L1-to-L2 buses and as the main system interconnect.
The configuration scripts are updated to use a NoncoherentBus for all peripheral and I/O buses.
A bit of minor tidying up has also been done. |
9006:431fcc41ae4a |
16-May-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Config: Fix a typo in the se.py script for setting fastmem
This patch changes a hardcoded index 0 to the appropriate CPU index so that fastmem is set correctly for all the CPUs in the system. |
8957:0bba1c59b4d1 |
17-Apr-2012 |
Jayneel Gandhi <jayneel@cs.wisc.edu> |
SE Config: Changed se.py to support multithreaded mode Multithreaded programs did not run by just specifying the binary once on the command line of SE mode.The default mode is multi-programmed mode. Added check in SE mode to run multi-threaded programs in case only one program is specified with multiple CPUS. Default mode is still multi-programmed mode. |
8956:1df031399919 |
16-Apr-2012 |
Jayneel Gandhi <jayneel@cs.wisc.edu> |
Config: Add command line options for disk image and memory size Added the options to Options.py for FS mode with backward compatibility. It is good to provide an option to specify the disk image and the memory size from command line since a lot of disk images are created to support different benchmark suites as well as per user needs. Change in program also leads to change in memory requirements. These options provide the interface to provide both disk image and memory size from the command line and gives more flexibility. |
8932:1b2c17565ac8 |
06-Apr-2012 |
Brad Beckmann <Brad.Beckmann@amd.com> |
rubytest: seperated read and write ports.
This patch allows the ruby tester to support protocols where the i-cache and d-cache are managed by seperate controllers. |
8931:7a1dfb191e3f |
06-Apr-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Enable multiple distributed generalized memories
This patch removes the assumption on having on single instance of PhysicalMemory, and enables a distributed memory where the individual memories in the system are each responsible for a single contiguous address range.
All memories inherit from an AbstractMemory that encompasses the basic behaviuor of a random access memory, and provides untimed access methods. What was previously called PhysicalMemory is now SimpleMemory, and a subclass of AbstractMemory. All future types of memory controllers should inherit from AbstractMemory.
To enable e.g. the atomic CPU and RubyPort to access the now distributed memory, the system has a wrapper class, called PhysicalMemory that is aware of all the memories in the system and their associated address ranges. This class thus acts as an infinitely-fast bus and performs address decoding for these "shortcut" accesses. Each memory can specify that it should not be part of the global address map (used e.g. by the functional memories by some testers). Moreover, each memory can be configured to be reported to the OS configuration table, useful for populating ATAG structures, and any potential ACPI tables.
Checkpointing support currently assumes that all memories have the same size and organisation when creating and resuming from the checkpoint. A future patch will enable a more flexible re-organisation. |
8929:4148f9af0b70 |
05-Apr-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: corrects the way Ruby attaches to the DMA ports With recent changes to the memory system, a port cannot be assigned a peer port twice. While making use of the Ruby memory system in FS mode, DMA ports were assigned peer twice, once for the classic memory system and once for the Ruby memory system. This patch removes this double assignment of peer ports. |
8928:051bc173ea72 |
05-Apr-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Ruby: Fix the example configurations option parsing
This patch fixes the, currently broken, Ruby example scripts to reflect the changes in the parsing of command-line options. |
8926:570b44fe6e04 |
03-Apr-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Atomic: Remove the physmem_port and access memory directly
This patch removes the physmem_port from the Atomic CPU and instead uses the system pointer to access the physmem when using the fastmem option. The system already keeps track of the physmem and the valid memory address ranges, and with this patch we merely make use of that existing functionality. As a result of this change, the overloaded getMasterPort in the Atomic CPU can be removed, thus unifying the CPUs. |
8920:99083b5b7ed4 |
28-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Change the way options are added I am not too happy with the way options are added in files se.py and fs.py currently. This patch moves all the options to the file Options.py, functions from which are called when required. |
8919:c1366a30d5eb |
27-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Move setWorkCountOptions() to Simulation.py The function is presently defined in FSConfig.py, which does not seem to be the correct place for it. |
8899:0541a014b811 |
16-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
ruby_fs.py: Add call to createInterruptController() |
8896:6df06e5975c6 |
11-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
se.py: Changes to ruby portion due to SE/FS merge With the SE/FS merge, interrupt controller is created irrespective of the mode. This patch creates the interrupt controller when Ruby is used and connects its ports. |
8894:351585c17699 |
09-Mar-2012 |
Ali Saidi <saidi@eecs.umich.edu> |
ARM: Fix memory starting at non-zero address and exceeding max mem for a system. |
8887:20ea02da9c53 |
09-Mar-2012 |
Geoffrey Blake <geoffrey.blake@arm.com> |
CheckerCPU: Make CheckerCPU runtime selectable instead of compile selectable
Enables the CheckerCPU to be selected at runtime with the --checker option from the configs/example/fs.py and configs/example/se.py configuration files. Also merges with the SE/FS changes. |
8883:c92153af04ac |
09-Mar-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
cache: Allow main memory to be at disjoint address ranges. |
8870:f95c4042f2d0 |
01-Mar-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for Versatile Express extended memory map
Also clean up how we create boot loader memory a bit. |
8863:50ce4deacda9 |
01-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
x86: Fix switching of CPUs This patch prevents creation of interrupt controller for cpus that will be switched in later |
8862:dedd8be81731 |
01-Mar-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: make option ruby available always |
8847:ef8630054b5e |
14-Feb-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Fix residual bus ports and make them master/slave
This patch cleans up a number of remaining uses of bus.port which is now split into bus.master and bus.slave. The only non-trivial change is the memtest where the level building now has to be aware of the role of the ports used in the previous level. |
8845:a230379caf65 |
14-Feb-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Fix master/slave ports in Ruby and non-regression scripts
This patch brings the Ruby and other scripts up to date with the introduction of the master/slave ports. |
8839:eeb293859255 |
13-Feb-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Introduce the master/slave port roles in the Python classes
This patch classifies all ports in Python as either Master or Slave and enforces a binding of master to slave. Conceptually, a master (such as a CPU or DMA port) issues requests, and receives responses, and conversely, a slave (such as a memory or a PIO device) receives requests and sends back responses. Currently there is no differentiation between coherent and non-coherent masters and slaves.
The classification as master/slave also involves splitting the dual role port of the bus into a master and slave port and updating all the system assembly scripts to use the appropriate port. Similarly, the interrupt devices have to have their int_port split into a master and slave port. The intdev and its children have minimal changes to facilitate the extra port.
Note that this patch does not enforce any port typing in the C++ world, it merely ensures that the Python objects have a notion of the port roles and are connected in an appropriate manner. This check is carried when two ports are connected, e.g. bus.master = memory.port. The following patches will make use of the classifications and specialise the C++ ports into masters and slaves. |
8810:00f0d0230596 |
01-Feb-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
configs: More fixes for the memory system updates |
8808:8af87554ad7e |
31-Jan-2012 |
Gabe Black <gblack@eecs.umich.edu> |
Merge with main repository. |
8807:35e77c938919 |
29-Jan-2012 |
Gabe Black <gblack@eecs.umich.edu> |
Yet another merge with the main repository. |
8803:f6c5785bc8fd |
28-Jan-2012 |
Gabe Black <gblack@eecs.umich.edu> |
SE/FS: Get rid of FULL_SYSTEM in the configs directory |
8801:1a84c6a81299 |
28-Jan-2012 |
Gabe Black <gblack@eecs.umich.edu> |
SE/FS: Make SE vs. FS mode a runtime parameter. |
8732:fd510b6e124d |
30-Jan-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
Ruby: Connect system port in Ruby network test
This patch moves the connection of the system port to create_system in Ruby.py. Thereby it allows the failing Ruby test (and other Ruby systems) to run again. |
8729:9d7c1dc54954 |
28-Jan-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Enable O3 CPU and Ruby in FS mode |
8723:bbcc7afd82cb |
25-Jan-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Fix fs.py by specifying the range size rather than end
This patch fixes the currently broken fs.py by specifying the size of the bridge range rather than the end address. This effectively subtracts one when determining the address range for the IO bridge (from IO bus to membus), and thus avoids the overlapping ranges. |
8718:062bf3879857 |
23-Jan-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Enable using O3 CPU and Ruby in SE mode |
8713:2f1a3e335255 |
17-Jan-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Make the bus bridge unidirectional and fixed address range
This patch makes the bus bridge uni-directional and specialises the bus ports to be a master port and a slave port. This greatly simplifies the assumptions on both sides as either port only has to deal with requests or responses. The following patches introduce the notion of master and slave ports, and would not be possible without this split of responsibilities.
In making the bridge unidirectional, the address range mechanism of the bridge is also changed. For the cases where communication is taking place both ways, an additional bridge is needed. This causes issues with the existing mechanism, as the busses cannot determine when to stop iterating the address updates from the two bridges. To avoid this issue, and also greatly simplify the specification, the bridge now has a fixed set of address ranges, specified at creation time. |
8706:b1838faf3bcc |
17-Jan-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
MEM: Add port proxies instead of non-structural ports
Port proxies are used to replace non-structural ports, and thus enable all ports in the system to correspond to a structural entity. This has the advantage of accessing memory through the normal memory subsystem and thus allowing any constellation of distributed memories, address maps, etc. Most accesses are done through the "system port" that is used for loading binaries, debugging etc. For the entities that belong to the CPU, e.g. threads and thread contexts, they wrap the CPU data port in a port proxy.
The following replacements are made: FunctionalPort > PortProxy TranslatingPort > SETranslatingPortProxy VirtualPort > FSTranslatingPortProxy |
8661:2d791d07c59b |
09-Jan-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for running multiple systems |
8659:78f27ef5e919 |
09-Jan-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Add support for initparam m5 op |
8649:c3e7a961c727 |
05-Jan-2012 |
Nilay Vaish <nilay@cs.wisc.edu> |
Config: Add an option of type 'choice' for cpu type This patch adds a new option for cpu type. This option is of type 'choice' which is similar to a C++ enum, except that it takes string values as possible choices. Following options are being removed -- detailed, timing, inorder. |
8635:23ba076b2cca |
01-Dec-2011 |
Chris Emmons <chris.emmons@arm.com> |
VNC: Add support for capturing frame buffer to file each time it is changed.
When a change in the frame buffer from the VNC server is detected, the new frame is stored out to the m5out/frames_*/ directory. Specifiy the flag "--frame-capture" when running configs/example/fs.py to enable this behavior. |
8604:ccf744c70583 |
29-Oct-2011 |
Nilay Vaish<nilay@cs.wisc.edu> |
Ruby FS: Add the options for kernel and simulation script These options were missing from the script ruby_fs.py. This patch adds these options to the script. |
8482:353abb676fa2 |
02-Aug-2011 |
Nilay Vaish<nilay@cs.wisc.edu> |
Scons: Drop RUBY as compile time option. This patch drops RUBY as a compile time option. Instead the PROTOCOL option is used to figure out whether or not to build Ruby. If the specified protocol is 'None', then Ruby is not compiled. |
8467:82ff928182c5 |
11-Jul-2011 |
Nilay Vaish<nilay@cs.wisc.edu> |
se.py: Fixes the way ruby's options are added |
8437:94c7423ecd87 |
30-Jun-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: removed unnecessary slashes This patch removes unnecessary slashes from a couple of python scripts. |
8436:5648986156db |
30-Jun-2011 |
Brad Beckmann <Brad.Beckmann@amd.com>, Nilay Vaish <nilay@cs.wisc.edu> |
Ruby: Add support for functional accesses This patch rpovides functional access support in Ruby. Currently only the M5Port of RubyPort supports functional accesses. The support for functional through the PioPort will be added as a separate patch. |
8354:26be660e365a |
17-Jun-2011 |
Gedare Bloom <gedare@gwmail.gwu.edu> |
ARM: Add m5ops and related support for workbegin() and workend() to ARM ISA. |
8322:19949c6de823 |
23-May-2011 |
Steve Reinhardt <steve.reinhardt@amd.com> |
config: tweak ruby configs to clean up hierarchy
Re-enabling implicit parenting (see previous patch) causes current Ruby config scripts to create some strange hierarchies and generate several warnings. This patch makes three general changes to address these issues.
1. The order of object creation in the ruby config files makes the L1 caches children of the sequencer rather than the controller; these config ciles are rewritten to assign the L1 caches to the controller first.
2. The assignment of the sequencer list to system.ruby.cpu_ruby_ports causes the sequencers to be children of system.ruby, generating warnings because they are already parented to their respective controllers. Changing this attribute to _cpu_ruby_ports fixes this because the leading underscore means this is now treated as a plain Python attribute rather than a child assignment. As a result, the configuration hierarchy changes such that, e.g., system.ruby.cpu_ruby_ports0 becomes system.l1_cntrl0.sequencer.
3. In the topology classes, the routers become children of some random internal link node rather than direct children of the topology. The topology classes are rewritten to assign the routers to the topology object first. |
8312:de2451e66935 |
21-May-2011 |
Tushar Krishna <tushar@csail.mit.edu> |
configs: remove -p from ruby_network_test.py
A recent patch broke the ruby network tester by adding -p inside Options.py which conflicts with the -p inside ruby_network_test.py. Have removed -p from ruby_network_test.py |
8293:db269e704d07 |
07-May-2011 |
Tushar Krishna <tushar@csail.mit.edu> |
NetworkTest: added sim_cycles parameter to the network tester.
The network tester terminates after injecting for sim_cycles (default=1000), instead of having to explicitly pass --maxticks from the command line as before. If fixed_pkts is enabled, the tester only injects maxpackets number of packets, else it keeps injecting till sim_cycles. The tester also works with zero command line arguments now. |
8184:a8d64545cda6 |
28-Mar-2011 |
Somayeh Sardashti <somayeh@cs.wisc.edu> |
This patch supports cache flushing in MOESI_hammer |
8171:19444b1f092c |
21-Mar-2011 |
Tushar Krishna <tushar@csail.mit.edu> |
This patch adds the network tester for simple and garnet networks. The tester code is in testers/networktest. The tester can be invoked by configs/example/ruby_network_test.py. A dummy coherence protocol called Network_test is also addded for network-only simulations and testing. The protocol takes in messages from the tester and just pushes them into the network in the appropriate vnet, without storing any state. |
8169:89cd8302abd3 |
20-Mar-2011 |
Lisa Hsu <Lisa.Hsu@amd.com> |
configs: combine ruby_se.py and se.py to avoid all that code duplication |
8168:5cbb0a68dce1 |
20-Mar-2011 |
Lisa Hsu <Lisa.Hsu@amd.com> |
enable x86 workloads on se.py |
8167:f596091c854d |
20-Mar-2011 |
Lisa Hsu <Lisa.Hsu@amd.com> |
se.py: Modify script to make multiprogramming much easier. Now, instead of --bench benchname, you can do --bench bench1-bench2-bench3 and it will set up a simulation that instantiates those three workloads. Only caveat is that now, for sanity checking, your -n X must match the number of benches in the list. |
8061:08e91664adac |
23-Feb-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Clarifies creation of Linux and baremetal ARM systems.
makeArmSystem creates both bare-metal and Linux systems more cleanly. machine_type was never optional though listed as an optional argument; a system such as "RealView_PBX" must now be explicitly specified. Now that it is a required argument, the placement of the arguments has changed slightly requiring some changes to calls that create ARM systems. |
7938:685719afafe6 |
08-Feb-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
memtest: due to contention increase, increased deadlock threshold |
7937:bb6411d45356 |
08-Feb-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: fixed minor bug connecting dma devices to ruby |
7925:6823ef6d7a9f |
07-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
X86, Config: Move the setting of work count options to a separate function.
This way things that don't care about work count options and/or aren't called by something that has those command line options set up doesn't have to build a fake object to carry in inert values. |
7914:eee5bb0fb8ea |
07-Feb-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
m5: added work completed monitoring support |
7905:00ad807ed2ca |
07-Feb-2011 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: x86 fs config support |
7877:19beb0676222 |
03-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Mem,X86: Make the IO bridge pass APIC messages back towards the CPU. |
7876:189b9b258779 |
03-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Config: Keep track of uncached and cached ports separately.
This makes sure that the address ranges requested for caches and uncached ports don't conflict with each other, and that accesses which are always uncached (message signaled interrupts for instance) don't waste time passing through caches. |
7861:4ebff121cc0e |
19-Jan-2011 |
Gabe Black <gblack@eecs.umich.edu> |
Time: Add a mechanism to prevent M5 from running faster than real time.
M5 skips over any simulated time where it doesn't have any work to do. When the simulation is active, the time skipped is short and the work done at any point in time is relatively substantial. If the time between events is long and/or the work to do at each event is small, it's possible for simulated time to pass faster than real time. When running a benchmark that can be good because it means the simulation will finish sooner in real time. When interacting with the real world through, for instance, a serial terminal or bridge to a real network, this can be a problem. Human or network response time could be greatly exagerated from the perspective of the simulation and make simulated events happen "too soon" from an external perspective.
This change adds the capability to force the simulation to run no faster than real time. It does so by scheduling a periodic event that checks to see if its simulated period is shorter than its real period. If it is, it stalls the simulation until they're equal. This is called time syncing.
A future change could add pseudo instructions which turn time syncing on and off from within the simulation. That would allow time syncing to be used for the interactive parts of a session but then turned off when running a benchmark using the m5 utility program inside a script. Time syncing would probably not happen anyway while running a benchmark because there would be plenty of work for M5 to do, but the event overhead could be avoided. |
7787:af976dd0c6e7 |
07-Dec-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
Configs: Automatically choose the correct hello world binary. |
7656:dd4d229b716d |
26-Aug-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
memtest: scale associativity and mshrs according to config Use the actual fanouts in the tree specification to scale cache associativity and mshrs instead of dumb constants. |
7635:a322932de08f |
24-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: changed ruby config file names to be consistent |
7634:9a469388e8b3 |
24-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: remove ruby's requirement on the timing cmd line param
Since ruby only works in timing mode, explicitly requiring the timing cmd line param to be specified is not necessary. |
7633:d8112aa18a1b |
24-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: fixed ruby dma device connections |
7632:acf43d6bbc18 |
24-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
testers: move testers to a new directory
This patch moves the testers to a new subdirectory under src/cpu and includes the necessary fixes to work with latest m5 initialization patches. |
7586:da93206873dc |
23-Aug-2010 |
Ali Saidi <Ali.Saidi@arm.com> |
ARM: Add configuration for Linux/Full System |
7553:fcdd99057b8a |
20-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Resurrected Ruby's deterministic tests
Added the request series and invalidate deterministic tests as new cpu models and removed the no longer needed ruby tests |
7551:b10ee98aea91 |
20-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Reduced ruby latencies
The previous slower ruby latencies created a mismatch between the faster M5 cpu models and the much slower ruby memory system. Specifically smp interrupts were much slower and infrequent, as well as cpus moving in and out of spin locks. The result was many cpus were idle for large periods of time.
These changes fix the latency mismatch. |
7544:90c5eb6a5e66 |
20-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
memtest: Memtester support for DMA
This patch adds DMA testing to the Memtester and is inherits many changes from Polina's old tester_dma_extension patch. Since Ruby does not work in atomic mode, the atomic mode options are removed. |
7541:1e1f63dfd130 |
20-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: Improve ruby simobject names
This patch attaches ruby objects to the system before the topology is created so that their simobject names read their meaningful variable names instead of their topology name. |
7538:5691b9dd51f4 |
20-Aug-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
config: reorganized how ruby specifies command-line options |
7525:722f2ad014a7 |
17-Aug-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
sim: make Python Root object a singleton Enforce that the Python Root SimObject is instantiated only once. The C++ Root object already panics if more than one is created. This change avoids the need to track what the root object is, since it's available from Root.getInstance() (if it exists). It's now redundant to have the user pass the root object to functions like instantiate(), checkpoint(), and restoreCheckpoint(), so that arg is gone. Users who use configs/common/Simulate.py should not notice. |
7018:1c6d209888d7 |
22-Mar-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: removed ruby.config from configs/example |
7014:441317194b08 |
22-Mar-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: fixed how ruby_fs creates phsyical memory
Now ruby_fs creates physical memory of the right size. |
6995:f2b4d8bea5d3 |
27-Feb-2010 |
Gabe Black <gblack@eecs.umich.edu> |
Config: Fix fs.py's call to CacheConfig.config_cache. |
6981:aba5f7216636 |
25-Feb-2010 |
Lisa Hsu <Lisa.Hsu@amd.com> |
configs: pull out cache configuration code from se.py and fs.py. Most of these frontend configurations share cache configuration code, pull it out so that changes to caches don't have to require changing multiple config files. |
6978:ab05e20dc4a7 |
23-Feb-2010 |
Lisa Hsu <Lisa.Hsu@amd.com> |
cache: Make caches sharing aware and add occupancy stats. On the config end, if a shared L2 is created for the system, it is parameterized to have n sharers as defined by option.num_cpus. In addition to making the cache sharing aware so that discriminating tag policies can make use of context_ids to make decisions, I added an occupancy AverageStat and an occ % stat to each cache so that you could know which contexts are occupying how much cache on average, both in terms of blocks and percentage. Note that since devices have context_id -1, having an array of occ stats that correspond to each context_id will break here, so in FS mode I add an extra bucket for device blocks. This bucket is explicitly not added in SE mode in order to not only avoid ugliness in the stats.txt file, but to avoid broken stats (some formulas break when a bucket is 0). |
6924:bb6be90ec74b |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: ruby_se.py updated to new config system |
6919:dd45a54732aa |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: memtest-ruby updated to the new config system |
6903:27f47cf65ab7 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: convert to M5 MemorySize Converted both ruby caches and directory memory to use the M5 MemorySize python type. |
6899:f8057af86bf7 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: added the GEMS ruby tester |
6893:9cdf9b65d946 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: FS support using the new configuration system |
6892:6a2db6c8a9b1 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: reorganized ruby python configuration Reorganized ruby python configuration so that protocol and ruby memory system configuration code can be shared by multiple front-end configuration files (i.e. memory tester, full system, and hopefully the regression tester). This code works for memory tester, but have not tested fs mode. |
6889:323cd43a3c46 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Memory Controller Profiler with new config system This patch includes a rather substantial change to the memory controller profiler in order to work with the new configuration system. Most noteably, the mem_cntrl_profiler no longer uses a string map, but instead a vector. Eventually this support should be removed from the main profiler and go into a separate object. Each memory controller should have a pointer to that new mem_cntrl profile object. |
6888:de8e755aca4f |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Converted MOESI_hammer dma cntrl to new config system |
6887:b10cae7bacf4 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Added the cache profiler to the new config system |
6883:f57e272cf8a1 |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Added clock to ruby system As a first step to migrate ruby to the M5 eventqueue, added a clock variable to the ruby system. |
6882:898047a3672c |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Ruby changes required to use the python config system This patch includes the necessary changes to connect ruby objects using the python configuration system. Mainly it consists of removing unnecessary ruby object pointers and connecting the necessary object pointers using the generated param objects. This patch includes the slicc changes necessary to connect generated ruby objects together using the python configuraiton system. |
6881:5a61a8a9009a |
29-Jan-2010 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: connects sm queues to the network |
6880:a9e3c07205a8 |
29-Jan-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
ruby: Calculate system total memory capacity in Python rather than in RubySystem object. |
6879:c07cf29b5a33 |
29-Jan-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
ruby: Add support for generating topologies in Python. |
6876:a658c315512c |
29-Jan-2010 |
Steve Reinhardt <steve.reinhardt@amd.com> |
ruby: Convert most Ruby objects to M5 SimObjects. The necessary companion conversion of Ruby objects generated by SLICC are converted to M5 SimObjects in the following patch, so this patch alone does not compile. Conversion of Garnet network models is also handled in a separate patch; that code is temporarily disabled from compiling to allow testing of interim code. |
6796:daf49a57df75 |
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
m5: improvements to the ruby_fs.py file |
6767:71b272bd988e |
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: included ruby config parameter ports per core Slightly improved the major hack need to correctly assign the number of ports per core. CPUs have two ports: icache + dcache. MemTester has one port. |
6765:b5101309174d |
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Support for merging ALPHA_FS and ruby Connects M5 cpu and dma ports directly to ruby sequencers and dma sequencers. Rubymem also includes a pio port so that pio requests and be forwarded to a special pio bus connecting to device pio ports. |
6760:12da457d6e5c |
18-Nov-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
ruby: Ruby memtest python script. |
6679:a1d8c53d92b8 |
16-Oct-2009 |
Brad Beckmann <Brad.Beckmann@amd.com> |
removed libruby file reference from ruby_se.py |
6654:4c84e771cca7 |
22-Sep-2009 |
Nathan Binkert <nate@binkert.org> |
python: Move more code into m5.util allow SCons to use that code. Get rid of misc.py and just stick misc things in __init__.py Move utility functions out of SCons files and into m5.util Move utility type stuff from m5/__init__.py to m5/util/__init__.py Remove buildEnv from m5 and allow access only from m5.defines Rename AddToPath to addToPath while we're moving it to m5.util Rename read_command to readCommand while we're moving it Rename compare_versions to compareVersions while we're moving it. |
6642:0b72f4f7c814 |
16-Sep-2009 |
Korey Sewell <ksewell@umich.edu> |
inorder-configs: update se.py fix bug with 'numThreads=len(workloads)' which was counting characters of command-line not counting threads as intended. Update numThreads for inorder/o3 cases and default to 1 for all other cases. |
6636:8c68656b8564 |
15-Sep-2009 |
Steve Reinhardt <steve.reinhardt@amd.com> |
Add an I/O cache to FS config even if there's just an "L2" cache. |
6391:af82c0870667 |
26-Jul-2009 |
Korey Sewell <ksewell@umich.edu> |
se-configs: edit se.py to account for non-O3CPU workloads |
6387:70172be3f986 |
25-Jul-2009 |
Korey Sewell <ksewell@umich.edu> |
o3-smt: enforce numThreads parameter for SMT SE mode |
6165:2d26c346f1be |
11-May-2009 |
Daniel Sanchez <sanchezd@stanford.edu> |
ruby: Working M5 interface and updated Ruby interface. This changeset also includes a lot of work from Derek Hower <drh5@cs.wisc.edu>
RubyMemory is now both a driver for Ruby and a port for M5. Changed makeRequest/hitCallback interface. Brought packets (superficially) into the sequencer. Modified tester infrastructure to be packet based. and Ruby can be used together through the example ruby_se.py script. SPARC parallel applications work, and the timing *seems* right from combined M5/Ruby debug traces. To run, % build/ALPHA_SE/m5.debug configs/example/ruby_se.py -c tests/test-progs/hello/bin/alpha/linux/hello -n 4 -t |
6135:9327451a8e7a |
26-Apr-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86, Config: Make makeX86System consider the number of CPUs, and clean up interrupt assignment. |
6122:9af6fb59752f |
16-Jul-2008 |
Steve Reinhardt <Steve.Reinhardt@amd.com> |
mem: use single BadAddr responder per system. Previously there was one per bus, which caused some coherence problems when more than one decided to respond. Now there is just one on the main memory bus. The default bus responder on all other buses is now the downstream cache's cpu_side port. Caches no longer need to do address range filtering; instead, we just have a simple flag to prevent snoops from propagating to the I/O bus. |
5822:05ffa2c3c800 |
30-Jan-2009 |
Ali Saidi <saidi@eecs.umich.edu> |
Errors: Print a URL with a hash of the format string to find more information about an error. |
5514:9a903bf83a33 |
23-Jul-2008 |
Michael Adler <Michael.Adler@intel.com> |
process: separate stderr from stdout - Add the option of redirecting stderr to a file. With the old behaviour, stderr would follow stdout if stdout was to a file, but stderr went to the host stderr if stdout went to the host stdout. The new default maintains stdout and stderr going to the host. Now the two can specify different files, but they will share a file descriptor if the name of the files is the same. - Add --output and --errout options to se.py to go with --input. |
5457:08bd3709d482 |
13-Jun-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
Scripts: Check for the appropriate build type as soon as possible. |
5369:9358355117b0 |
28-Feb-2008 |
Ali Saidi <saidi@eecs.umich.edu> |
Configs: Fix some bugs we introduced in the simpoints code |
5299:e61b9f2a9732 |
02-Dec-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Move startup code to the system object to initialize a Linux system. |
5254:c555f8b07345 |
15-Nov-2007 |
Korey Sewell <ksewell@umich.edu> |
fix MIPS headers |
5222:bb733a878f85 |
13-Nov-2007 |
Korey Sewell <ksewell@umich.edu> |
Add in files from merge-bare-iron, get them compiling in FS and SE mode |
5142:73aa4932b65b |
08-Oct-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Configuration: Move iocache outside of processors loop so it works for MP systems |
5133:a88763dd4a84 |
07-Oct-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Adjust the config scripts for x86 fs. |
5056:11789c986e14 |
05-Sep-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Configuration: Fix example script to only create one L2 if --l2cache and -nX are given as parameters.
Patch submitted by: Jonas Diemer [diemer (a) ida.ing.tu-bs.de] |
4968:f1c856d8c460 |
08-Aug-2007 |
Vincentius Robby <acolyte@umich.edu> |
Added fastmem option. Lets CPU accesses to physical memory bypass Bus. |
4965:ad0e792a5c78 |
10-Aug-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
DMA: Add IOCache and fix bus bridge to optionally only send requests one way so a cache can handle partial block requests for i/o devices. |
4895:d36959284fbc |
15-Jul-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Fix up a bunch of multilevel coherence issues. Atomic mode seems to work. Timing is closer but not there yet. |
4893:3439144e474a |
15-Jul-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Fix problem with unset max_loads in memtest. Also make default 0, and make that mean run forever. |
4892:298bc09b72fa |
15-Jul-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Punt on old -n/-c memtest args. Also added comments to document treespec format. |
4891:02babad9bfce |
15-Jul-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add --force-bus option to memtest.py. |
4890:5fbfbcd22796 |
15-Jul-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
New tree-based algorithm for creating more complex cache hierarchies. |
4847:41126ac89de7 |
01-Aug-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Fix how the "cmd" parameter is set in se.py and remove hack in x86 process initialization code. |
4837:4e5c7f774548 |
01-Aug-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
Configuration: Update the drive systems kernel as well as the testsys kernel with cmd line option. |
4672:cc97e595e07d |
27-Jun-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Get rid of coherence protocol object. |
4628:17b3ce796176 |
21-Jun-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Getting closer...
configs/example/memtest.py: Add progress interval option. src/base/traceflags.py: Add MemTest flag. src/cpu/memtest/memtest.cc: Clean up tracing. src/cpu/memtest/memtest.hh: Get rid of unused code. |
4627:2766d5cfbd9d |
17-Jun-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
Merge vm1.(none):/home/stever/bk/newmem-head into vm1.(none):/home/stever/bk/newmem-cache2
configs/example/memtest.py: Hand merge redundant changes. |
4626:ed8aacb19c03 |
17-Jun-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
More major reorg of cache. Seems to work for atomic mode now, timing mode still broken.
configs/example/memtest.py: Revamp options. src/cpu/memtest/memtest.cc: No need for memory initialization. No need to make atomic response... memory system should do that now. src/cpu/memtest/memtest.hh: MemTest really doesn't want to snoop. src/mem/bridge.cc: checkFunctional() cleanup. src/mem/bus.cc: src/mem/bus.hh: src/mem/cache/base_cache.cc: src/mem/cache/base_cache.hh: src/mem/cache/cache.cc: src/mem/cache/cache.hh: src/mem/cache/cache_blk.hh: src/mem/cache/cache_builder.cc: src/mem/cache/cache_impl.hh: src/mem/cache/coherence/coherence_protocol.cc: src/mem/cache/coherence/coherence_protocol.hh: src/mem/cache/coherence/simple_coherence.hh: src/mem/cache/miss/SConscript: src/mem/cache/miss/mshr.cc: src/mem/cache/miss/mshr.hh: src/mem/cache/miss/mshr_queue.cc: src/mem/cache/miss/mshr_queue.hh: src/mem/cache/prefetch/base_prefetcher.cc: src/mem/cache/tags/fa_lru.cc: src/mem/cache/tags/fa_lru.hh: src/mem/cache/tags/iic.cc: src/mem/cache/tags/iic.hh: src/mem/cache/tags/lru.cc: src/mem/cache/tags/lru.hh: src/mem/cache/tags/split.cc: src/mem/cache/tags/split.hh: src/mem/cache/tags/split_lifo.cc: src/mem/cache/tags/split_lifo.hh: src/mem/cache/tags/split_lru.cc: src/mem/cache/tags/split_lru.hh: src/mem/packet.cc: src/mem/packet.hh: src/mem/physical.cc: src/mem/physical.hh: src/mem/tport.cc: More major reorg. Seems to work for atomic mode now, timing mode still broken. |
4549:42b30b2529e1 |
10-Jun-2007 |
Nathan Binkert <binkertn@umich.edu> |
More realistic parameters |
4476:19ae7f38237e |
22-May-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
memtest.py: Make clocks more reasonable. Fix bug in sense of options.timing flag.
configs/example/memtest.py: Fix bug in sense of options.timing flag. configs/example/memtest.py: Make clocks more reasonable. |
4467:cb5715e021ca |
19-May-2007 |
Steve Reinhardt <stever@eecs.umich.edu> |
PhysicalMemory has vector of uniform ports instead of one special one.
configs/example/memtest.py: PhysicalMemory has vector of uniform ports instead of one special one. Other updates to fix obsolete brokenness. src/mem/physical.cc: src/mem/physical.hh: src/python/m5/objects/PhysicalMemory.py: Have vector of uniform ports instead of one special one. src/python/swig/pyobject.cc: Add comment. |
4455:18ff8ee46de8 |
15-May-2007 |
Ali Saidi <saidi@eecs.umich.edu> |
add an l2 cache option to se example config
configs/common/Options.py: configs/example/fs.py: move l2 cache option to Options.py |
4167:ce5d0f62f13b |
06-Mar-2007 |
Nathan Binkert <binkertn@umich.edu> |
Move all of the parameters of the Root SimObject so they are directly configured by python. Move stuff from root.(cc|hh) to core.(cc|hh) since it really belogs there now. In the process, simplify how ticks are used in the python code. |
3970:d54945bab95d |
03-Jan-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Merge zizzer:/bk/newmem into zower.eecs.umich.edu:/eecshome/m5/newmem |
3873:9c1773b9f603 |
23-Dec-2006 |
Nathan Binkert <binkertn@umich.edu> |
Add options for setting the kernel to run and the script to run |
3819:8a9d3f3d3398 |
04-Dec-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
automatically build sparc system or alpha system.
configs/example/fs.py: make it an automatic system build for alpha vs. sparc. |
3668:bacb0a392e78 |
15-Nov-2006 |
Ron Dreslinski <rdreslin@umich.edu> |
Add L2 cache option to fs.py --l2cache |
3623:c37f82ace0fe |
12-Nov-2006 |
Ron Dreslinski <rdreslin@umich.edu> |
Update for maxtick in splash2/memtest configs
configs/example/memtest.py: configs/splash2/run.py: Update for maxtick |
3514:b166ee5dce91 |
09-Nov-2006 |
Kevin Lim <ktlim@umich.edu> |
Clean up config scripts to not have to worry about attaching a cache only to the TimingCPU. Now the Atomic CPU works with caches.
configs/common/Simulation.py: Atomic CPU now works properly with caches, so we don't have to do extra parsing to hook up caches only to the timing CPU.
However the O3CPU must always use caches, so a check for that must still exist.
Also change the switch_cpus to be placed at the system level, now that Steve changed how the IntrController gets its CPU. configs/example/fs.py: configs/example/se.py: Atomic CPU now handles caches. |
3481:14362d3b0756 |
01-Nov-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
factor some more commone code and enable going from checkpoint into arbitrary CPU with or without caches.
configs/common/Simulation.py: enable going from checkpoint into arbitrary CPU with or without caches. |
3477:eaf445891a4e |
31-Oct-2006 |
Kevin Lim <ktlim@umich.edu> |
Fix up configs.
configs/common/Simulation.py: Remove mem parameter. configs/example/se.py: Remove debug output that got included in my other push. |
3476:0e26b5458236 |
31-Oct-2006 |
Kevin Lim <ktlim@umich.edu> |
Merge ktlim@zizzer:/bk/newmem into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-busfix
configs/example/fs.py: configs/example/se.py: src/mem/tport.hh: Hand merge. |
3448:bb2632fa57dc |
30-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
se.py, fs.py: import Caches Simulation.py: Fix typo - L2Cache --> L1Cache
configs/common/Simulation.py: Fix typo - L2Cache --> L1Cache configs/example/fs.py: configs/example/se.py: import Caches |
3444:6abefa632e10 |
30-Oct-2006 |
Kevin Lim <ktlim@umich.edu> |
Use some python os.path stuff to make it more flexible where we can execute this script from. |
3409:769707cf0664 |
27-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
Merge zizzer:/bk/newmem into zed.eecs.umich.edu:/z/hsul/work/m5/newmem
configs/example/fs.py: configs/example/se.py: hand merge |
3402:db60546818d0 |
31-Oct-2006 |
Kevin Lim <ktlim@umich.edu> |
Remove mem parameter. Now the translating port asks the CPU's dcache's peer for its MemObject instead of having to have a paramter for the MemObject.
configs/example/fs.py: configs/example/se.py: src/cpu/simple/base.cc: src/cpu/simple/base.hh: src/cpu/simple/timing.cc: src/cpu/simple_thread.cc: src/cpu/simple_thread.hh: src/cpu/thread_state.cc: src/cpu/thread_state.hh: tests/configs/o3-timing-mp.py: tests/configs/o3-timing.py: tests/configs/simple-atomic-mp.py: tests/configs/simple-atomic.py: tests/configs/simple-timing-mp.py: tests/configs/simple-timing.py: tests/configs/tsunami-simple-atomic-dual.py: tests/configs/tsunami-simple-atomic.py: tests/configs/tsunami-simple-timing-dual.py: tests/configs/tsunami-simple-timing.py: No need for mem parameter any more. src/cpu/checker/cpu.cc: Use new constructor for simple thread (no more MemObject parameter). src/cpu/checker/cpu.hh: Remove MemObject parameter. src/cpu/memtest/memtest.hh: Ports now take in their MemObject owner. src/cpu/o3/alpha/cpu_builder.cc: Remove mem parameter. src/cpu/o3/alpha/cpu_impl.hh: Remove memory parameter and clean up handling of TranslatingPort. src/cpu/o3/cpu.cc: src/cpu/o3/cpu.hh: src/cpu/o3/fetch.hh: src/cpu/o3/fetch_impl.hh: src/cpu/o3/mips/cpu_builder.cc: src/cpu/o3/mips/cpu_impl.hh: src/cpu/o3/params.hh: src/cpu/o3/thread_state.hh: src/cpu/ozone/cpu.hh: src/cpu/ozone/cpu_builder.cc: src/cpu/ozone/cpu_impl.hh: src/cpu/ozone/front_end.hh: src/cpu/ozone/front_end_impl.hh: src/cpu/ozone/lw_lsq.hh: src/cpu/ozone/lw_lsq_impl.hh: src/cpu/ozone/simple_params.hh: src/cpu/ozone/thread_state.hh: src/cpu/simple/atomic.cc: Remove memory parameter. |
3399:8206f6b9283e |
26-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
se.py: make the same os.getcwd fix ali made in fs.py, make connectMemPorts occur after caches are created.
configs/example/se.py: make the same os.getcwd fix ali made in fs.py, make connectMemPorts occur after caches are created. |
3398:7f14cadf3afd |
24-Oct-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
Fix fs.py. Lisa did you test this? Is there some wierd python version thing? |
3395:49e674f2fb5d |
27-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
factor out common run code from se.py and fs.py.
configs/example/fs.py: factor out common code. configs/example/se.py: factor out common code |
3394:0a6b4a7a6df6 |
23-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
warmup of 1B cpu cycles.
configs/example/fs.py: configs/example/se.py: warm up of 1B CPU cycles |
3393:43e1a001a7ce |
23-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
Merge zizzer:/bk/newmem into zed.eecs.umich.edu:/z/hsul/work/m5/newmem |
3355:f15cc71cdf09 |
20-Oct-2006 |
Ron Dreslinski <rdreslin@umich.edu> |
Give physical memory some latency to stress the system |
3354:2ea739dd597c |
20-Oct-2006 |
Ron Dreslinski <rdreslin@umich.edu> |
Add a config file in the example with the memtester and some parser options. |
3328:50b7be1f9ab6 |
19-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
First cut at LL/SC support in caches (atomic mode only).
configs/example/fs.py: Add MOESI protocol to caches (uni coherence not quite working w/FS yet). |
3323:ca667530b8a0 |
23-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
make a lot of the same changes as to fs.py for checkpointing.
1) rearrange the options to be in a nice logical order 2) add an option for what i call "standard switch", which is from simple->timing->detailed 3) make checkpointing code such that checkpoints taken from the command line override checkpoint instructions compiled into binaries. 4) add an option for maximum number of checkpoints - simulation will stop at max or maxtick, whichever is first |
3322:bccece90053b |
23-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
changes regarding fs.py
1) rearrange the options to be in a nice logical order 2) add an option for what i call "standard switch", which is from simple->timing->detailed 3) change the client/server naming system to testsys/drivesys 4) make checkpointing code such that checkpoints taken from the command line override checkpoint instructions compiled into binaries. 5) add an option for maximum number of checkpoints - simulation will stop at max or maxtick, whichever is first
doesn't fully work because of a caching issue, but the python side of things i think should work - the counterpart of se.py does work. i think i should factor out a lot of the common code in both, but i'll do that after this checkin, just to get this in the tree.
configs/example/fs.py: 1) rearrange the options to be in a nice logical order 2) add an option for what i call "standard switch", which is from simple->timing->detailed 3) change the client/server naming system to testsys/drivesys 4) make checkpointing code such that checkpoints taken from the command line override checkpoint instructions compiled into binaries. 5) add an option for maximum number of checkpoints - simulation will stop at max or maxtick, whichever is first |
3314:1247da7b4d26 |
18-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add --caches option to add caches to server CPUs. |
3312:dbaec4804adf |
18-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Enable MP systems via cmd-line flag in fs.py.
configs/example/fs.py: Add flag for MP server systems. src/python/m5/objects/AlphaConsole.py: src/python/m5/objects/IntrControl.py: Change CPU from 'any' to 'cpu[0]' to work better with MP sytems. tests/configs/tsunami-simple-atomic-dual.py: tests/configs/tsunami-simple-timing-dual.py: Don't need to set console & intrcontrol cpu params anymore (default is fixed now). |
3304:c5917aeb8e2f |
17-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Rename 'Machine' to 'SysConfig'. Clean up a little. |
3230:e86a03911728 |
09-Oct-2006 |
Kevin Lim <ktlim@umich.edu> |
Merge ktlim@zizzer:/bk/newmem into zamp.eecs.umich.edu:/z/ktlim2/clean/o3-merge/newmem
src/cpu/memtest/memtest.cc: src/cpu/memtest/memtest.hh: src/cpu/simple/timing.hh: tests/configs/o3-timing-mp.py: Hand merge. |
3223:a2b6fa575c05 |
08-Oct-2006 |
Kevin Lim <ktlim@umich.edu> |
Clean up configs.
configs/common/FSConfig.py: configs/common/SysPaths.py: configs/example/fs.py: configs/example/se.py: tests/configs/o3-timing-mp.py: tests/configs/o3-timing.py: Clean up configs by removing FullO3Config and instead using default values. src/python/m5/objects/FUPool.py: Add in default FUPool. src/python/m5/objects/O3CPU.py: Use defaults better. Also set checker parameters, and fix up a config bug. |
3183:bd8f3870620f |
09-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
add in checkpoint restoration option, you can restore a checkpoint by giving a directory, and then giving a checkpoint number, the earliest checkpoint is 1, the latest is N. the default checkpoint directory is the cwd.
so you can restore by a command line like this:
m5.opt fs.py --checkpoint_dir="/my/ckpt/dir" -c 3
configs/example/fs.py: add in checkpoint restoration option, you can restore a checkpoint by giving a directory, and then giving a checkpoint number, the earliest checkpoint is 1, the latest is N. |
3180:664fe611de8e |
08-Oct-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Set cpu_id params (required by ll/sc code now). |
3143:76c70c8bc5c8 |
06-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
add an option for defining a directory in which to place all your checkpoints. if none, default is cwd. |
3133:ad45cbafebdd |
05-Oct-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
fix the argument to m5.simulate() on a checkpoint.
src/sim/stat_control.cc: add curTick to reset stats printf. |
3088:d8a809416104 |
29-Aug-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add FULL_SYSTEM check to example/fs.py. |
3087:e50b0686850d |
29-Aug-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Add missing cpu mem param to example/se.py.
configs/example/se.py: Add missing cpu mem param. |
3050:358a23f67bf6 |
21-Aug-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
fs.py: Add temporary cpu.mem parameter settings.
configs/example/fs.py: Add temporary cpu.mem parameter settings. |
3046:fc3297be3869 |
20-Aug-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
configs/example/fs.py: Arg to m5.simulate() is a delta, not an absolute curTick value. I didn't test this change, but I'm not convinced the previous example was tested either, so I don't feel too badly about it.
configs/example/fs.py: Arg to m5.simulate() is a delta, not an absolute curTick value. I didn't test this change, but I'm not convinced the previous example was tested either, so I don't feel too badly about it. |
3025:00fe36086a14 |
16-Aug-2006 |
Ali Saidi <saidi@eecs.umich.edu> |
add etherdump file option |
3022:b3b379cb97ef |
16-Aug-2006 |
Lisa Hsu <hsul@eecs.umich.edu> |
Add in checkpointing in the frontend, so that when a checkpoint is called, the python handles it, and the simulation continues. Also, make it so that the cycle number is part of the cpt dir name, so that multiple checkpoints do not overwrite each other. |
3005:ceb86e85d62d |
16-Aug-2006 |
Steve Reinhardt <stever@eecs.umich.edu> |
Finish test clean-up & reorg.
configs/common/FSConfig.py: Add default Machine() param configs/example/fs.py: configs/example/se.py: make it work again src/python/m5/objects/BaseCPU.py: Make mem PhysicalMemory so that a Parent.any proxy works well src/sim/process.cc: Increase default stack size so we don't get an 'increasing stack' message on 'hello world' tests/SConscript: Add full list of current configs. tests/configs/simple-atomic.py: tests/configs/simple-timing.py: don't need SEConfig anymore tests/quick/00.hello/test.py: tests/quick/20.eio-short/test.py: fix tests/run.py: move configs to separate dir |