Thanks for your quickly reply, Dan.
--2. I
don't think FFT binds itself at all by default, so disabling P2 and P3 might
disable FFT threads
I did modify the FFT codes to bind the 2
threads into the first 2 cores with command: ./FFT –P2 –a 0 –x
1
--3. Do
not simply disable CPUs once the system is booted. The OS believes disabled
CPUs are still running, and will still involve them in inter-processor
interrupts (IPIs), e.g., TLB shootdowns. Disabling even one CPU will fairly
rapidly deadlock the system, as the disabled CPU will not respond to IPIs and
the system will eventually hang.
Yes, that’s true. So If there is any
way I can follow if do I want to disables CPUs after the system is running?
By the way, I did disable the cpu2 and cpu3
and run the FFT thread with the first two threads.
The command is like this:
./simics –stall
>read-configuration
/export/workspace/shanshuchang/gems/checkpoint_files/simics-2.x/sol9-4p/redundant_4p/fft-2p.check
>load-module ruby
>ruby0.setparam SIMICS_RUBY_MULTIPLIER 1
>ruby0.init
>magic-break-enable
>cpu2.disable
>cpu3.disable
>c
The execution can successfully interrupted
by magic instruction after the MAGIC_BREAKPOINT. And the ruby dump data shows
the instructions executed:
instruction_executed: 4990252 [ 4500056
490194 1 1 ]
simics_cycles_executed: 19924811 [ 4981096
4981713 4981001 4981001 ]
cycles_per_instruction: 3.99266 [ 1.1069
10.1615 4.9811e+06 4.9811e+06 ]
misses_per_thousand_instructions: 1.17529 [
0.377995 8.4946 0 0 ]
As you said, not advancing CPU in opal is
the same as disabling the simics, so why they differed so much?
The opal + ruby runs for 10,000,000 but not
finished, while the simics+ruby finishes in 450056 insts…
I am so confused..
Regards
shuchang