From patchwork Thu Mar 10 12:38:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 108645 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CDD50A0093; Thu, 10 Mar 2022 13:39:01 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 280B841145; Thu, 10 Mar 2022 13:38:58 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id CE4754113E for ; Thu, 10 Mar 2022 13:38:55 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646915936; x=1678451936; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=aEbuN0u19DWtzFJhuqy67+DpGBFY94Bnzeza+Oa/zEs=; b=HBNg/djAHN799wGiVM5ujfApm0TLFrPAp5BGKV3TpTXmf6T5zzcFNvD/ HxBTw5GKZ1WKkB+vLrMa/3KJfFoMhe4oTL4OnMmcP0+79oeL7LfjO+0fg xwikTJfc26EDqDdyB09DZtkjcTFJZaB8/mtKUwnjfyKxgpZNOzOkB8vHt wWEPcTAm82OcvedmWmuwEPcln4hmii3RJnug1AomteuqHXvFAvnNpJVQ7 mgQyQrXx06BxsPMD0zsf01GK6EK9RJPWgG9w0aMmHc5BMolBsjmx39mFv SOj3/nCQ6P8xqLTkpb+NY5lNnburuLvnGI//cxjVmTE2Z4UMMAOtxqweA g==; X-IronPort-AV: E=McAfee;i="6200,9189,10281"; a="315957601" X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="315957601" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 04:38:55 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="513970195" Received: from silpixa00399126.ir.intel.com ([10.237.223.34]) by orsmga006.jf.intel.com with ESMTP; 10 Mar 2022 04:38:54 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: john.mcnamara@intel.com, Bruce Richardson Subject: [PATCH v2 1/8] doc/linux_gsg: add driver guides to document list Date: Thu, 10 Mar 2022 12:38:36 +0000 Message-Id: <20220310123843.612207-2-bruce.richardson@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310123843.612207-1-bruce.richardson@intel.com> References: <20220308145001.529734-1-bruce.richardson@intel.com> <20220310123843.612207-1-bruce.richardson@intel.com> MIME-Version: 1.0 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 The document roadmap section was missing any mention of the individual drivers guides which are important for users. Add them to list. Signed-off-by: Bruce Richardson --- doc/guides/linux_gsg/intro.rst | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/doc/guides/linux_gsg/intro.rst b/doc/guides/linux_gsg/intro.rst index 890169e97f..ea98ac7425 100644 --- a/doc/guides/linux_gsg/intro.rst +++ b/doc/guides/linux_gsg/intro.rst @@ -34,3 +34,28 @@ The following is a list of DPDK documents in the suggested reading order: * Sample Applications User Guide: Describes a set of sample applications. Each chapter describes a sample application that showcases specific functionality and provides instructions on how to compile, run and use the sample application. + +* Driver Reference Guides: Provides details on each driver inside a particular category. + Separate guides exist for each of: + + * Baseband devices + + * Compression devices + + * Cryptographic accelerator devices + + * DMA devices + + * Event-based scheduling devices + + * General purpose GPU devices + + * Mempool drivers + + * Network (NIC) devices + + * "Raw" devices i.e. those not fitting into any other category + + * Regular expression devices + + * vDPA (vhost data path acceleration) devices \ No newline at end of file From patchwork Thu Mar 10 12:38:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 108646 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5C697A0093; Thu, 10 Mar 2022 13:39:07 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 215E341144; Thu, 10 Mar 2022 13:39:00 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 8D0904114A for ; Thu, 10 Mar 2022 13:38:58 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646915938; x=1678451938; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SMuXqyZqFd2fM2Yy9dWw0+olCOoa+hD5O6J9juElKYk=; b=Wp8TuhW1z25UraznNPlrOWvKzMj5Kljjn56BctLzugzExdyl5bocCI1p nb2IS6EjhN4YLMutBzUTFj1DawayyzaAS+e7F5TXvqaDlPr7BmsIZuVlD 5O6oMal6cE+rbIX0EcOWWt+KFdBNYM343dwOMG558dyuxTlZnaa7fxANJ FMUnC8DriqJTGcpyi4b45o1W3+2IMQhzYTgkpXCMyLCrVGeCg0AD9Sewn HPM4N4goRhkPxk1JbT3YpHZy1Z514i50o8HXGYvUIMZjEslhF+lsYWJ7K 5PwahPupa9scZyC2P2WfPVToFUIjEOpHKWOh16+DK1bz6HLOZwUW9ZPu0 Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10281"; a="315957606" X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="315957606" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 04:38:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="513970201" Received: from silpixa00399126.ir.intel.com ([10.237.223.34]) by orsmga006.jf.intel.com with ESMTP; 10 Mar 2022 04:38:55 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: john.mcnamara@intel.com, Bruce Richardson Subject: [PATCH v2 2/8] doc/linux_gsg: drop note about old chipset Date: Thu, 10 Mar 2022 12:38:37 +0000 Message-Id: <20220310123843.612207-3-bruce.richardson@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310123843.612207-1-bruce.richardson@intel.com> References: <20220308145001.529734-1-bruce.richardson@intel.com> <20220310123843.612207-1-bruce.richardson@intel.com> MIME-Version: 1.0 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 The chipsets referenced in the note[1] were all launched in 2012 and are now discontinued, so we can drop the note about them at this stage. [1] https://ark.intel.com/content/www/us/en/ark/products/codename/44946/products-formerly-cave-creek.html Signed-off-by: Bruce Richardson --- doc/guides/linux_gsg/sys_reqs.rst | 5 ----- 1 file changed, 5 deletions(-) diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index 9dccd54d9c..6f8799504a 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -8,11 +8,6 @@ System Requirements This chapter describes the packages required to compile the DPDK. -.. note:: - - If the DPDK is being used on an Intel\ |reg| Communications Chipset 89xx Series platform, - please consult the *Intel\ |reg| Communications Chipset 89xx Series Software for Linux Getting Started Guide*. - BIOS Setting Prerequisite on x86 -------------------------------- From patchwork Thu Mar 10 12:38:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 108647 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 853DEA0093; Thu, 10 Mar 2022 13:39:13 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 198B141155; Thu, 10 Mar 2022 13:39:01 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 12B214114E for ; Thu, 10 Mar 2022 13:38:58 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646915939; x=1678451939; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=aDqJySP6cQ9C92UhgYi/3BGBTAtVJdfG9iKIdgf1PwU=; b=OjLBc7bChL97JhyGw6cuYfAk0XGAxu045fWMjrkrUISuWYoemVAyROMt lt9YZcrRZPZ8bu9xOD2MEyPdpdfnO9kTGlSZi032aZwF6R/9VyhJLpDp2 MEIqyXawOuwJEBPGWkrftp0ds7D1aG9lCkhX1x5eHuU2OhFH3hMKUv1zy SPgZEHD4Y2rT3uPMEGCk4uDBD7dLQFvbUHQsd69hrqjdNFA6dQ+jsnTvh K8o6cdTt6P3EfWwn1NeWEk0kULSOzRKGH6xXgMtKhS3bkPyYGQ0wpPan1 bbuBHVUa+gSSZlOhBZv2OznJ1uPwBUTBL8OGDTEYycU8b1U8tyk0WUwKA Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10281"; a="315957608" X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="315957608" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 04:38:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="513970206" Received: from silpixa00399126.ir.intel.com ([10.237.223.34]) by orsmga006.jf.intel.com with ESMTP; 10 Mar 2022 04:38:57 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: john.mcnamara@intel.com, Bruce Richardson Subject: [PATCH v2 3/8] doc/linux_gsg: remove duplicated note Date: Thu, 10 Mar 2022 12:38:38 +0000 Message-Id: <20220310123843.612207-4-bruce.richardson@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310123843.612207-1-bruce.richardson@intel.com> References: <20220308145001.529734-1-bruce.richardson@intel.com> <20220310123843.612207-1-bruce.richardson@intel.com> MIME-Version: 1.0 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 A note about secure boot not allowing uio is present in both the system requirements section and the driver binding section. This fits better in the driver binding section, so the copy in system requirements can be removed. The document in general now also emphasises vfio over uio more than when this note was first added, reducing the need for this warning to be repeated. Signed-off-by: Bruce Richardson --- doc/guides/linux_gsg/sys_reqs.rst | 7 ------- 1 file changed, 7 deletions(-) diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index 6f8799504a..df367742cc 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -17,13 +17,6 @@ and high performance of small packets, BIOS setting changes may be needed. Consult the section on :ref:`Enabling Additional Functionality ` for more information on the required changes. -.. note:: - - If UEFI secure boot is enabled, the Linux kernel may disallow the use of - UIO on the system. Therefore, devices for use by DPDK should be bound to the - ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``. - For more details see :ref:`linux_gsg_binding_kernel`. - Compilation of the DPDK ----------------------- From patchwork Thu Mar 10 12:38:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 108648 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 273ACA0093; Thu, 10 Mar 2022 13:39:21 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B30F841161; Thu, 10 Mar 2022 13:39:03 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id CBE884114F for ; Thu, 10 Mar 2022 13:39:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646915941; x=1678451941; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ZGhTWsEE3z1Vk9a5dVD79GpWqBzQgi5T6hSDUXuC21Q=; b=nOUrkRCWKrwg1CirvDzspQYVQ17V9j91u/rsROt+5ptV+6vDli3Acmvy 1u1v+/IMYUf5MMGKzYLE5Jmm8sh1elK2EzDaaW33sj30aZQ5ofUItNUld vPuXcKpjq2QpTaFX36XXOdnNHidbzAHN3iiKq3Zfpj2GRI6OZEaPko1dh rbgoOE/45cCxe9PUtiLqlgs7uSymvYC+iO64SsZMHROAFBRoN0UlnxQfI qkPjULHw88dFNA2LeLpAUF7+4uI0jJGKO7f+DMCtMEhV47Xhj988aPBKa siaBI8ov3/4HT6Pmu6y6PuQNAFaAlCWbph0cBVf/MYkxq7hfJePGXvqh2 g==; X-IronPort-AV: E=McAfee;i="6200,9189,10281"; a="315957617" X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="315957617" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 04:39:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="513970217" Received: from silpixa00399126.ir.intel.com ([10.237.223.34]) by orsmga006.jf.intel.com with ESMTP; 10 Mar 2022 04:38:58 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: john.mcnamara@intel.com, Bruce Richardson Subject: [PATCH v2 4/8] doc/linux_gsg: merge requirements section for app building Date: Thu, 10 Mar 2022 12:38:39 +0000 Message-Id: <20220310123843.612207-5-bruce.richardson@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310123843.612207-1-bruce.richardson@intel.com> References: <20220308145001.529734-1-bruce.richardson@intel.com> <20220310123843.612207-1-bruce.richardson@intel.com> MIME-Version: 1.0 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 When building end-applications linked with DPDK, the only additional tool needed is pkg-config/pkgconf. However, the standard development tools meta-packages on most distro's include this as standard, meaning it does not really require its own section. The one outlier in the existing text is "alpine" where it is not present when using "libc-dev" target. However, changing "gcc" and "libc-dev" to "alpine-sdk" metapackage aligns alpine with the other distros in this regard. Signed-off-by: Bruce Richardson --- doc/guides/linux_gsg/sys_reqs.rst | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst index df367742cc..08d45898f0 100644 --- a/doc/guides/linux_gsg/sys_reqs.rst +++ b/doc/guides/linux_gsg/sys_reqs.rst @@ -27,11 +27,19 @@ Compilation of the DPDK The setup commands and installed packages needed on various systems may be different. For details on Linux distributions and the versions tested, please consult the DPDK Release Notes. -* General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+). +* General development tools including a supported C compiler such as gcc (version 4.9+) or clang (version 3.4+), + and ``pkg-config`` or ``pkgconf`` to be used when building end-user binaries against DPDK. * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"`` * For Ubuntu/Debian systems these can be installed using ``apt install build-essential`` - * For Alpine Linux, ``apk add gcc libc-dev bsd-compat-headers libexecinfo-dev`` + * For Alpine Linux, ``apk add alpine-sdk bsd-compat-headers libexecinfo-dev`` + +.. note:: + + pkg-config 0.27, supplied with RHEL-7, + does not process the Libs.private section correctly, + resulting in statically linked applications not being linked properly. + Use an updated version of ``pkg-config`` or ``pkgconf`` instead when building applications * Python 3.5 or later. @@ -87,20 +95,6 @@ For poll-mode drivers, the additional dependencies for each driver can be found in that driver's documentation in the relevant DPDK guide document, e.g. :doc:`../nics/index` - -Building DPDK Applications --------------------------- - -The tool pkg-config or pkgconf, integrated in most build systems, -must be used to parse options and dependencies from libdpdk.pc. - -.. note:: - - pkg-config 0.27, supplied with RHEL-7, - does not process the Libs.private section correctly, - resulting in statically linked applications not being linked properly. - - Running DPDK Applications ------------------------- From patchwork Thu Mar 10 12:38:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 108649 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1F2BDA0093; Thu, 10 Mar 2022 13:39:27 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BAF6241165; Thu, 10 Mar 2022 13:39:04 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 1630441157 for ; Thu, 10 Mar 2022 13:39:01 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646915942; x=1678451942; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=a2ccahQ9+FJSNmnS1m6Zo/sT53vpKZ6vqcR2g432LfE=; b=SEoCOcg2v4SGyedwvvdIh/uWYNEt9UeR1v5oTtatUkQqHdC5idiUTEa9 JXMsXhxO7A9H9KH4Qfj30V2kxmSQOpUWyPt/NicQqseR11kbliUJtKxYm VHcvPh8Rc4CmtAPWGfN6ZX/2kCqhA+28xjAVLmeVuyj3n4vh3iH7wcZbR aH2tRqobhtLI+x/+vpFpxCU9jvdxiw+zWuplJxHbHSazMbjBkyFYPuOBL rFEnzbro5j/nPmNKrefXjjounrxQCKAb2PWw9x3crRE7WQLc54bigoAIB OJBPCg6+LzURorajFyRYCOK2zmO9X53FLRV83zNVSd3a0GRa/wXqCo6RX g==; X-IronPort-AV: E=McAfee;i="6200,9189,10281"; a="315957621" X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="315957621" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 04:39:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="513970227" Received: from silpixa00399126.ir.intel.com ([10.237.223.34]) by orsmga006.jf.intel.com with ESMTP; 10 Mar 2022 04:39:00 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: john.mcnamara@intel.com, Bruce Richardson Subject: [PATCH v2 5/8] doc/linux_gsg: expand list of directories Date: Thu, 10 Mar 2022 12:38:40 +0000 Message-Id: <20220310123843.612207-6-bruce.richardson@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310123843.612207-1-bruce.richardson@intel.com> References: <20220308145001.529734-1-bruce.richardson@intel.com> <20220310123843.612207-1-bruce.richardson@intel.com> MIME-Version: 1.0 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 Not all directories were given in the GSG document, but many of those omitted would be of interest to users, e.g. "doc", "license" and "usertools" directories. Adding these leaves only "devtools", and "kernel" as the only undocumented directories, so add them in too for completeness. When updating the section, add "including" to the line leading up to the directory list, indicating that, while the list is currently complete, it is not guaranteed to always be. Signed-off-by: Bruce Richardson --- doc/guides/linux_gsg/build_dpdk.rst | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst index 0b08492ca2..4f2def15ed 100644 --- a/doc/guides/linux_gsg/build_dpdk.rst +++ b/doc/guides/linux_gsg/build_dpdk.rst @@ -16,7 +16,11 @@ First, uncompress the archive and move to the uncompressed DPDK source directory tar xJf dpdk-.tar.xz cd dpdk- -The DPDK is composed of several directories: +The DPDK is composed of several directories, including: + +* doc: DPDK Documentation + +* license: DPDK license information * lib: Source code of DPDK libraries @@ -28,6 +32,13 @@ The DPDK is composed of several directories: * config, buildtools: Framework-related scripts and configuration +* usertools: Utility scripts for end-users of DPDK applications + +* devtools: Scripts for use by DPDK developers + +* kernel: Kernel modules needed for some operating systems + + Compiling and Installing DPDK System-wide ----------------------------------------- From patchwork Thu Mar 10 12:38:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 108650 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CD881A0093; Thu, 10 Mar 2022 13:39:32 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B448D4116E; Thu, 10 Mar 2022 13:39:05 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id B9FBF41163 for ; Thu, 10 Mar 2022 13:39:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646915943; x=1678451943; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=y713IiW0BW4AgS3hIHYSa3swdhG/8rPdNnJt5GpYnaY=; b=Hvtl3ddfxs5IBvuiC4QYDWkspGV6PoHm43iJT29N/+oFJvVowNDBf0PP wWcPN7cJHDYySg6HcONGrYyoUZLwTFQQYSS24ZzB5zsWxLiE/NrBYJyfk 5Po8UfJI1WqW2FRj4unAFIT2dZ9FzayMjAtPdg/BQSFqiPm+J/s7iPjm/ g0SrjSJEAUQpbV6hQx9Rm2IJNsCM/ZAObxLb3Ud4yllnRPuSqVtKdmgCO H6oy2cB8pz1ew95JBfqiwSvo+wdcWekrE++wN/90eJP8NfMtsB8xOKMR1 wWEFgFsduVgRF3gpdnsbIF1f6OQ098npVsfy9TEpeGr7e97X6Ja9sKH6y Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10281"; a="315957625" X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="315957625" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 04:39:03 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="513970240" Received: from silpixa00399126.ir.intel.com ([10.237.223.34]) by orsmga006.jf.intel.com with ESMTP; 10 Mar 2022 04:39:01 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: john.mcnamara@intel.com, Bruce Richardson Subject: [PATCH v2 6/8] doc/linux_gsg: shorten details on HPET use Date: Thu, 10 Mar 2022 12:38:41 +0000 Message-Id: <20220310123843.612207-7-bruce.richardson@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310123843.612207-1-bruce.richardson@intel.com> References: <20220308145001.529734-1-bruce.richardson@intel.com> <20220310123843.612207-1-bruce.richardson@intel.com> MIME-Version: 1.0 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 As best we can tell, the HPET timers are not commonly used, so there is little need to give extensive detail and commentry on them in the Linux GSG. As such, we can reduce the GSG section to just a single subsection and also move it down the page below items which are likely of greater importance. Signed-off-by: Bruce Richardson --- doc/guides/linux_gsg/enable_func.rst | 80 ++++++++++------------------ 1 file changed, 27 insertions(+), 53 deletions(-) diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst index b5c4c652d7..0036c542f5 100644 --- a/doc/guides/linux_gsg/enable_func.rst +++ b/doc/guides/linux_gsg/enable_func.rst @@ -8,59 +8,6 @@ Enabling Additional Functionality ================================= -.. _High_Precision_Event_Timer: - -High Precision Event Timer (HPET) Functionality ------------------------------------------------ - -BIOS Support -~~~~~~~~~~~~ - -The High Precision Timer (HPET) must be enabled in the platform BIOS if the HPET is to be used. -Otherwise, the Time Stamp Counter (TSC) is used by default. -The BIOS is typically accessed by pressing F2 while the platform is starting up. -The user can then navigate to the HPET option. On the Crystal Forest platform BIOS, the path is: -**Advanced -> PCH-IO Configuration -> High Precision Timer ->** (Change from Disabled to Enabled if necessary). - -On a system that has already booted, the following command can be issued to check if HPET is enabled:: - - grep hpet /proc/timer_list - -If no entries are returned, HPET must be enabled in the BIOS (as per the instructions above) and the system rebooted. - -Linux Kernel Support -~~~~~~~~~~~~~~~~~~~~ - -The DPDK makes use of the platform HPET timer by mapping the timer counter into the process address space, and as such, -requires that the ``HPET_MMAP`` kernel configuration option be enabled. - -.. warning:: - - On Fedora, and other common distributions such as Ubuntu, the ``HPET_MMAP`` kernel option is not enabled by default. - To recompile the Linux kernel with this option enabled, please consult the distributions documentation for the relevant instructions. - -Enabling HPET in the DPDK -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -By default, HPET support is disabled in the DPDK build configuration files. -To use HPET, use the following meson build option which will enable the HPET settings at compile time:: - - meson configure -Duse_hpet=true - -For an application to use the ``rte_get_hpet_cycles()`` and ``rte_get_hpet_hz()`` API calls, -and optionally to make the HPET the default time source for the rte_timer library, -the new ``rte_eal_hpet_init()`` API call should be called at application initialization. -This API call will ensure that the HPET is accessible, returning an error to the application if it is not, -for example, if ``HPET_MMAP`` is not enabled in the kernel. -The application can then determine what action to take, if any, if the HPET is not available at run-time. - -.. note:: - - For applications that require timing APIs, but not the HPET timer specifically, - it is recommended that the ``rte_get_timer_cycles()`` and ``rte_get_timer_hz()`` API calls be used instead of the HPET-specific APIs. - These generic APIs can work with either TSC or HPET time sources, depending on what is requested by an application call to ``rte_eal_hpet_init()``, - if any, and on what is available on the system at runtime. - .. _Running_Without_Root_Privileges: Running DPDK Applications Without Root Privileges @@ -154,6 +101,33 @@ the following should be added to the kernel parameter list: isolcpus=2,4,6 +.. _High_Precision_Event_Timer: + +High Precision Event Timer (HPET) Functionality +----------------------------------------------- + +DPDK can support the system HPET as a timer source rather than the system default timers, +such as the core Time-Stamp Counter (TSC) on x86 systems. +To enable HPET support in DPDK: + +1. Ensure that HPET is enabled in BIOS settings. +2. Enable ``HPET_MMAP`` support in kernel configuration. + Note that this my involve doing a kernel rebuild, + as many common linux distributions do *not* have this setting enabled by default in their kernel builds. +3. Enable DPDK support for HPET by using the build-time meson option ``use_hpet``, + for example, ``meson configure -Duse_hpet=true`` + +For an application to use the ``rte_get_hpet_cycles()`` and ``rte_get_hpet_hz()`` API calls, +and optionally to make the HPET the default time source for the rte_timer library, +the ``rte_eal_hpet_init()`` API call should be called at application initialization. +This API call will ensure that the HPET is accessible, returning an error to the application if it is not. + +For applications that require timing APIs, but not the HPET timer specifically, +it is recommended that the ``rte_get_timer_cycles()`` and ``rte_get_timer_hz()`` API calls be used instead of the HPET-specific APIs. +These generic APIs can work with either TSC or HPET time sources, +depending on what is requested by an application call to ``rte_eal_hpet_init()``, +if any, and on what is available on the system at runtime. + Loading the DPDK KNI Kernel Module ---------------------------------- From patchwork Thu Mar 10 12:38:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 108651 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D09CBA0093; Thu, 10 Mar 2022 13:39:38 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B513D41177; Thu, 10 Mar 2022 13:39:06 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 1061741169 for ; Thu, 10 Mar 2022 13:39:04 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646915945; x=1678451945; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7NWzx8y352zznA7MmyqEbQCYTdtFc4J9kx4UOzWQLT0=; b=SNRv4G6AtlYGR9ByuIdI7EKebsWyJ6ww76c68vrw12ux1XgFsmLASGyI 9FQhNJrdQMHn6k0YI1sS6aV4edvLbV8NPXvdR41NvlqX5SZ4T0DtdPbgF qnkRuhZ8yZQj2f/sP26VNLskhaglx+SH1flVgFrHE+JqYSDH1o15Byzs1 vcRHTfJh6b3Kfx4lBwcI/+RxMNSwLHB2BJ+A4wKrdsGCEdWC9k7CFGGW/ BWBolab81DK/0jqhV8OheI7W+yOPB8HKlcU0YO44GjOBSsSecXdh4h0ZW ysPXfAtFvCKjv4dWwticoXckitPPlDd0dluRwQwWiZpjhXU/E0J0b8Uwm Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10281"; a="315957627" X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="315957627" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 04:39:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="513970244" Received: from silpixa00399126.ir.intel.com ([10.237.223.34]) by orsmga006.jf.intel.com with ESMTP; 10 Mar 2022 04:39:03 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: john.mcnamara@intel.com, Bruce Richardson Subject: [PATCH v2 7/8] doc/linux_gsg: drop reference to KNI Date: Thu, 10 Mar 2022 12:38:42 +0000 Message-Id: <20220310123843.612207-8-bruce.richardson@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310123843.612207-1-bruce.richardson@intel.com> References: <20220308145001.529734-1-bruce.richardson@intel.com> <20220310123843.612207-1-bruce.richardson@intel.com> MIME-Version: 1.0 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 The KNI library is disabled by default in DPDK and is already documented in the programmers guide and also in the sample application guide. There are also in-kernel alternatives to it. Therefore, we can drop the (already fairly minimal) reference to it from the Linux GSG. Signed-off-by: Bruce Richardson --- doc/guides/linux_gsg/enable_func.rst | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst index 0036c542f5..1f19842ddc 100644 --- a/doc/guides/linux_gsg/enable_func.rst +++ b/doc/guides/linux_gsg/enable_func.rst @@ -128,19 +128,6 @@ These generic APIs can work with either TSC or HPET time sources, depending on what is requested by an application call to ``rte_eal_hpet_init()``, if any, and on what is available on the system at runtime. -Loading the DPDK KNI Kernel Module ----------------------------------- - -To run the DPDK Kernel NIC Interface (KNI) sample application, an extra kernel module (the kni module) must be loaded into the running kernel. -The module is found in the kernel/linux sub-directory of the DPDK build directory. -It should be loaded using the insmod command:: - - insmod /kernel/linux/kni/rte_kni.ko - -.. note:: - - See the "Kernel NIC Interface Sample Application" chapter in the *DPDK Sample Applications User Guide* for more details. - Using Linux IOMMU Pass-Through to Run DPDK with Intel\ |reg| VT-d ------------------------------------------------------------------ From patchwork Thu Mar 10 12:38:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 108652 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B88F8A0093; Thu, 10 Mar 2022 13:39:44 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B36144117E; Thu, 10 Mar 2022 13:39:08 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 9B9CD41174 for ; Thu, 10 Mar 2022 13:39:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646915946; x=1678451946; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nqBLrMNyJ8B7PyuffDytONet+I9HomPfqQlOU4phDmM=; b=YieJphlBdOi896n7ikmKpr/FPO15xaW4fOoNvy9aX8LNO4DTd9FqcMoA jYaKlgCez2/x4n7ZSzAqrYbudgfHuatbu7eLkO3NInA2luKaIhgRWtOvW +kBos71OEdz0aYleYTqyIgREM8DMpx+HS2o2THf5TLMZMxAVxoBmcb0/v IiPaThP62G9FZyJ3OKYgzW77znOrx4YJVci3Cx15Y2fgPwsyJTYOJ6npA 1z8f0KLt7yJXQ+KkHnuueRggMQEa/6cO+TrP2M2/wdErSn4KSSW3WGpZE uyTsIscMDlQG64E22WGXDrjJdPsOkVgSOEy4jQiRulxytu9YT4xzvElDA A==; X-IronPort-AV: E=McAfee;i="6200,9189,10281"; a="315957629" X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="315957629" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 04:39:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,170,1643702400"; d="scan'208";a="513970251" Received: from silpixa00399126.ir.intel.com ([10.237.223.34]) by orsmga006.jf.intel.com with ESMTP; 10 Mar 2022 04:39:04 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: john.mcnamara@intel.com, Bruce Richardson Subject: [PATCH v2 8/8] doc/linux_gsg: remove section on IOMMU pass-through Date: Thu, 10 Mar 2022 12:38:43 +0000 Message-Id: <20220310123843.612207-9-bruce.richardson@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220310123843.612207-1-bruce.richardson@intel.com> References: <20220308145001.529734-1-bruce.richardson@intel.com> <20220310123843.612207-1-bruce.richardson@intel.com> MIME-Version: 1.0 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 The "Linux Drivers" section of the GSG already notes that, for use of UIO, the IOMMU must be disabled or put into pass-through mode. Therefore, there is no need to duplicate this information in the "additional functionality" section. Also the kernel configuration options documented in the section are enabled as standard on all common distro kernels, so the information should not be needed in a GSG doc. Signed-off-by: Bruce Richardson --- doc/guides/linux_gsg/enable_func.rst | 19 ------------------- doc/guides/linux_gsg/linux_drivers.rst | 2 +- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/doc/guides/linux_gsg/enable_func.rst b/doc/guides/linux_gsg/enable_func.rst index 1f19842ddc..338c33290b 100644 --- a/doc/guides/linux_gsg/enable_func.rst +++ b/doc/guides/linux_gsg/enable_func.rst @@ -127,22 +127,3 @@ it is recommended that the ``rte_get_timer_cycles()`` and ``rte_get_timer_hz()`` These generic APIs can work with either TSC or HPET time sources, depending on what is requested by an application call to ``rte_eal_hpet_init()``, if any, and on what is available on the system at runtime. - -Using Linux IOMMU Pass-Through to Run DPDK with Intel\ |reg| VT-d ------------------------------------------------------------------- - -To enable Intel\ |reg| VT-d in a Linux kernel, a number of kernel configuration options must be set. These include: - -* ``IOMMU_SUPPORT`` - -* ``IOMMU_API`` - -* ``INTEL_IOMMU`` - -In addition, to run the DPDK with Intel\ |reg| VT-d, the ``iommu=pt`` kernel parameter must be used when using ``igb_uio`` driver. -This results in pass-through of the DMAR (DMA Remapping) lookup in the host. -Also, if ``INTEL_IOMMU_DEFAULT_ON`` is not set in the kernel, the ``intel_iommu=on`` kernel parameter must be used too. -This ensures that the Intel IOMMU is being initialized as expected. - -Please note that while using ``iommu=pt`` is compulsory for ``igb_uio`` driver, -the ``vfio-pci`` driver can actually work with both ``iommu=pt`` and ``iommu=on``. diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst index 03cf264a0a..2e4c80ebd3 100644 --- a/doc/guides/linux_gsg/linux_drivers.rst +++ b/doc/guides/linux_gsg/linux_drivers.rst @@ -367,7 +367,7 @@ It can be loaded as shown below: .. note:: - If the devices used for DPDK are bound to the ``uio_pci_generic`` kernel module, + If the devices used for DPDK are bound to a UIO-based kernel module, please make sure that the IOMMU is disabled or is in passthrough mode. One can add ``intel_iommu=off`` or ``amd_iommu=off`` or ``intel_iommu=on iommu=pt`` in GRUB command line on x86_64 systems,