-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconclusions.tex
28 lines (27 loc) · 1.73 KB
/
conclusions.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
Read-copy update (RCU) is a synchronization mechanism that gets heavily used in
the linux kernel. It improves scalability by allowing readers to execute
concurrently with writers. RCU ensures read coherence by maintaining multiple
versions of data structures and ensuring that they are not freed until all
pre-existing read-side critical sections complete. Using RCU for developing
parallel system is complicated and requires lot of care. The user needs to follow
many rules and incorrect usage of rcu leads to programming bugs.
These bugs are hard to debug. There are existing solution mentioned in section~\ref{sec:related}
which deal with the incorrect usage of RCU but they are imprecise and report
many false positive. In this project we try to analyse the incorrect
usage of RCU which violate the three rules mentioned in section~\ref{sec:proposal}.
We use \emph{Watchpoint} mechanism implemented using Dynamic Binary
Instrumentation (DBI) technique to track the references of RCU protected data.
\emph{Watchpoint} mechanism provides us infrastructure to track the memory
references and gives us callback on the access of RCU protected data which is
used to verify the access policy. The algorithm we used to implement the policy
is simple and uses thread and watchpoint \emph{Generation number} to check the
policy. Our system updates \emph{Generation number} when it encounters rcu
primitive. Our system currently enforces simple policies and is limited to
classical RCU only.
Future work involves the following,
\begin{enumerate}
\item Extending the algorithm to newer versions of RCU such as preemptible
and tree RCU
\item Study and increase the scope of bugs detected by the current system.
\item Expand the system beyond pointer leaks.
\end{enumerate}