Dear all:
The sample timing simulation of x86 UP.Inorder works well when I followed
"Flexus-Getting-Started-4.0.0.pdf".
My understanding is that without loss of generality, we can still also perform
the same sample timing simulation
of CMP.L2SharedNUCA.Inorder with the same configuration as that of UP.Inorder:
* with the same "prepare-test-app-x86.simics" (@test_app_threads = 1,
$num_cpus = 1, $megs_per_cpu = 256)
* with the same "trace/user-postload.simics"
* with the same "timing_x86/user-postload.simics"
(I think CMP.L2SharedNUCA.Inorder can also support 1-cpu case as a special case)
Here is what I did:
1. I used the same "prepare-test-app-x86.simics" for making simics check points:
> ./prepare-test-app
2. I used "CMP.L2Shared.Trace", instead of "UP.Trace" for making flexpoints:
> run_job \
-postprocess "SCRIPTS_ROOT/postprocess_ckptgen.sh flexpoint 24 test_app" \
-cfg trace -run flexpoint -local -ckpt-gen CMP.L2Shared.Trace
flexus_test_app_x86
3. I used "CMP.L2SharedNUCA.Inorder", instead of "UP.Inorder" for timing
simulation:
> run_job -cfg timing_x86 -run timing -local -state test_app \
CMP.L2SharedNUCA.Inorder flexus_test_app_x86
Here is an important excerpt of both UP.Inorder and CMP.L2SharedNUCA.Inorder
timing simulation log,
generated by "sdiff". The left side is for UP.Inorder, right side for
CMP.L2SharedNUCA.Inorder:
(Please adjust font size by using "Ctrl -" in your browser, if needed)
40 <StdArray.hpp:430> {0}- theGroupInterleaving = 1024 40
<StdArray.hpp:430> {0}- theGroupInterleaving = 1024
40 <StdArray.hpp:430> {0}- theGroupInterleaving = 1024 40
<StdArray.hpp:430> {0}- theGroupInterleaving = 1024
41 <StdArray.hpp:540> {0}- blockOffsetBits = 6, indexBits = 1 41
<StdArray.hpp:540> {0}- blockOffsetBits = 6, indexBits = 1
41 <StdArray.hpp:540> {0}- blockOffsetBits = 6, indexBits = 1 41
<StdArray.hpp:540> {0}- blockOffsetBits = 6, indexBits = 1
**42 <ComponentManager.cpp:99> {0}- Initalizing sys-memory | 42
<ComponentManager.cpp:99> {0}- Initalizing 00-nic
**42 <ComponentManager.cpp:99> {0}- Initalizing sys-memory | 42
<ComponentManager.cpp:99> {0}- Initalizing 00-nic
43 <ComponentManager.cpp:99> {0}- Initalizing 00-nic | 43
<ComponentManager.cpp:99> {0}- Initalizing 01-nic
43 <ComponentManager.cpp:99> {0}- Initalizing 00-nic | 43
<ComponentManager.cpp:99> {0}- Initalizing 01-nic
44 <ComponentManager.cpp:99> {0}- Initalizing 01-nic | 44
<ComponentManager.cpp:99> {0}- Initalizing 02-nic
44 <ComponentManager.cpp:99> {0}- Initalizing 01-nic | 44
<ComponentManager.cpp:99> {0}- Initalizing 02-nic
45 <ComponentManager.cpp:99> {0}- Initalizing 02-nic | 45
<ComponentManager.cpp:99> {0}- Initalizing sys-network
45 <ComponentManager.cpp:99> {0}- Initalizing 02-nic | 45
<ComponentManager.cpp:99> {0}- Initalizing sys-network
46 <ComponentManager.cpp:99> {0}- Initalizing sys-network <
46 <ComponentManager.cpp:99> {0}- Initalizing sys-network <
Attaching node 0 to switch 0:0 Attaching
node 0 to switch 0:0
Attaching node 1 to switch 0:1 Attaching
node 1 to switch 0:1
Attaching node 2 to switch 0:2 Attaching
node 2 to switch 0:2
Attaching switch 0:5 to switch 0:3 Attaching
switch 0:5 to switch 0:3
Attaching switch 0:6 to switch 0:4 Attaching
switch 0:6 to switch 0:4
Adding routing table entry: sw 0 -> 0 thru port 0 Adding
routing table entry: sw 0 -> 0 thru port 0
Adding routing table entry: sw 0 -> 1 thru port 1 Adding
routing table entry: sw 0 -> 1 thru port 1
Adding routing table entry: sw 0 -> 2 thru port 2 Adding
routing table entry: sw 0 -> 2 thru port 2
47 <ComponentManager.cpp:99> {0}- Initalizing sys-memory-map | 46
<ComponentManager.cpp:99> {0}- Initalizing sys-memory-map
47 <ComponentManager.cpp:99> {0}- Initalizing sys-memory-map | 46
<ComponentManager.cpp:99> {0}- Initalizing sys-memory-map
48 <MemoryMapImpl.cpp:323> {0}- Page map file page_map.out wa | 47
<MemoryMapImpl.cpp:323> {0}- Page map file page_map.out wa
48 <MemoryMapImpl.cpp:323> {0}- Page map file page_map.out wa | 47
<MemoryMapImpl.cpp:323> {0}- Page map file page_map.out wa
49 <ComponentManager.cpp:99> {0}- Initalizing sys-magic-break | 48
<ComponentManager.cpp:99> {0}- Initalizing sys-magic-break
49 <ComponentManager.cpp:99> {0}- Initalizing sys-magic-break | 48
<ComponentManager.cpp:99> {0}- Initalizing sys-magic-break
50 <ComponentManager.cpp:99> {0}- Initalizing sys-net-mapper | 49
<ComponentManager.cpp:99> {0}- Initalizing sys-net-mapper
50 <ComponentManager.cpp:99> {0}- Initalizing sys-net-mapper | 49
<ComponentManager.cpp:99> {0}- Initalizing sys-net-mapper
51 <SplitDestinationMapperImpl.cpp:142> {0}- sys-net-mapper C | 50
<SplitDestinationMapperImpl.cpp:142> {0}- sys-net-mapper C
51 <SplitDestinationMapperImpl.cpp:142> {0}- Creating SplitDe | 50
<SplitDestinationMapperImpl.cpp:142> {0}- Creating SplitDe
52 <ComponentManager.cpp:128> {0}- Loading state: sys-white-b | 51
<ComponentManager.cpp:128> {0}- Loading state: sys-white-b
52 <ComponentManager.cpp:128> {0}- Loading state: sys-white-b | 51
<ComponentManager.cpp:128> {0}- Loading state: sys-white-b
53 <ComponentManager.cpp:128> {0}- Loading state: sys-feeder | 52
<ComponentManager.cpp:128> {0}- Loading state: sys-feeder
53 <ComponentManager.cpp:128> {0}- Loading state: sys-feeder | 52
<ComponentManager.cpp:128> {0}- Loading state: sys-feeder
54 <ComponentManager.cpp:128> {0}- Loading state: sys-L1d | 53
<ComponentManager.cpp:128> {0}- Loading state: sys-L1d
54 <ComponentManager.cpp:128> {0}- Loading state: sys-L1d | 53
<ComponentManager.cpp:128> {0}- Loading state: sys-L1d
55 <ComponentManager.cpp:128> {0}- Loading state: sys-L1i | 54
<ComponentManager.cpp:128> {0}- Loading state: sys-L1i
55 <ComponentManager.cpp:128> {0}- Loading state: sys-L1i | 54
<ComponentManager.cpp:128> {0}- Loading state: sys-L1i
56 <ComponentManager.cpp:128> {0}- Loading state: sys-fetch | 55
<ComponentManager.cpp:128> {0}- Loading state: sys-fetch
56 <ComponentManager.cpp:128> {0}- Loading state: sys-fetch | 55
<ComponentManager.cpp:128> {0}- Loading state: sys-fetch
57 <ComponentManager.cpp:128> {0}- Loading state: sys-execute | 56
<ComponentManager.cpp:128> {0}- Loading state: sys-execute
57 <ComponentManager.cpp:128> {0}- Loading state: sys-execute | 56
<ComponentManager.cpp:128> {0}- Loading state: sys-execute
58 <ComponentManager.cpp:128> {0}- Loading state: sys-bpwarm | 57
<ComponentManager.cpp:128> {0}- Loading state: sys-bpwarm
58 <ComponentManager.cpp:128> {0}- Loading state: sys-bpwarm | 57
<ComponentManager.cpp:128> {0}- Loading state: sys-bpwarm
59 <BranchPredictor.cpp:1144> {0}- sys-bpwarm loaded branch p | 58
<BranchPredictor.cpp:1144> {0}- sys-bpwarm loaded branch p
59 <BranchPredictor.cpp:1144> {0}- sys-bpwarm loaded branch p | 58
<BranchPredictor.cpp:1144> {0}- sys-bpwarm loaded branch p
60 <ComponentManager.cpp:128> {0}- Loading state: sys-L2 | 59
<ComponentManager.cpp:128> {0}- Loading state: sys-L2
60 <ComponentManager.cpp:128> {0}- Loading state: sys-L2 | 59
<ComponentManager.cpp:128> {0}- Loading state: sys-L2
61 <InfiniteDirectory.hpp:210> {0}- sys-L2 - Directory loadin | 60
<InfiniteDirectory.hpp:210> {0}- sys-L2 - Directory loadin
61 <InfiniteDirectory.hpp:210> {0}- sys-L2 - Directory loadin | 60
<InfiniteDirectory.hpp:210> {0}- sys-L2 - Directory loadin
62 <ComponentManager.cpp:128> {0}- Loading state: sys-memory | 61
<ComponentManager.cpp:128> {0}- Loading state: 00-nic
62 <ComponentManager.cpp:128> {0}- Loading state: sys-memory | 61
<ComponentManager.cpp:128> {0}- Loading state: 00-nic
63 <ComponentManager.cpp:128> {0}- Loading state: 00-nic | 62
<ComponentManager.cpp:128> {0}- Loading state: 01-nic
63 <ComponentManager.cpp:128> {0}- Loading state: 00-nic | 62
<ComponentManager.cpp:128> {0}- Loading state: 01-nic
64 <ComponentManager.cpp:128> {0}- Loading state: 01-nic | 63
<ComponentManager.cpp:128> {0}- Loading state: 02-nic
64 <ComponentManager.cpp:128> {0}- Loading state: 01-nic | 63
<ComponentManager.cpp:128> {0}- Loading state: 02-nic
65 <ComponentManager.cpp:128> {0}- Loading state: 02-nic | 64
<ComponentManager.cpp:128> {0}- Loading state: sys-network
65 <ComponentManager.cpp:128> {0}- Loading state: 02-nic | 64
<ComponentManager.cpp:128> {0}- Loading state: sys-network
66 <ComponentManager.cpp:128> {0}- Loading state: sys-network | 65
<ComponentManager.cpp:128> {0}- Loading state: sys-memory-
66 <ComponentManager.cpp:128> {0}- Loading state: sys-network | 65
<ComponentManager.cpp:128> {0}- Loading state: sys-memory-
67 <ComponentManager.cpp:128> {0}- Loading state: sys-memory- | 66
<MemoryMapImpl.cpp:323> {0}- Page map file page_map.out wa
67 <ComponentManager.cpp:128> {0}- Loading state: sys-memory- | 66
<MemoryMapImpl.cpp:323> {0}- Page map file page_map.out wa
68 <MemoryMapImpl.cpp:323> {0}- Page map file page_map.out wa | 67
<ComponentManager.cpp:128> {0}- Loading state: sys-magic-b
68 <MemoryMapImpl.cpp:323> {0}- Page map file page_map.out wa | 67
<ComponentManager.cpp:128> {0}- Loading state: sys-magic-b
69 <ComponentManager.cpp:128> {0}- Loading state: sys-magic-b | 68
<ComponentManager.cpp:128> {0}- Loading state: sys-net-map
69 <ComponentManager.cpp:128> {0}- Loading state: sys-magic-b | 68
<ComponentManager.cpp:128> {0}- Loading state: sys-net-map
70 <ComponentManager.cpp:128> {0}- Loading state: sys-net-map | 69
<ComponentManager.cpp:132> {0}- Done loading.
70 <ComponentManager.cpp:128> {0}- Loading state: sys-net-map | 69
<ComponentManager.cpp:132> {0}- Done loading.
++71 <ComponentManager.cpp:132> {0}- Done loading. | 70
<component.hpp:269> {2838}- <undefined> Assertion failed:
++71 <ComponentManager.cpp:132> {0}- Done loading. | Abort
(SIGABRT) in main thread
++72 <flexus.cpp:272> {100000}- Timestamp: 2010-Nov-26 20:44:45 | The
simulation state has been corrupted. Simulation cannot co
++72 <flexus.cpp:272> {100000}- Timestamp: 2010-Nov-26 20:44:45 | Please
restart Simics.
I suspect that the two lines marked with ** cause the problems in the four
lines marked with ++
because CMP.L2SharedNUCA.Inorder (right side) does not Initialize "sys-memory"
in those two lines marked with **.
Could any one check it for me and tell me whether or not I did correctly?
(To perform the sample x86 timing simulation is much easier than the sample
sparc v9 timing simulation.)
I also tried 4-CPU case (for x86) that "Flexus-Getting-Started-4.0.0.pdf"
mentioned.
However, I got the same result.
Thank you very much.
Best regards,
Suk chan Kang