mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-29 04:54:27 +01:00
fs_bigLITTLE: patch for vda, more info
This commit is contained in:
33
README.adoc
33
README.adoc
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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 \
|
||||||
;
|
;
|
||||||
|
|||||||
Reference in New Issue
Block a user