>From 953186f749ee9052636fc52b04c2830a35c4de75 Mon Sep 17 00:00:00 2001 From: Akira Yokosawa <akiyks@xxxxxxxxx> Date: Mon, 23 Oct 2017 23:15:10 +0900 Subject: [PATCH 2/3] defer/rcuapi: Update table layout Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> --- defer/rcuapi.tex | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/defer/rcuapi.tex b/defer/rcuapi.tex index 874b8b1..6da4676 100644 --- a/defer/rcuapi.tex +++ b/defer/rcuapi.tex @@ -17,112 +17,103 @@ presents concluding remarks. \label{sec:defer:RCU has a Family of Wait-to-Finish APIs} \begin{sidewaystable*}[htbp] +\rowcolors{1}{}{lightgray} +\renewcommand*{\arraystretch}{1.3} \centering \footnotesize -\begin{tabularx}{7.9in}{>{\raggedright\arraybackslash}p{1.08in}| - >{\raggedright\arraybackslash}X| - >{\raggedright\arraybackslash}X| - >{\raggedright\arraybackslash}X| - >{\raggedright\arraybackslash}X| +\begin{tabularx}{7.9in}{>{\raggedright\arraybackslash}p{1.08in} + >{\raggedright\arraybackslash}X + >{\raggedright\arraybackslash}X + >{\raggedright\arraybackslash}X + >{\raggedright\arraybackslash}X >{\raggedright\arraybackslash}p{1.22in}} +\toprule Attribute & RCU Classic & RCU BH & RCU Sched & Realtime RCU & SRCU \\ -\hline -\hline +\midrule Purpose & Original & Prevent DDoS attacks & Wait for preempt-disable regions, hardirqs, \& NMIs & Realtime response & Sleeping readers \\ -\hline Availability & 2.5.43 & 2.6.9 & 2.6.12 & 2.6.26 & 2.6.19 \\ -\hline Read-side primitives & \tco{rcu_read_lock()}~! \tco{rcu_read_unlock()}~! & \tco{rcu_read_lock_bh()} \tco{rcu_read_unlock_bh()} & \tco{preempt_disable()} \tco{preempt_enable()} (and friends) & \tco{rcu_read_lock()} \tco{rcu_read_unlock()} & \tco{srcu_read_lock()} \tco{srcu_read_unlock()} \\ -\hline { Update-side primitives (synchronous) } & { \tco{synchronize_rcu()} \tco{synchronize_net()} } & \tco{synchronize_rcu_bh()} & \tco{synchronize_sched()} & { \tco{synchronize_rcu()} \tco{synchronize_net()} } & \tco{synchronize_srcu()} \\ -\hline { Update-side primitives (asynchronous/callback) } & \tco{call_rcu()} ! & \tco{call_rcu_bh()} & \tco{call_rcu_sched()} & \tco{call_rcu()} & \tco{call_srcu()} \\ -\hline { Update-side primitives (wait for callbacks) } & \tco{rcu_barrier()} & \tco{rcu_barrier_bh()} & \tco{rcu_barrier_sched()} & \tco{rcu_barrier()} & N/A \\ -\hline Type-safe memory & \tco{SLAB_DESTROY_BY_RCU} & & & \tco{SLAB_DESTROY_BY_RCU} & \\ -\hline Read side constraints & No blocking & No bottom-half (BH) enabling & No blocking & Only preemption and lock acquisition & No \tco{synchronize_srcu()} with same \tco{srcu_struct} \\ -\hline Read side overhead & Preempt disable/enable (free on non-\tco{PREEMPT}) & BH disable/enable & Preempt disable/enable (free on non-\tco{PREEMPT}) & Simple instructions, \IRQ\ disable/enable & Simple instructions, preempt disable/enable, memory barriers \\ -\hline Asynchronous update-side overhead & sub-microsecond & sub-microsecond & sub-microsecond & sub-microsecond & N/A \\ -\hline Grace-period latency & 10s of milliseconds & 10s of milliseconds & 10s of milliseconds & 10s of milliseconds & 10s of milliseconds \\ -\hline Non-\tco{PREEMPT_RT} implementation & RCU Classic & RCU BH & RCU Classic & Preemptible RCU & SRCU \\ -\hline \tco{PREEMPT_RT} implementation & Preemptible RCU & Realtime RCU & Forced Schedule on all CPUs & Realtime RCU & SRCU \\ +\bottomrule \end{tabularx} \caption{RCU Wait-to-Finish APIs} \label{tab:defer:RCU Wait-to-Finish APIs} -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe perfbook" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html