Hi,
As far as I know, there is no simple solution to collect the QoS statistics.
All workloads in cloudsuite images are configured to run for really long
time. In typical simulations, we would run the workload for 10-30 seconds
of real-time. But, at the end of this, faban would not have dumped the
final summary file. There are two ways to solve this issues.
1) Modify the workload(client side) to run for fix amount of time - say 10
seconds. Once the simulation finishes, write the current state of simics
image to some directory (See *write-configuration* command in simics). Then
load this new checkpoint using simics and copy the summary file to the host
machine. This write-configuration is really important step as simics would
not modify the current checkpoint.
2) In this method, you insert magic points in the workloads to indicate
start and end of a request ( check simics documentation on *magic
instructions* and *hap/callbacks*). You can associate callbacks in simics
for different magic points. In your custom callbacks you can track the
start and end of request and measure the latency(number of instructions or
cycles) by yourself. In this case, you rely on faban like client to
generate requests, but you will have to generate statistics by yourself. I
know that some workloads already contains magic points. For others, you can
insert it by yourself, recompile them and create new checkpoints.
Run following to see if the workload already has any magic points.
bash $> simics ~/ckptdir/nutch/1cpu/baseline/phase_000/simics/phase_000
$ simics>run-command-file ~/magic
$ simics>continue
magic break on server_cpu0 = 210 l1: = 9691 l2 = 0 l3 = 7
magic break on server_cpu0 = 212 l1: = 18446744073709551615 l2 = 0 l3 =
18446744073709551615
magic break on server_cpu0 = 213 l1: = 18446744073709551615 l2 = 0 l3 =
18446744073709551615
magic break on server_cpu0 = 211 l1: = 9691 l2 = 0 l3 = 7
magic break on server_cpu0 = 210 l1: = 9692 l2 = 0 l3 = 7
magic break on server_cpu0 = 212 l1: = 18446744073709551615 l2 = 0 l3 =
18446744073709551615
magic break on server_cpu0 = 213 l1: = 18446744073709551615 l2 = 0 l3 =
18446744073709551615
magic break on server_cpu0 = 211 l1: = 9692 l2 = 0 l3 = 7
If you do not see prints like above after 2B of instruction simulations,
the workload probably doesn't contain any magic instructions.
Interpretation of these magic points is user dependent and will most likely
be different for every workload. You can check the source code to see how
they are inserted and what values they might contain.
For example, in above case, 210, 211 etc are the type of request. l1
contains the request id when the type is 210/211. l2 and l3 probably are
don't care. Here, 210 is the start of a request and 211 is the end of a
request.
When you run the simulations in timing mode using sampling, both of these
methods will not work. To get the QoS statistics, you will need to run the
entire simulation for some reasonable duration after warming up.
*Magic file contains follwing* :
_hap_callback(user_arg, cpu, arg):
$l0 = SIM_get_register_number($cpu, "l0")
$arg1 = SIM_read_register($cpu, l0)
print "magic break = ", $arg, " arg1 = ", $arg1
@SIM_hap_add_callback("Core_Magic_Instruction", cmi_hap_callback, None)
Hope, I answered your queries.
Cheers,
pF
On Tue, 1 Dec 2015 at 08:50 jing wang <[email protected]> wrote:
> I have the same question duiring using simflex to run cloudsuite.
> when the client runing, it will write output to target local disk
> /tmp/output/*number_of_run/summary.xml*
> But I find in the simcis configuration file, all disks are configured
> readonly(ro),does that means the summary will not wirte to target client
> disk
> Meanwhile phase_000.raw and all craff files are all unchanged.
>
> If I want to collect latency statictics, where should I find the
> summary.xml file after each run?
>
> 2015-11-30 8:58 GMT+08:00 suixiufeng <[email protected]>:
>
>>
>>
>
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.