Draft result filtering methodology section + expand wamr native call section
This commit is contained in:
@@ -94,6 +94,7 @@ where \(\mathbf{1}\{o_{c,b} = o\}\) is the indicator function, which equals one
|
||||
In terms of \Gls{fail}'s database, this corresponds to summing \code{t.time2 - t.time1 + 1} after joining the trace intervals to their \gls{pilot} results and grouping them by outcome.
|
||||
The join accounts for the individual injected bits, so no additional factor for the bit width is required in the sum.
|
||||
}
|
||||
\todo[inline]{Don't put this in a footnote, put it in controlling what data gets extracted from the experiments}
|
||||
|
||||
Weighted outcome totals are reported separately for each fault category, execution mode and injection location (memory, registers or instruction-pointer).
|
||||
Outcome shares describe the composition of each variant's fault space, while absolute totals show differences in vulnerability caused by executaion duration and memory footprint.
|
||||
|
||||
@@ -6,4 +6,10 @@
|
||||
|
||||
\section{Result Filtering}\label{sec:resultfiltering}
|
||||
|
||||
To analyse specific facets of a system under fault-injection, parts of the observed outcomes and generated measures can be excluded from evaluations.
|
||||
Experiments in this thesis aim to characterize program behavior under transient fault conditions regarding its execution mode, so additional overhead caused by, e.g., \Gls{wamr} runtime components is included in the analysis.
|
||||
Overhead introduced solely by fault-injection instrumentation is excluded, it is an artifact of the measurement process.
|
||||
|
||||
\todo[inline]{Depending on what I do in the evaluations, this needs expansion}
|
||||
|
||||
\end{document}
|
||||
|
||||
@@ -71,9 +71,12 @@ To circumvent this, \Gls{wamr}'s native function invocation mechanism can be use
|
||||
|
||||
This registration populates a lookup table that maps the native function pointers to their names, so that \Gls{aot} programs can call \Gls{wamr}'s internal \code{aot\_invoke\_native} and interpreted programs can call \code{wasm\_interp\_call\_func\_native} to invoke those functions.
|
||||
This indirection happens implicitly, on the application level no special steps need to be taken, functions can be called by their registered names.
|
||||
|
||||
To be compatible with the native function registration mechanism, functions need to accept the \Gls{wasm} execution environment as an argument (see \autoref{lst:wamrnativefunctions}).
|
||||
|
||||
It is important to consider that this native call mechanism introduces additional overhead that provides additional attack surface during fault-injection.
|
||||
The return from the \code{fail\_start\_trace} call, the entry into the \code{fail\_stop\_trace} call and the entireties of any other marker calls within the traced region are susceptible to faults unintended in the experiment design: the source code instrumentation should only steer the fault-injection process, not interact with the workload execution itself.
|
||||
How to counteract this limitation is described later, in \autoref{sec:resultfiltering} and \autoref{sec:resultextractionandqueries}.
|
||||
|
||||
\subsubsection{Wasm Module Instantiation and Execution}\label{sssec:wamrmoduleexecution}
|
||||
|
||||
To load the workload's \Gls{wasm} module and run it, a series of steps need to be executed:
|
||||
@@ -85,12 +88,12 @@ To load the workload's \Gls{wasm} module and run it, a series of steps need to b
|
||||
\item Call the exported entry function (\code{wasm\_runtime\_call\_wasm})
|
||||
\end{enumerate}
|
||||
|
||||
In this thesis, compiled \Gls{wasm} modules are converted to C-style arrays using \code{xxd} and embedded into the program's source text.
|
||||
This way, file access can be avoided and the module is loaded by simply passing a pointer to the correct function.
|
||||
A simplified module call sequence is shown in \autoref{lst:wamrmodulecall}.
|
||||
|
||||
\begin{codeblock}[label=lst:wamrmodulecall]{Calling a \Gls{wasm} module from C.}{C++}
|
||||
\inputminted{cpp}{listings/wamrmodulecall.cpp}
|
||||
\end{codeblock}
|
||||
|
||||
In this thesis, compiled \Gls{wasm} modules are converted to C-style arrays using \code{xxd} and embedded into the program's source text.
|
||||
This way, file access can be avoided and the module is loaded by simply passing a pointer to the correct function.
|
||||
A simplified module call sequence is shown in \autoref{lst:wamrmodulecall}.
|
||||
|
||||
\end{document}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
\begin{document}
|
||||
|
||||
\section{Controlling What Data Gets Extracted From The Experiments}
|
||||
\section{Result Extraction and Database Queries}\label{sec:resultextractionandqueries}
|
||||
|
||||
\begin{itemize}
|
||||
\item What queries are run?
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
%! TeX program = lualatex
|
||||
%! TeX root = ../../thesis.tex
|
||||
\documentclass[../../thesis.tex]{subfiles}
|
||||
|
||||
\begin{document}
|
||||
|
||||
% \addchap{Compilation Options}\label{ch:compilationoptions}
|
||||
\chapter{Compilation Options}\label{ch:compilationoptions}
|
||||
|
||||
\end{document}
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
\begin{document}
|
||||
|
||||
% \addchap{Examples}\label{ch:examples}
|
||||
% \addchap{Experiment Results}\label{ch:experimentresults}
|
||||
\chapter{Experiment Results}\label{ch:experimentresults}
|
||||
|
||||
\end{document}
|
||||
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 610 KiB After Width: | Height: | Size: 610 KiB |
+5
-2
@@ -55,10 +55,13 @@
|
||||
\appendix
|
||||
% \pagenumbering{Roman}
|
||||
|
||||
\subfile{chapters/0A_results/0A_00_results.tex}
|
||||
\subfile{chapters/0A_compilation_options/0A_00_compilation_options.tex}
|
||||
\cleardoublepage%
|
||||
|
||||
\subfile{chapters/0B_sanity/0B_00_sanity_checks.tex}
|
||||
\subfile{chapters/0B_results/0B_00_results.tex}
|
||||
\cleardoublepage%
|
||||
|
||||
\subfile{chapters/0C_sanity/0C_00_sanity_checks.tex}
|
||||
\cleardoublepage%
|
||||
|
||||
\end{document}
|
||||
|
||||
@@ -105,3 +105,16 @@ date,wordcount
|
||||
2026-09-12T13:27:44+02:00,10236
|
||||
2026-09-12T13:28:26+02:00,10237
|
||||
2026-09-12T13:58:35+02:00,10237
|
||||
2026-09-12T14:31:54+02:00,10252
|
||||
2026-09-12T14:32:24+02:00,10254
|
||||
2026-09-12T15:01:16+02:00,10317
|
||||
2026-09-12T15:01:42+02:00,10317
|
||||
2026-09-12T15:01:56+02:00,10315
|
||||
2026-09-12T15:02:10+02:00,10315
|
||||
2026-09-12T15:02:50+02:00,10315
|
||||
2026-09-12T15:06:17+02:00,10324
|
||||
2026-09-12T15:11:33+02:00,10397
|
||||
2026-09-12T15:15:52+02:00,10400
|
||||
2026-09-12T15:19:31+02:00,10407
|
||||
2026-09-12T15:22:01+02:00,10476
|
||||
2026-09-12T15:22:34+02:00,10510
|
||||
|
||||
|
Reference in New Issue
Block a user