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/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 ** 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. 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 ./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 == Insane action

View File

@@ -2,10 +2,10 @@
M5_PATH="$(pwd)/out/aarch64/buildroot/build/gem5-1.0/system" \ 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/build/ARM/gem5.opt \
./out/aarch64/buildroot/build/gem5-1.0/gem5/configs/example/arm/fs_bigLITTLE.py \ ./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 \ --big-cpus=2 \
--little-cpus=2 \
--caches \ --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" \ --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 \
; ;