Open sabbaghm opened 4 years ago
Yes we did full system simulation with STT-gem5 and did not run into any problem. The kernel and disk image we used is this: http://www.cs.utexas.edu/~cart/parsec_m5/ I suggest you try the full system simulation on the gem5 commit that STT starts from, and then try it on STT.
I tried the following command on both the original commit in the STT repo ("first commit") and the latest STT commit:
./build/X86_MESI_Two_Level/gem5.opt configs/example/fs.py --disk-image=/tmp/full-system-simulation/disks/x86root-parsec.img --kernel=/tmp/full-system-simulation/binaries/x86_64-vmlinux-2.6.28.4-smp
Both simulations stock at this status:
Global frequency set at 1000000000000 ticks per second warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes) info: kernel located at: /home/majid/apps/gem5/full-system-simulation/binaries/x86_64-vmlinux-2.6.28.4-smp Listening for com_1 connection on port 3456 0: rtc: Real-time clock set to Sun Jan 1 00:00:00 2012 0: system.remote_gdb: listening for remote gdb on port 7000 warn: Reading current count from inactive timer. REAL SIMULATION info: Entering event queue @ 0. Starting simulation... warn: Don't know what interrupt to clear for console. warn: instruction 'wbinvd' unimplemented warn: x86 cpuid: unknown family 0x4000 warn: x86 cpuid family 0x0000: unimplemented function 13
Any idea on how to resolve this? should I pass any special arguments to fs.py for this to boot up?
Kernel boot log:
WARNING: at arch/x86/kernel/cpu/mtrr/main.c:1604 mtrr_trim_uncached_memory+0x327/0x32b()
WARNING: strange, CPU MTRRs all blank?
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.28-rc4-dirty #5
Call Trace:
[
found SMP MP-table at [ffff8800000f0050] 000f0050
Zone PFN ranges:
DMA 0x00000000 -> 0x00001000
DMA32 0x00001000 -> 0x00100000
Normal 0x00100000 -> 0x00100000
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
0: 0x00000000 -> 0x0000009f
0: 0x00000100 -> 0x00020000
Intel MultiProcessor Specification v1.4
MPTABLE: OEM ID:
MPTABLE: Product ID:
MPTABLE: APIC at: 0xFEE00000
Processor #0 (Bootup-CPU)
I/O APIC #1 Version 17 at 0xFEC00000.
Processors: 1
SMP: Allowing 1 CPUs, 0 hotplug CPUs
Allocating PCI resources starting at c4000000 (gap: c0000000:3fff0000)
PERCPU: Allocating 53248 bytes of per cpu data
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 127107
Kernel command line: earlyprintk=ttyS0 console=ttyS0 lpj=7999923 root=/dev/hda1
Initializing CPU#0
FP/SSE not shown under xsave features 0xd
------------[ cut here ]------------
kernel BUG at arch/x86/kernel/xsave.c:323!
invalid opcode: 0000 [#1] SMP
last sysfs file:
CPU 0
Modules linked in:
Pid: 0, comm: swapper Tainted: G W 2.6.28-rc4-dirty #5
RIP: 0010:[
Hi,
Our full-system simulation used ARM instead (so it should be
scons build/ARM_MESI_Two_Level/gem5.opt
then use fs.py to run gem5.opt)
Based on your error message I think it may be because some instructions are not supported in this version of gem5.
I see. Thank you!
So STT is only evaluated on ARM ISA? (Also, I could not find the PARSEC disk and binaries for ARM in the page you suggested earlier)
Hi,
Sorry I used the kernel and disk image directly provided by InvisiSpec for STT. And I apologize to point you to an incorrect page (that UMich website only has x86 and alpha).
These are the kernel and image disk files that we use for STT (which is the same as InvisiSpec): --machine-type=VExpress_EMM64 \ --kernel=$M5_PATH/binaries/vmlinux.aarch64.20140821 \ --dtb-file=$M5_PATH/binaries/vexpress.aarch64.20140821.dtb \ --disk-image=$M5_PATH/disks/aarch64-ubuntu-trusty-headless.img \
And I think you can find these files here: http://www.m5sim.org/dist/current/arm/
Let me know if you have more questions.
@jiyongyu
Hi, I am running the full system simulation with parsec benchmark. But it occurs an error: Exiting @ tick 18446744073709551615 because simulate() limit reached Do you have any idea to solve it? Looking forward your reply. Thanks.
Detailed log as following:
warn: You are trying to use Ruby on ARM, which is not working properly yet. gem5 Simulator System. http://gem5.org gem5 is copyrighted software; use the --copyright option for details.
gem5 compiled Nov 9 2020 22:15:47 gem5 started Nov 10 2020 00:00:16 gem5 executing on xiaoni-System-Product-Name, pid 4704 command line: /home/xiaoni/stt_update_l3_2/build/ARM/gem5.opt --outdir=/home/xiaoni/stt_update_l3_2/output/blackscholes-8-test-arm-FuturisticSafeInvisibleSpec /home/xiaoni/stt_update_l3_2/configs/example/fs.py --machine-type=VExpress_EMM64 --kernel=/home/xiaoni/parsec_full_system_images/system/binaries/vmlinux.aarch64.20140821 --dtb-file=/home/xiaoni/parsec_full_system_images/system/binaries/vexpress.aarch64.20140821.dtb --disk-image=/home/xiaoni/parsec_full_system_images/system/disks/aarch64-ubuntu-trusty-headless.img --num-cpus=8 --mem-size=2GB --num-dirs=8 --script=/home/xiaoni/parsec_full_system_images/system/blackscholes_8c_simsmall.rcS --threat_model=UnsafeBaseline --needsTSO=1 --STT=1 --implicit_channel=0 --l1d_assoc=8 --l2_assoc=16 --l1i_assoc=4 --ruby --cpu-type=DerivO3CPU
info: Standard input is not a terminal, disabling listeners. Global frequency set at 1000000000000 ticks per second warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (256 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (256 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (256 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (256 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (256 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (256 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (256 Mbytes) warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (256 Mbytes) info: kernel located at: /home/xiaoni/parsec_full_system_images/system/binaries/vmlinux.aarch64.20140821 warn: Highest ARM exception-level set to AArch32 but bootloader is for AArch64. Assuming you wanted these to match. Info: simulation uses threatModel: UnsafeBaseline; needsTSO=0 applySTT = 0, implicit_channel = 0, ifPrintROB = 0, moreTransmitInsts = 0 Info: simulation uses threatModel: UnsafeBaseline; needsTSO=0 applySTT = 0, implicit_channel = 0, ifPrintROB = 0, moreTransmitInsts = 0 Info: simulation uses threatModel: UnsafeBaseline; needsTSO=0 applySTT = 0, implicit_channel = 0, ifPrintROB = 0, moreTransmitInsts = 0 Info: simulation uses threatModel: UnsafeBaseline; needsTSO=0 applySTT = 0, implicit_channel = 0, ifPrintROB = 0, moreTransmitInsts = 0 Info: simulation uses threatModel: UnsafeBaseline; needsTSO=0 applySTT = 0, implicit_channel = 0, ifPrintROB = 0, moreTransmitInsts = 0 Info: simulation uses threatModel: UnsafeBaseline; needsTSO=0 applySTT = 0, implicit_channel = 0, ifPrintROB = 0, moreTransmitInsts = 0 Info: simulation uses threatModel: UnsafeBaseline; needsTSO=0 applySTT = 0, implicit_channel = 0, ifPrintROB = 0, moreTransmitInsts = 0 Info: simulation uses threatModel: UnsafeBaseline; needsTSO=0 applySTT = 0, implicit_channel = 0, ifPrintROB = 0, moreTransmitInsts = 0 warn: Sockets disabled, not accepting vnc client connections warn: Sockets disabled, not accepting terminal connections warn: Sockets disabled, not accepting gdb connections info: Using bootloader at address 0x10 info: Using kernel entry physical address at 0x80080000 info: Loading DTB file: /home/xiaoni/parsec_full_system_images/system/binaries/vexpress.aarch64.20140821.dtb at address 0x88000000 REAL SIMULATION warn: Existing EnergyCtrl, but no enabled DVFSHandler found. info: Entering event queue @ 0. Starting simulation... warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch warn: Address 0 is outside of physical memory, stopping fetch Exiting @ tick 18446744073709551615 because simulate() limit reached
Hi,
Sorry I used the kernel and disk image directly provided by InvisiSpec for STT. And I apologize to point you to an incorrect page (that UMich website only has x86 and alpha).
These are the kernel and image disk files that we use for STT (which is the same as InvisiSpec): --machine-type=VExpress_EMM64 --kernel=$M5_PATH/binaries/vmlinux.aarch64.20140821 --dtb-file=$M5_PATH/binaries/vexpress.aarch64.20140821.dtb --disk-image=$M5_PATH/disks/aarch64-ubuntu-trusty-headless.img \
And I think you can find these files here: http://www.m5sim.org/dist/current/arm/
Let me know if you have more questions.
How can we perform a full system simulation with STT add-ons? Is it supported?
I tried different kernel versions through the regular full system simulation flow and the simulation runs into boot panic.