Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
i4
manycore
syscall-eval
Commits
449b7a8e
Commit
449b7a8e
authored
Aug 02, 2021
by
Florian Fischer
Browse files
add dataref target
parent
de592221
Pipeline
#66519
passed with stage
in 1 minute and 12 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
449b7a8e
BENCH_MAIN
:=
bench.c
SYSCALLS
:=
blocking io-uring io-uring-sqpoll io-uring-no-syscall epoll paio-sig paio-thrd
STATS
?=
OBJ
:=
$(
addprefix
bench-,
$(SYSCALLS)
)
LDFLAGS
:=
-luring
-pthread
-lrt
-lm
...
...
@@ -10,20 +8,26 @@ LDFLAGS := -luring -pthread -lrt -lm
CFLAGS
:=
-Werror
-Wall
-g
-O3
# CFLAGS := -Werror -Wall -g -O0
.PHONY
:
all clean eval
eval-
stats docker-eval docker-
eval-
stats check
.PHONY
:
all clean eval stats
dataref
docker-eval docker-stats
docker-dataref
check
eval
:
all
@
for
syscall
in
$(SYSCALLS)
;
do
./bench-
$$
syscall
$(STATS)
;
done
@
for
syscall
in
$(SYSCALLS)
;
do
echo
-n
"
$$
syscall "
;
./bench-
$$
syscall
;
done
stats
:
@
for
syscall
in
$(SYSCALLS)
;
do
echo
"
$$
syscall:"
;
./bench-
$$
syscall
--stats
;
done
eval-stats
:
@
$(MAKE)
STATS
=
--stats
eval
dataref
:
@
$(MAKE)
eval-stats | tools/yaml2dataref.sh
docker-eval
:
./docker.sh make
eval
docker-
eval-
stats
:
docker-stats
:
./docker.sh make eval-stats
docker-dataref
:
./docker.sh make dataref
all
:
$(OBJ)
define
generateTargets
...
...
bench.c
View file @
449b7a8e
...
...
@@ -54,13 +54,12 @@ int main(int argc, char *argv[]) {
}
if
(
print_stats
)
{
printf
(
"%s:
\n
"
,
argv
[
0
]);
print_desc_stats
(
"nanos"
,
" "
,
nanos
,
exp_iterations
);
print_desc_stats
(
"cycles"
,
" "
,
cycles
,
exp_iterations
);
}
else
{
uint64_t
avg_nanos
=
calc_mean
(
nanos
,
exp_iterations
);
uint64_t
avg_cycles
=
calc_mean
(
cycles
,
exp_iterations
);
printf
(
"
%s
avg-nanos: %lu, avg-cycles: %lu
\n
"
,
argv
[
0
],
avg_nanos
,
avg_cycles
);
printf
(
"avg-nanos: %lu, avg-cycles: %lu
\n
"
,
avg_nanos
,
avg_cycles
);
}
free
(
nanos
);
...
...
stats.c
View file @
449b7a8e
...
...
@@ -62,7 +62,7 @@ void print_desc_stats(const char* name, const char* indentation, const uint64_t*
const
uint64_t
var
=
calc_var
(
data
,
size
,
mean
);
const
uint64_t
std
=
(
uint64_t
)
sqrt
((
double
)
var
);
printf
(
"%s%s
\n
"
,
indentation
,
name
);
printf
(
"%s%s
:
\n
"
,
indentation
,
name
);
printf
(
"%s%smin: %lu
\n
"
,
indentation
,
indentation
,
min
);
printf
(
"%s%smax: %lu
\n
"
,
indentation
,
indentation
,
max
);
printf
(
"%s%smedian: %lu
\n
"
,
indentation
,
indentation
,
median
);
...
...
tools/yaml2dataref.sh
0 → 100755
View file @
449b7a8e
#!/bin/bash
# taken from here:
# https://stackoverflow.com/questions/5014632/how-can-i-parse-a-yaml-file-from-a-linux-shell-script
s
=
'[[:space:]]*'
w
=
'[a-zA-Z0-9_]*'
fs
=
$(
echo
@|tr @
'\034'
)
sed
-ne
"s|^
\(
$s
\)
:|
\1
|"
\
-e
"s|^
\(
$s
\)\(
$w
\)
$s
:
${
s
}
[
\"
']
\(
.*
\)
[
\"
']
$s
\$
|
\1
$fs
\2
$fs
\3
|p"
\
-e
"s|^
\(
$s
\)\(
$w
\)
$s
:
$s
\(
.*
\)
$s
\$
|
\1
$fs
\2
$fs
\3
|p"
|
awk
-F
"
$fs
"
'{
indent = length($1)/2;
vname[indent] = $2;
for (i in vname) {if (i > indent) {delete vname[i]}}
if (length($3) > 0) {
vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("/")}
printf("\\setdref{%s%s}{%s}\n", vn, $2, $3);
}
}'
Write
Preview
Supports
Markdown
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