doc: update Linux core isolation guide

Update Linux core isolation guide to include isolation from
timers, RCU processing and IRQs.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
This commit is contained in:
Pavan Nikhilesh 2022-10-31 17:27:51 +05:30 committed by Thomas Monjalon
parent b0058c833c
commit b4b988fd7d

View File

@ -126,16 +126,37 @@ Using Linux Core Isolation to Reduce Context Switches
-----------------------------------------------------
While the threads used by a DPDK application are pinned to logical cores on the system,
it is possible for the Linux scheduler to run other tasks on those cores also.
To help prevent additional workloads from running on those cores,
it is possible to use the ``isolcpus`` Linux kernel parameter to isolate them from the general Linux scheduler.
it is possible for the Linux scheduler to run other tasks on those cores.
To help prevent additional workloads, timers, RCU processing and IRQs
from running on those cores, it is possible to use
the Linux kernel parameters ``isolcpus``, ``nohz_full``, ``irqaffinity``
to isolate them from the general Linux scheduler tasks.
For example, if DPDK applications are to run on logical cores 2, 4 and 6,
For example, if a given CPU has 0-7 cores
and DPDK applications are to run on logical cores 2, 4 and 6,
the following should be added to the kernel parameter list:
.. code-block:: console
isolcpus=2,4,6
isolcpus=2,4,6 nohz_full=2,4,6 irqaffinity=0,1,3,5,7
.. note::
More detailed information about the above parameters can be found at
`NO_HZ <https://www.kernel.org/doc/html/latest/timers/no_hz.html>`_,
`IRQ <https://www.kernel.org/doc/html/latest/core-api/irq/>`_,
and `kernel parameters
<https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html>`_
For more fine grained control over resource management and performance tuning
one can look into "Linux cgroups",
`cpusets <https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cpusets.html>`_,
`cpuset man pages <https://man7.org/linux/man-pages/man7/cpuset.7.html>`_, and
`systemd CPU affinity <https://www.freedesktop.org/software/systemd/man/systemd.exec.html>`_.
Also see
`CPU isolation example <https://www.suse.com/c/cpu-isolation-practical-example-part-5/>`_
and `systemd core isolation example <https://www.rcannings.com/systemd-core-isolation/>`_.
.. _High_Precision_Event_Timer: