Hi,

We are trying to get per-CPU-cycle data from gem5 and we are using 
“periodicStatDump(n)” to get the data, where n is the rounded inverse of CPU 
frequency in picoseconds. For our 3.7 GHz X86 CPU, n would be 270 (in 
picosecond)

When invoking peridoicStatDump(n) with a small n (we are using n = 270),  the 
stat from Gem5 becomes apparently unreliable. Since I can’t upload picture 
here, here is a google doc link instead:
https://docs.google.com/document/d/1dBIwWeaC-QXqGX8ozcLaKFkMxnFGhYeJq6FVgf6g8l4/edit?usp=sharing

Here is a brief description of the figures in the google doc:

1.       Only core0’s numCycle (number of CPU cycle) is “around” 1 and the 
other core1 shows mostly 0 CPU cycles. I believe it implies that core1 is not 
working.

2.       For the working core0, its numCycle shoots up to hundreds occasionally 
(absolutely not expected), where it should be constantly 1.

3.       If we calculate the average CPU cycles of core0 for all the dumps, it 
is close to 1.

4.       We also did some experiments with n = 270 * 10, 270 * 100 and 270 * 
4400000, all had kind of similar results.

5.       We tried to use m5ops in rcS file. By setting “dumpresetstats 0 1”, it 
gives CPU cycles in millions.

Please note, I am confident to claim that strange behaviors of both cores 
persist regardless of the usage of checkpoint, the usage of ruby, changing 
n=270 to 271 or the completion of booting process. None of those factors matter.

To further illustrate the problem and reproduce the scenario, here are more 
details.
The Gem5 was compiled using X86_MOESI_hammer which is renamed from 
NULL_MOESI_hammer.
All configurations used are from default fs.py and some minimal changes has 
been made to invoke periodicStatDump. ( 1 line for import and 1 line for call). 
Here are the configs:

$x865/build/X86_MOESI_hammer/gem5.opt \
--outdir=$dump/$1 \
$fs/fs_pdump.py \
--script=$rcs/fluidanimate_2c_simsmall.rcS \
--kernel=$tool/FS_util/binaries/x86_64-vmlinux-2.6.22.9.smp \
--disk-image=$tool/FS_util/disks/x86root-parsec.img \
--cpu-type=DerivO3CPU \
--sys-clock='3.7GHz' \
--cpu-clock='3.7GHz' \
--sys-voltage='0.8V' \
--l1i_size=32kB \
--l1d_size=32kB \
--l2_assoc=8 \
--caches \
--l2cache \
--l2_size=2MB \
--num-cpus=2 \
--mem-size='2GB' \
--dumpcycles=1 \
--ruby \

The command in $rcs/fluidanimate_2c_simsmall.rcS is here:

#!/bin/sh
# File to run the fluidanimate benchmark
cd /parsec/install/bin
echo "start"
./fluidanimate 2 5 /parsec/install/inputs/fluidanimate/in_35K.fluid 
/parsec/install/inputs/fluidanimate/out.fluid
echo "Done :D"
/sbin/m5 exit

Sincerely request help,
Yi Shen

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to