fs_bigLITTLE: patch for vda, more info

This commit is contained in:
Ciro Santilli
2018-05-01 00:00:32 +01:00
parent ea244e1d6f
commit 37a4ff8070
2 changed files with 31 additions and 8 deletions

View File

@@ -4554,21 +4554,44 @@ But then we have to deal specially with the `m5` tool, which has to be cross com
** https://stackoverflow.com/questions/3720142/how-to-force-scons-output-exe-obj-lib-dll-to-specific-build-directory
** https://stackoverflow.com/questions/1762044/how-to-do-an-out-of-source-build-with-scons
=== gem5 fs_bitLITTLE
=== gem5 fs_bigLITTLE
TODO integrate into `run`.
TODO integrate into `run`. There is no way to pass command line arguments except by hacking the script, this is a pre-requisite for good integration.
This system is more representative of ARM, which almost always has the big little cluster.
Working from source setup: first hack `fs_bigLITTLE.py` to use `root=vda` insead of `root=vda1`. Then:
First apply:
....
cd gem5/gem5
echo '
diff --git a/configs/example/arm/fs_bigLITTLE.py b/configs/example/arm/fs_bigLITTLE.py
index 7d66c03a6..d71e714fe 100644
--- a/configs/example/arm/fs_bigLITTLE.py
+++ b/configs/example/arm/fs_bigLITTLE.py
@@ -194,7 +194,7 @@ def build(options):
"norandmaps",
"loglevel=8",
"mem=%s" % default_mem_size,
- "root=/dev/vda1",
+ "root=/dev/vda",
"rw",
"init=%s" % options.kernel_init,
"vmalloc=768MB",
' | patch -p1
....
then:
....
./fs-biglittle
....
Boot messages start at 5 minutes, boot finishes at 13 minutes and gives a shell.
Boot messages start at 5 minutes, boot finishes at 10 minutes and gives a shell.
`cat /proc/cpuinfo` shows 4 identical CPUs instead of 2 of two differnt 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 `config.ini` does show that the two big ones are `DerivO3CPU` and the small ones are `MinorCPU`.
`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 `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`.
== Insane action

View File

@@ -2,10 +2,10 @@
M5_PATH="$(pwd)/out/aarch64/buildroot/build/gem5-1.0/system" \
./out/aarch64/buildroot/build/gem5-1.0/gem5/build/ARM/gem5.opt \
./out/aarch64/buildroot/build/gem5-1.0/gem5/configs/example/arm/fs_bigLITTLE.py \
--disk="$(pwd)/out/aarch64/buildroot/images/rootfs.ext2" \
--kernel="$(pwd)/out/aarch64/buildroot/build/linux-custom/vmlinux" \
--big-cpus=2 \
--little-cpus=2 \
--caches \
--disk="$(pwd)/out/aarch64/buildroot/images/rootfs.ext2" \
--dtb "$(pwd)/out/aarch64/buildroot/build/gem5-1.0/gem5/system/arm/dt/armv8_gem5_v1_big_little_2_2.dtb" \
--kernel="$(pwd)/out/aarch64/buildroot/build/linux-custom/vmlinux" \
--little-cpus=2 \
;