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


      

Reply via email to