Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 00afee5

Browse files
committed
feat(palier5b): RadFI v1 paper -- LaTeX port from markdown, IEEEtran lualatex, 9 pages
Companion methodology paper to BEAMFS v2 (commit 52260d0, v1.0.0-paper-zenodo-pending). Original paper.md (40 KB markdown) ported to native LaTeX following the BEAMFS v2 paper.tex skeleton (IEEEtran 2-column 10pt A4 lualatex). Pandoc onecolumn fallback was rejected for visual coherence with BEAMFS v2. Contents: - paper.tex: IEEEtran preamble (135 lines) - refs.bib: 16 bibliography entries (BEAMFS v1/v2, Xception, EDFI, Dodd-Massengill, Baumann, Petersen, LDD3, xoshiro256**, kernel docs, seL4, kprobes LWN, Le Cam, Popper) - sections/00..10: 11 modular section files (1032 lines total) - aurelien-desbrieres-radfi-v1-20260429.pdf: built artefact (9 pages) Theorem IV.1 (faithfulness of RadFI as SEU emulator) with full proof in appendix using Le Cam's theorem (binomial-to-Poisson total variation bound). Empirical contributions: - Falsification of BEAMFS v1 Theorem IV.1 (2026-04-28): 7/1024 silent corruption with RadFI v0.1.0 write hook 1000 PPM - Confirmation of BEAMFS v2 INLINE recovery (2026-04-29): byte-perfect recovery + autonomic in-place repair on canary block via dd-based corruption Anti-NAK science + anti-NAK kernel.org compliance pass: - Theorem numbering IV.x explicit (via thedefinition counter) - Le Cam's theorem citation for binomial->Poisson convergence bound (replaces incorrect Berry-Esseen attribution) - bar{b} expectation defined formally - p_R calibration dimensional analysis disclosed - v0.1.0/v0.1.1/v0.1.2 versioning rationale clarified - BEAMFS-COMPATIBLE magic removed (not in code) - format-v4 spec referenced via beamfs-impl bib entry - Peer review wording softened (coordinated public release) - GFP_ATOMIC vs GFP_KERNEL contexts documented - Kprobe blacklist verification noted - Singleton vs per-CPU rationale (F4 replay determinism) - Module unload synchronize_rcu noted - kprobe vs fprobe migration plan stated (v2) - aarch64 vs x86_64 register access disclosed (regs->regs[0] vs regs->di) - READ_ONCE double-load hazard caveat - bio_vcnt + bi_size safety checks noted - Conformance fixture SHA-256 in Section IX (normative)
1 parent 52260d0 commit 00afee5

15 files changed

Lines changed: 1251 additions & 13 deletions

papers/2026-04-radfi-v1/Makefile

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,15 @@
11
# RadFI v1 paper Makefile
2-
# Convert markdown -> PDF via pandoc + lualatex
3-
# Cible: paper.pdf, IEEEtran 2-column 10pt A4
4-
2+
# Build: latexmk -lualatex paper.tex
3+
# Output: paper.pdf, IEEEtran 2-column 10pt A4
54
PAPER = paper
65

76
all: $(PAPER).pdf
87

9-
$(PAPER).pdf: $(PAPER).md
10-
pandoc $(PAPER).md \
11-
--from markdown \
12-
--to pdf \
13-
--pdf-engine=lualatex \
14-
--variable documentclass=IEEEtran \
15-
--variable classoption=conference \
16-
--variable papersize=a4 \
17-
--variable fontsize=10pt \
18-
--output $(PAPER).pdf
8+
$(PAPER).pdf: $(PAPER).tex refs.bib sections/*.tex
9+
latexmk -lualatex -interaction=nonstopmode $(PAPER).tex
1910

2011
clean:
12+
latexmk -C
2113
rm -f $(PAPER).pdf
2214

2315
.PHONY: all clean
Binary file not shown.

papers/2026-04-radfi-v1/paper.tex

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
% RadFI v1 -- Methodology Paper
2+
% Author: Aurelien DESBRIERES
3+
% License: CC-BY-4.0 (text), GPL-2.0 (code references)
4+
% Build: latexmk -lualatex paper.tex
5+
6+
\documentclass[10pt,conference,a4paper]{IEEEtran}
7+
8+
% --- LuaLaTeX font stack ---
9+
\usepackage{fontspec}
10+
\usepackage{unicode-math}
11+
\setmainfont{Latin Modern Roman}
12+
\setsansfont{Latin Modern Sans}
13+
\setmonofont{Latin Modern Mono}
14+
\setmathfont{Latin Modern Math}
15+
16+
% --- Math ---
17+
\usepackage{amsmath}
18+
\usepackage{mathtools}
19+
20+
% --- Theorem environments ---
21+
\usepackage{amsthm}
22+
\usepackage{aliascnt}
23+
\newtheoremstyle{radfi-plain}%
24+
{0.4em}{0.4em}{\itshape}{0pt}{\bfseries}{.}{0.5em}{}%
25+
\theoremstyle{radfi-plain}
26+
\newtheorem{definition}{Definition}[section]
27+
\newaliascnt{theoremaux}{definition}
28+
\newtheorem{theorem}[theoremaux]{Theorem}
29+
\aliascntresetthe{theoremaux}
30+
\newaliascnt{lemmaaux}{definition}
31+
\newtheorem{lemma}[lemmaaux]{Lemma}
32+
\aliascntresetthe{lemmaaux}
33+
\newtheoremstyle{radfi-remark}%
34+
{0.4em}{0.4em}{}{0pt}{\bfseries}{.}{0.5em}{}%
35+
\theoremstyle{radfi-remark}
36+
\newtheorem*{remark}{Remark}
37+
38+
% --- Tables ---
39+
\usepackage{booktabs}
40+
\usepackage{tabularx}
41+
\usepackage{multirow}
42+
43+
% --- Figures ---
44+
\usepackage{graphicx}
45+
46+
% --- Code listings ---
47+
\usepackage{listings}
48+
\usepackage{xcolor}
49+
\lstset{
50+
basicstyle=\ttfamily\footnotesize,
51+
breaklines=true,
52+
showstringspaces=false,
53+
commentstyle=\itshape\color{gray!70!black},
54+
keywordstyle=\bfseries,
55+
language=C,
56+
numbers=none,
57+
xleftmargin=0.5em,
58+
}
59+
60+
% --- URLs and breakable hashes ---
61+
\usepackage{xurl}
62+
\usepackage{seqsplit}
63+
64+
% --- Bibliography ---
65+
\usepackage[backend=biber,style=ieee,sorting=none,maxbibnames=5,
66+
doi=true,url=true,isbn=false]{biblatex}
67+
\addbibresource{refs.bib}
68+
69+
% --- Cross-references ---
70+
\usepackage{hyperref}
71+
\hypersetup{
72+
colorlinks=true,
73+
linkcolor=blue!50!black,
74+
citecolor=blue!50!black,
75+
urlcolor=blue!50!black,
76+
pdftitle={RadFI v1: An Algebraic Fault Injection Operator for Empirical Filesystem Resilience Validation},
77+
pdfauthor={Aurelien DESBRIERES},
78+
pdfsubject={Fault injection; SEU emulation; Filesystem resilience; Falsification; Linux kernel},
79+
pdfkeywords={RadFI, fault injection, SEU emulation, filesystem resilience, falsification, BEAMFS, Reed-Solomon, Linux kernel, kprobe},
80+
}
81+
\usepackage[capitalize,noabbrev]{cleveref}
82+
\crefname{theoremaux}{Theorem}{Theorems}
83+
\Crefname{theoremaux}{Theorem}{Theorems}
84+
\crefname{lemmaaux}{Lemma}{Lemmas}
85+
\Crefname{lemmaaux}{Lemma}{Lemmas}
86+
87+
\usepackage{microtype}
88+
\usepackage{xspace}
89+
\usepackage{enumitem}
90+
\usepackage{placeins}
91+
\setlist{nosep,leftmargin=1.5em}
92+
93+
% =====================================================================
94+
\title{\large\bfseries RadFI:\\
95+
An Algebraic Fault Injection Operator for\\
96+
Empirical Filesystem Resilience Validation\\
97+
\normalsize\mdseries Falsifying Recovery Theorems through\\
98+
Controlled SEU Emulation in the Linux Kernel\\
99+
\small\itshape Technical Report -- Version 1}
100+
101+
\author{%
102+
\IEEEauthorblockN{Aur\'elien Desbri\`eres \textemdash{} Independent researcher}
103+
\IEEEauthorblockA{\href{https://orcid.org/0009-0002-0912-9487}{ORCID:~0009-0002-0912-9487} \quad
104+
105+
}
106+
107+
\begin{document}
108+
\maketitle
109+
110+
\begin{IEEEkeywords}
111+
Fault injection, Single-event upset emulation, Filesystem resilience,
112+
Falsification, Reed--Solomon, Linux kernel, kprobe, Recovery calculus,
113+
BEAMFS, Empirical validation
114+
\end{IEEEkeywords}
115+
116+
\begin{abstract}
117+
\input{sections/00-abstract}
118+
\end{abstract}
119+
120+
\input{sections/01-introduction}
121+
\input{sections/02-threat-model}
122+
\input{sections/03-perturbation-operator}
123+
\input{sections/04-faithfulness-theorem}
124+
\input{sections/05-from-math-to-code}
125+
\input{sections/06-empirical-contribution}
126+
\input{sections/07-scope-limitations}
127+
\input{sections/08-conclusion}
128+
129+
\onecolumn
130+
\small
131+
\input{sections/09-reproducibility}
132+
\input{sections/10-appendix-faithfulness-proof}
133+
134+
\printbibliography
135+
\end{document}

papers/2026-04-radfi-v1/refs.bib

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
% =====================================================================
2+
% RadFI v1 -- bibliography
3+
% =====================================================================
4+
5+
% [1] BEAMFS v1 (FTRFS lineage, retracted theorem)
6+
@misc{desbrieres2026beamfsv1,
7+
author = {Aur{\'e}lien Desbri{\`e}res},
8+
title = {{FTRFS}: {B}ringing Radiation-Robust Filesystem Principles to Contemporary {L}inux},
9+
year = 2026, month = apr,
10+
note = {Technical Report v1 (lineage paper; v1 Theorem IV.1 retracted following
11+
falsification reported in the present paper)},
12+
doi = {10.5281/zenodo.19824442},
13+
url = {https://doi.org/10.5281/zenodo.19824442},
14+
}
15+
16+
% [12] BEAMFS v2 (successor paper, published companion)
17+
@misc{desbrieres2026beamfsv2,
18+
author = {Aur{\'e}lien Desbri{\`e}res},
19+
title = {{BEAMFS} v2: {A} {L}inux Filesystem with Electromagnetic Resilience
20+
and {R}eed--{S}olomon Recovery},
21+
year = 2026, month = apr,
22+
note = {Technical Report v2. Companion to the present methodology paper.
23+
\texttt{roastercode/beamfs}, tag \texttt{v1.0.0-paper-zenodo-pending},
24+
commit \texttt{52260d0}.},
25+
url = {https://github.com/roastercode/beamfs/tree/v1.0.0-paper-zenodo-pending/papers/2026-04-beamfs-v2},
26+
}
27+
28+
% [2] Xception
29+
@article{carreira1998xception,
30+
author = {Jo{\~a}o Carreira and Henrique Madeira and Jo{\~a}o Gabriel Silva},
31+
title = {{Xception}: {A} technique for the experimental evaluation of
32+
dependability in modern computers},
33+
journal = {IEEE Transactions on Software Engineering},
34+
volume = 24, number = 2, pages = {125--136}, year = 1998,
35+
doi = {10.1109/32.666826},
36+
}
37+
38+
% [3] Hsueh, Tsai, Iyer
39+
@article{hsueh1997faultinjection,
40+
author = {Mei-Chen Hsueh and Timothy K. Tsai and Ravishankar K. Iyer},
41+
title = {Fault injection techniques and tools},
42+
journal = {Computer},
43+
volume = 30, number = 4, pages = {75--82}, year = 1997,
44+
doi = {10.1109/2.585157},
45+
}
46+
47+
% [4] EDFI
48+
@inproceedings{giuffrida2013edfi,
49+
author = {Cristiano Giuffrida and Anton Kuijsten and Andrew S. Tanenbaum},
50+
title = {{EDFI}: {A} dependable fault injection tool for dependability
51+
benchmarking experiments},
52+
booktitle = {Proc. IEEE 19th Pacific Rim Int. Symp. Dependable Computing},
53+
year = 2013, pages = {31--40},
54+
doi = {10.1109/PRDC.2013.12},
55+
}
56+
57+
% [5] Dodd Massengill SEU mechanisms
58+
@article{dodd2003seu,
59+
author = {P. E. Dodd and L. W. Massengill},
60+
title = {Basic mechanisms and modeling of single-event upset in digital
61+
microelectronics},
62+
journal = {IEEE Transactions on Nuclear Science},
63+
volume = 50, number = 3, pages = {583--602}, year = 2003,
64+
doi = {10.1109/TNS.2003.813129},
65+
}
66+
67+
% [6] Baumann radiation soft errors
68+
@article{baumann2005softerrors,
69+
author = {R. C. Baumann},
70+
title = {Radiation-induced soft errors in advanced semiconductor technologies},
71+
journal = {IEEE Transactions on Device and Materials Reliability},
72+
volume = 5, number = 3, pages = {305--316}, year = 2005,
73+
doi = {10.1109/TDMR.2005.853449},
74+
}
75+
76+
% [7] Petersen cross-section
77+
@article{petersen1996crosssection,
78+
author = {E. L. Petersen},
79+
title = {Cross section measurements and upset rate calculations},
80+
journal = {IEEE Transactions on Nuclear Science},
81+
volume = 43, number = 6, pages = {2805--2813}, year = 1996,
82+
doi = {10.1109/23.556870},
83+
}
84+
85+
% [8] LDD3
86+
@book{corbet2005ldd3,
87+
author = {Jonathan Corbet and Alessandro Rubini and Greg Kroah-Hartman},
88+
title = {Linux Device Drivers},
89+
edition = {3rd},
90+
publisher = {O'Reilly Media},
91+
year = 2005,
92+
note = {Block layer chapter; bio submission API has evolved,
93+
see kernel source \texttt{block/blk-core.c} for current API.},
94+
}
95+
96+
% [9] xoshiro256**
97+
@article{blackman2021xoshiro,
98+
author = {David Blackman and Sebastiano Vigna},
99+
title = {Scrambled linear pseudorandom number generators},
100+
journal = {ACM Transactions on Mathematical Software},
101+
volume = 47, number = 4, year = 2021,
102+
note = {article 36},
103+
doi = {10.1145/3460772},
104+
}
105+
106+
% [10] highmem.rst kernel docs
107+
@misc{kernel-highmem,
108+
author = {{Linux kernel contributors}},
109+
title = {Highmem and \texttt{kmap\_local\_page} documentation},
110+
howpublished = {Linux kernel source tree, \texttt{Documentation/mm/highmem.rst}},
111+
year = 2026,
112+
url = {https://www.kernel.org/},
113+
}
114+
115+
% [11] seL4
116+
@inproceedings{klein2009sel4,
117+
author = {Gerwin Klein and others},
118+
title = {{seL4}: {F}ormal verification of an {OS} kernel},
119+
booktitle = {Proc. 22nd ACM SIGOPS Symp. Operating Systems Principles ({SOSP})},
120+
year = 2009, pages = {207--220},
121+
doi = {10.1145/1629575.1629596},
122+
}
123+
124+
% [13] kprobes LWN
125+
@misc{corbet2017kprobes,
126+
author = {Jonathan Corbet},
127+
title = {Notes on the kprobes interface},
128+
howpublished = {LWN.net},
129+
year = 2017,
130+
url = {https://lwn.net/Articles/132196/},
131+
}
132+
133+
% [14] kprobes kernel docs
134+
@misc{kernel-kprobes,
135+
author = {{Linux kernel contributors}},
136+
title = {kprobes documentation},
137+
howpublished = {Linux kernel source tree, \texttt{Documentation/trace/kprobes.rst}},
138+
year = 2026,
139+
url = {https://www.kernel.org/},
140+
}
141+
142+
% Falsificationism
143+
@book{popper1959logic,
144+
author = {Karl R. Popper},
145+
title = {The Logic of Scientific Discovery},
146+
publisher = {Hutchinson},
147+
address = {London},
148+
year = 1959,
149+
}
150+
151+
% BEAMFS reference implementation (for format-v4 spec, fixture sha256, kernel sources)
152+
@misc{beamfs-impl,
153+
author = {Aur{\'e}lien Desbri{\`e}res},
154+
title = {{BEAMFS} reference implementation and on-disk format specification},
155+
howpublished = {\texttt{roastercode/beamfs}, on-disk format normatively specified
156+
in \texttt{Documentation/format-v4.md}},
157+
year = 2026, month = apr,
158+
url = {https://github.com/roastercode/beamfs},
159+
}
160+
161+
% Le Cam Poisson approximation theorem
162+
@article{lecam1960poisson,
163+
author = {Lucien {Le Cam}},
164+
title = {An approximation theorem for the {P}oisson binomial distribution},
165+
journal = {Pacific Journal of Mathematics},
166+
volume = 10, number = 4, pages = {1181--1197}, year = 1960,
167+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
We present RadFI, an algebraic fault injection operator for the
2+
empirical validation of filesystem resilience theorems. RadFI is the
3+
falsification counterpart to the BEAMFS recovery
4+
calculus~\cite{desbrieres2026beamfsv1}: where BEAMFS defines a
5+
recovery operator \(\mathcal{G}\) that drives a corrupted filesystem
6+
state back to consistency or to fail-closed, RadFI defines a
7+
perturbation operator \(\varepsilon\) that injects controlled
8+
bit-flips into the bio-layer payload of an instrumented filesystem,
9+
modelling the action of a Single-Event Upset on volatile memory
10+
transit between user space and storage.
11+
12+
We define \(\varepsilon\) formally over the same state space
13+
\(\mathcal{S}\) used by BEAMFS, formulate a faithfulness property as
14+
the statistical indistinguishability of \(\varepsilon\) from the
15+
canonical SEU model under stated hypotheses, and derive a Linux
16+
kernel implementation path through kprobe-based runtime
17+
instrumentation. Three families of perturbation are treated:
18+
write-side bit-flips on bio payloads bound for storage, read-side
19+
bit-flips on bio payloads returning from storage (DRAM-bidirectional
20+
model), and targeted block-level injection through a
21+
sector-granularity filter.
22+
23+
This Technical Report v1 reports two empirical results obtained with
24+
RadFI v0.1.0 to v0.1.2 against the BEAMFS implementation lineage.
25+
First, on 2026-04-28, RadFI v0.1.0 produced a controlled bit-flip
26+
pattern that the BEAMFS v1 recovery operator failed to correct,
27+
exhibiting a state \(s\) such that
28+
\(\mathcal{G}(\varepsilon(s)) \not\models\) and
29+
\(\mathcal{G}(\varepsilon(s)) \neq \bot\). This is a counter-example
30+
to the soundness theorem of~\cite{desbrieres2026beamfsv1} under the
31+
actual perturbation distribution implementable by RadFI, which led
32+
the BEAMFS author to retract Theorem IV.1 and revise the threat
33+
model from radiation-only (v1) to full electromagnetic resilience
34+
(v2 EMR). Second, on 2026-04-29, byte-level disk corruption of a
35+
BEAMFS v2 INLINE-formatted filesystem
36+
(\(\mathrm{RS}(255,239) \times 16\) per-block protection scheme)
37+
was successfully recovered by the kernel module's
38+
\texttt{read\_folio} path, with autonomic in-place repair persisting
39+
the correction byte-perfect to disk. This is corroboration, not
40+
proof, of the revised v2 recovery properties pending formal Theorem
41+
v2.1 in~\cite{desbrieres2026beamfsv2}.
42+
43+
The reference implementation source is held in a private repository
44+
(\texttt{roastercode/radfi}) pending coordinated public release
45+
with this methodology paper. A reproducibility statement is provided in
46+
Section~\ref{sec:repro}.

0 commit comments

Comments
 (0)