24.13. gem5 fs_bigLITTLE
By default, we use configs/example/fs.py
script.
The --gem5-script biglittle
option enables the alternative configs/example/arm/fs_bigLITTLE.py
script instead:
./run --arch aarch64 --emulator gem5 --gem5-script biglittle
Advantages over fs.py
:
-
more representative of mobile ARM SoCs, which almost always have big little cluster
-
simpler than
fs.py
, and therefore easier to understand and modify
Disadvantages over fs.py
:
-
only works for ARM, not other archs
-
not as many configuration options as
fs.py
, many things are hardcoded
We setup 2 big and 2 small CPUs, but cat /proc/cpuinfo
shows 4 identical CPUs instead of 2 of two different types, likely because gem5 does not expose some informational register much like the caches: https://www.mail-archive.com/gem5-users@gem5.org/msg15426.html gem5 config.ini does show that the two big ones are DerivO3CPU
and the small ones are MinorCPU
.
TODO: why is the --dtb
required despite fs_bigLITTLE.py
having a DTB generation capability? Without it, nothing shows on terminal, and the simulation terminates with simulate() limit reached @ 18446744073709551615
. The magic vmlinux.vexpress_gem5_v1.20170616
works however without a DTB.
Tested on: 18c1c823feda65f8b54cd38e261c282eee01ed9f