Re: [PATCH] doc: Add CPU Isolation documentation

From: Waiman Long
Date: Mon Aug 11 2025 - 16:39:10 EST


On 8/9/25 5:42 AM, Frederic Weisbecker wrote:
nohz_full was introduced in v3.10 in 2013, which means this
documentation is overdue for 12 years.

The shoemaker's children always go barefoot. And working on timers
hasn't made me arriving on time either.

Fortunately Paul wrote a part of the needed documentation a while ago,
especially concerning nohz_full in Documentation/timers/no_hz.rst and
also about per-CPU kthreads in
Documentation/admin-guide/kernel-per-CPU-kthreads.rst

Introduce a new page that gives an overview of CPU isolation in general.

Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>

Thanks for working on this document. It will be really useful for those customers that need CPU isolation.


---
Documentation/admin-guide/cpu-isolation.rst | 338 ++++++++++++++++++++
Documentation/admin-guide/index.rst | 1 +
2 files changed, 339 insertions(+)
create mode 100644 Documentation/admin-guide/cpu-isolation.rst

diff --git a/Documentation/admin-guide/cpu-isolation.rst b/Documentation/admin-guide/cpu-isolation.rst
new file mode 100644
index 000000000000..250027acf7b2
--- /dev/null
+++ b/Documentation/admin-guide/cpu-isolation.rst
@@ -0,0 +1,338 @@
+=============
+CPU Isolation
+=============
+
+Introduction
+============
+
+"CPU Isolation" means leaving a CPU exclusive to a given userspace
+workload without any undesired code interference from the kernel.
+
+Those interferences, commonly pointed out as "noise", can be triggered
+by asynchronous events (interrupts, timers, scheduler preemption by
+workqueues and kthreads, ...) or synchronous events (syscalls and page
+faults).
+
+Such noise usually goes unnoticed. After all synchronous events are a
+component of the requested kernel service. And asynchronous events are
+either sufficiently well distributed by the scheduler when executed
+as tasks or reasonably fast when executed as interrupt. The timer
+interrupt can even execute 1024 times per seconds without
+significantly measurable impact most of the time.

"significantly measurable" looks odd to me. Maybe "without a significant and measurable impact most of the time".

+
+Tradeoffs
+~~~~~~~~~
+
+In terms of cost, this is the most invasive isolation feature. It is
+assumed to be used when the workload spends most of its time in
+userspace and doesn't rely on the kernel except for preparatory
+work because:
+
+- RCU is slower due to the locked, offloaded and threaded callbacks
+ processing (the same that would be obtained with "rcu_nocb=" boot
+ parameter).
Should be "rcu_nocbs". The '=' is optional.

Cheers,
Longman