Compare commits

...

2 Commits

3 changed files with 45 additions and 35 deletions

View File

@ -1,11 +0,0 @@
services:
fail-db:
image: mysql
container_name: fail-db
environment:
MYSQL_ROOT_PASSWORD: fail
MYSQL_USER: fail
MYSQL_PASSWORD: fail
MYSQL_DATABASE: fail
ports:
- "3306:3306"

View File

@ -44,8 +44,8 @@ rec {
libdwarf_pkgs = libdwarf_pkgs =
import (builtins.fetchTarball { import (builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/a054d7450768069084142fe597ed2da367813a4a.tar.gz"; url = "https://github.com/NixOS/nixpkgs/archive/f597e7e9fcf37d8ed14a12835ede0a7d362314bd.tar.gz";
sha256 = "sha256:1wlbz6glkzrl3y7pprw1v4sgkwwzi26qlxqfjzxghdlnny91l3cj"; sha256 = "sha256:1l79hh7jh7m8yc5mvc8dbg6s8rf30bgm994kf07xriqbzwfn158r";
}) { }) {
inherit system; inherit system;
}; };
@ -250,7 +250,7 @@ rec {
''; '';
}; };
wamr = stdenv.mkDerivation rec { wamr = stdenv.mkDerivation {
pname = "wamr"; pname = "wamr";
version = "2.4.4"; version = "2.4.4";
@ -274,7 +274,7 @@ rec {
}; };
libiwasm = buildtype: flags: libiwasm = buildtype: flags:
i386_pkgs.stdenv.mkDerivation rec { i386_pkgs.stdenv.mkDerivation {
pname = "libiwasm"; pname = "libiwasm";
version = "2.4.4"; version = "2.4.4";
@ -315,7 +315,7 @@ rec {
}; };
libiwasm_debug = libiwasm "Debug" "-O0 -ggdb"; libiwasm_debug = libiwasm "Debug" "-O0 -ggdb";
libiwasm_release = libiwasm "Release" "-O2 -DNDEBUG"; libiwasm_release = libiwasm "Release" "-O2 -ggdb -DNDEBUG";
# =========================================================================================== # ===========================================================================================
# Specify dependencies # Specify dependencies
@ -334,6 +334,7 @@ rec {
grub2 grub2
xorriso xorriso
mariadb.client mariadb.client
dbeaver-bin
iwasm iwasm
wamrc wamrc
fail-bin fail-bin

View File

@ -37,7 +37,7 @@ WAMRCFLAGS := "\
" "
XXD := "xxd" XXD := "xxd"
# Load AOT from WAMR # Load AOT from WAMR (FAIL+Baremetal)
CROSS_CFLAGS := "\ CROSS_CFLAGS := "\
-I./targets/wasm-host \ -I./targets/wasm-host \
@ -147,15 +147,32 @@ FAIL_SERVER := "generic-experiment-server --database-option-file ./db.conf"
FAIL_INJECT := "generic-experiment-client" FAIL_INJECT := "generic-experiment-client"
RESULT_BROWSER := "resultbrowser.py -c ./db.conf" RESULT_BROWSER := "resultbrowser.py -c ./db.conf"
[doc("Start MySQL to receive FAIL* trace/campaign results")] [doc("Start MySQL container to receive FAIL* trace/campaign results")]
[group("fail")] [group("fail")]
start-db: start-db:
docker compose up docker run -d \
--name fail-db \
-e MYSQL_ROOT_PASSWORD=fail \
-e MYSQL_USER=fail \
-e MYSQL_PASSWORD=fail \
-e MYSQL_DATABASE=fail \
-p 3306:3306 \
mysql
[doc("Stop MySQL")] [doc("Connect to MySQL database using DBeaver")]
[group("fail")]
connect-db:
dbeaver -con "name=fail|driver=mysql|host=localhost|port=3306|database=fail|user=fail|password=fail"
[doc("Stop MySQL container")]
[group("fail")] [group("fail")]
stop-db: stop-db:
docker compose down docker stop fail-db
[doc("Remove MySQL container")]
[group("fail")]
remove-db:
docker container rm fail-db
[doc("Trace a golden run using FAIL*")] [doc("Trace a golden run using FAIL*")]
[group("fail")] [group("fail")]
@ -176,6 +193,11 @@ trace module:
-Wf,--elf-file={{ BUILD_DIR }}-{{ module }}/system.elf -Wf,--elf-file={{ BUILD_DIR }}-{{ module }}/system.elf
@echo "Next step: \"just import {{ module }}\"" @echo "Next step: \"just import {{ module }}\""
# [doc("Dump a FAIL* golden run trace")]
# [group("fail")]
# dump module:
# {{ FAIL_DUMP }} {{ BUILD_DIR }}-{{ module }}/trace.pb
[doc("Import a FAIL* golden run trace")] [doc("Import a FAIL* golden run trace")]
[group("fail")] [group("fail")]
import module: import module:
@ -185,20 +207,18 @@ import module:
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs --flags -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs --flags
{{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i RegisterImporter \ {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i RegisterImporter \
-e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip --no-gp --ip -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip --no-gp --ip
# TODO: Failed to decode DWARF data - wrong libdwarf version? {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \ {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b mem
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \ {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b mem -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \ {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip --sources
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \ {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b ip --sources -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b mem --sources
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \ {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b mem --sources -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs --sources
# {{ FAIL_IMPORT }} -t {{ BUILD_DIR }}-{{ module }}/trace.pb -i ElfImporter --objdump objdump \
# -e {{ BUILD_DIR }}-{{ module }}/system.elf -v {{ module }} -b regs --sources
{{ FAIL_PRUNE }} -v {{ module }} -b %% --overwrite {{ FAIL_PRUNE }} -v {{ module }} -b %% --overwrite
@echo "Next step: \"just server {{ module }}\"" @echo "Next step: \"just server {{ module }}\""