From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C68B9A00C5; Mon, 31 Oct 2022 12:58:00 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B568540223; Mon, 31 Oct 2022 12:58:00 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id F37CE40151 for ; Mon, 31 Oct 2022 12:57:58 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 29V5APJr019197; Mon, 31 Oct 2022 04:57:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=gJ8Xn8kThLiCuMRMGyRMWQ2nybZCJUjL1xilf56iU0E=; b=A+Fmoxr+QQ/QRHpGU0ncK7x4v92nSmLdw6WRbcz0hwpvjZa7sDYDVnd4OQbgcwThlMcS Ya3qiJr70l8UHuiq8zzknhjeA2Q3Hlu7rSjGQiigOdO2bTxXy2EbacTrY2UQ/PlTA7Dm HfXrX/ztXS6e3CRHOLGVaTjPtZAnEasx84OdFDrj3OfZlqHUaZSYXhJwZQjfqJsNYYVv kajTyPcNpMYEZu+l+XFn5YI6zstbEF0tFG7yBQhrc2qofPuMvmiKjmvOROAwTG/xfvne v/ZsMEK8QhhHyJf7P1/k+pbAlIswDNMO4KQqV4W9hagBeuGgUXnuAumFg778jOrTF7YK VQ== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3kj7yw1413-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 31 Oct 2022 04:57:56 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 31 Oct 2022 04:57:55 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Mon, 31 Oct 2022 04:57:55 -0700 Received: from MININT-80QBFE8.corp.innovium.com (unknown [10.28.161.88]) by maili.marvell.com (Postfix) with ESMTP id 79F683F7142; Mon, 31 Oct 2022 04:57:53 -0700 (PDT) From: To: , CC: , Pavan Nikhilesh Subject: [PATCH v4] doc: update Linux core isolation guide Date: Mon, 31 Oct 2022 17:27:51 +0530 Message-ID: <20221031115751.2021-1-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220517195939.1921-1-pbhagavatula@marvell.com> References: <20220517195939.1921-1-pbhagavatula@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: jDUoLaXEXPxPdvBeuaycHfGaxrd48gPO X-Proofpoint-ORIG-GUID: jDUoLaXEXPxPdvBeuaycHfGaxrd48gPO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-31_14,2022-10-31_01,2022-06-22_01 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Pavan Nikhilesh Update Linux core isolation guide to include isolation from timers, RCU processing and IRQs. Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- v4 Changes: - Give names to Links to make them clickable. (Thomas) - Fix link formatting. v3 Changes: - Add additional information links for Cgroups. v2 Changes: - Add references to the parameters used. - Add note about Linux cgroups. doc/guides/linux_gsg/enable_func.rst | 32 +++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst index b15bfb2f9f..b544d2e50b 100644 --- a/doc/guides/linux_gsg/enable_func.rst +++ b/doc/guides/linux_gsg/enable_func.rst @@ -126,16 +126,38 @@ 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 `_ + | `IRQs `_ + | `Kernel parameters `_ + + +For more fine grained control over resource management and performance tuning one can look +into ``Linux cgroups``. + +Cpusets using cgroups: + `CPUSETS `_ + +Systemd (CPUAffinity): + `CPUAffinity `_ + +Also, see: + | `CPUSET man pages `_ + | `CPU isolation example `_ + | `Systemd core isolation `_ .. _High_Precision_Event_Timer: -- 2.25.1