Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ycai
simbricks
Commits
3c4099b5
Commit
3c4099b5
authored
Sep 10, 2020
by
Hejing Li
Browse files
common check point for replicated experiments
parent
f2ea351c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
7 deletions
+85
-7
experiments/Makefile
experiments/Makefile
+42
-7
experiments/experiments/gem5-timing-corundum-verilator-pair-cp-mck.sh
...experiments/gem5-timing-corundum-verilator-pair-cp-mck.sh
+22
-0
experiments/experiments/gem5-timing-corundum-verilator-pair-cp.sh
...nts/experiments/gem5-timing-corundum-verilator-pair-cp.sh
+21
-0
No files found.
experiments/Makefile
View file @
3c4099b5
...
...
@@ -73,6 +73,16 @@ EXPERIMENTS := \
gem5-timing-corundum-verilator-pair-udp-100m
\
gem5-timing-corundum-verilator-pair-udp-150m
\
#experiments using check points
EXP_CP
:=
\
gem5-timing-corundum-verilator-pair-cp
\
#experiments not using check points
EXP_NCP
:=
\
qemu-corundum-bm-pair
\
qemu-corundum-bm-switched-1
\
# all experiments in repo
ALL_EXPERIMENTS
:=
\
$(EXPERIMENTS)
\
...
...
@@ -96,6 +106,8 @@ OUTDIR := out
GUESTS_TARS
:=
$(
addprefix
$(BUILDDIR)
/,
$(
addsuffix
.tar,
$(GUESTS)
))
EXPERIMENTS_READY
:=
$(
addprefix
$(OUTDIR)
/,
$(
addsuffix
/ready,
$(EXPERIMENTS)
))
EXP_CP_READY
:=
$(
addprefix
$(OUTDIR)
/,
$(
addsuffix
/ready,
$(EXP_CP)
))
EXP_NCP_READY
:=
$(
addprefix
$(OUTDIR)
/,
$(
addsuffix
/ready,
$(EXP_NCP)
))
all
:
guest-tars experiments
...
...
@@ -105,20 +117,43 @@ clean:
#######################################
# Running experiments
REPLIDS
:=
$(
shell
seq
$(REPLICATION)
)
experiments-ncp
:
$(EXP_NCP_READY)
experiments-cp
:
$(EXP_CP_READY)
experiments
:
$(EXPERIMENTS_READY)
define
run_ex
periment
_repl
$(OUTDIR)/
%
/$(
1
)/ready
:
experiments/
%.sh
$(GUESTS_TARS)
bash
$$
<
$(
1
)
define
run_ex
_ncp
_repl
$(OUTDIR)/
$(1)
/$(
2
)/ready
:
experiments/
$(addsuffix .sh
,
$(1))
$(GUESTS_TARS)
bash
$$
<
$(
2
)
touch
$$
@
endef
REPLIDS
:=
$(
shell
seq
$(REPLICATION)
)
define
run_ex_ncp
$(foreach
i,$(REPLIDS),$(eval
$(call
run_ex_ncp_repl,$(1),$(i))))
$(OUTDIR)/$(1)/ready
:
experiments/$(addsuffix .sh
,
$(1)) $(addprefix $(OUTDIR)/$(1)/
,
$(addsuffix /ready
,
$(REPLIDS)))
touch
$$
@
endef
$(foreach
i,$(REPLIDS),
$(eval
$(call
run_experiment_repl,$(i))))
define
run_ex_cp_repl
$(OUTDIR)/$(1)/$(2)/ready
:
experiments/$(addsuffix .sh
,
$(1)) $(OUTDIR)/$(1)/checkpoint/ready $(GUESTS_TARS)
bash
$$
<
$(2)
touch
$$
@
endef
$(OUTDIR)/%/ready
:
experiments/%.sh $(addprefix $(OUTDIR)/%/
,
$(addsuffix /ready
,
$(REPLIDS)))
touch
$@
define
run_ex_cp
$(foreach
i,$(REPLIDS),$(eval
$(call
run_ex_cp_repl,$(1),$(i))))
$(OUTDIR)/$(1)/checkpoint/ready
:
experiments/$(addsuffix -mck.sh
,
$(1)) $(GUESTS_TARS)
bash
$$
<
touch
$$
@
$(OUTDIR)/$(1)/ready
:
experiments/$(addsuffix .sh
,
$(1)) $(addprefix $(OUTDIR)/$(1)/
,
$(addsuffix /ready
,
$(REPLIDS)))
touch
$$
@
endef
$(foreach
sc,
$(EXP_CP),$(eval
$(call
run_ex_cp,$(sc))))
$(foreach
sc,
$(EXP_NCP),$(eval
$(call
run_ex_ncp,$(sc))))
#######################################
# Guest Tars
...
...
experiments/experiments/gem5-timing-corundum-verilator-pair-cp-mck.sh
0 → 100644
View file @
3c4099b5
#!/bin/bash
source
common-functions.sh
init_out gem5-timing-corundum-verilator-pair-cp checkpoint
# first run to checkpoint with fast CPU
run_corundum_verilator a
run_corundum_verilator b
sleep
2
run_wire ab a b
sleep
1
run_gem5 a a build/gem5-pair-server-cp.tar X86KvmCPU server
sleep
1
run_gem5 b b build/gem5-pair-client-cp.tar X86KvmCPU client
client_pid
=
$!
wait
$client_pid
cleanup
echo
"Took checkpoint successfully"
experiments/experiments/gem5-timing-corundum-verilator-pair-cp.sh
0 → 100644
View file @
3c4099b5
#!/bin/bash
source
common-functions.sh
init_out gem5-timing-corundum-verilator-pair-cp
$1
echo
"Restoring from checkpoint"
# then run with timing CPU
run_corundum_verilator a_cp
run_corundum_verilator b_cp
sleep
2
run_wire ab_cp a_cp b_cp
sleep
1
run_gem5 a_cp a_cp build/gem5-pair-server-cp.tar TimingSimpleCPU server
"-r 0 --cosim-sync"
sleep
1
run_gem5 b_cp b_cp build/gem5-pair-client-cp.tar TimingSimpleCPU client
"-r 0 --cosim-sync"
client_pid
=
$!
wait
$client_pid
cleanup
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment