-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexperience.tex
29 lines (25 loc) · 1.51 KB
/
experience.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
\section{Experience}
% \begin{itemize}
% \item XDP/Sched-cls kernel crate problem: commit a70dffa0
% \item Triggering Rust exception when implementing BMC, but kernel is still
% alive.
% \end{itemize}
\para{Rex Panic Handler}
During the debugging of cache miss rate issues in BMC, we observed that the
\texttt{bmc\_invalidate\_cache} function in the Rex version failed to deliver expected
results via the statistical records.
This discrepancy indicated a potential flaw in that function's implementation
or its interaction with the cache map.
Then we attempted to utilize \texttt{bpf\_printk (Rex version)} for diagnostic, but
the logging results was absence from the tracing files,
and the \projname{}-BMC has a significant degradation in benchmark performance.
Reverting these changes restored the original performance levels and logging capabilities.
Afterwards, examination of the kernel logs showed an shocking number of kernel error messages.
With further investigation of these log along with the code, an out-of-bounds access error
emerged from the \texttt{bmc\_invalidate\_cache} function.
This mistake was the cause of kernel panics observed during benchmark.
Remarkably, even with the numerous kernel panics, the overall system stability
and performance were not conspicuously impacted.
We have run several benchmarks in this kernel which already has a lot of Rex panic
and this kernel continued to function well.
This resilience highlights an robustness in the unwind implementation of Rex.