From patchwork Fri Jan 3 15:32:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 64193 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E05BCA04F3; Fri, 3 Jan 2020 16:33:26 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E27B81D455; Fri, 3 Jan 2020 16:33:14 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id D5CEA1D44C for ; Fri, 3 Jan 2020 16:33:12 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Jan 2020 07:33:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,391,1571727600"; d="scan'208";a="222192964" Received: from silpixa00399126.ir.intel.com (HELO silpixa00399126.ger.corp.intel.com) ([10.237.223.2]) by orsmga003.jf.intel.com with ESMTP; 03 Jan 2020 07:33:11 -0800 From: Bruce Richardson To: john.mcnamara@intel.com, marko.kovacevic@intel.com Cc: anatoly.burakov@intel.com, dev@dpdk.org, Bruce Richardson Date: Fri, 3 Jan 2020 15:32:53 +0000 Message-Id: <20200103153256.2895527-3-bruce.richardson@intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200103153256.2895527-1-bruce.richardson@intel.com> References: <20200103153256.2895527-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 2/5] doc: document installing from FreeBSD package X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Update the FreeBSD GSG to cover installing from the pre-built package as well as installing from a port. Also, since the port is now based on meson, update the instructions for compiling and running the example applications. Signed-off-by: Bruce Richardson --- Note: at this stage, DPDK is in the "latest" package snapshot, but has not yet made it's way into the quarterly snapshot used by default by stable releases. This is hopefully only a matter of time. --- doc/guides/freebsd_gsg/install_from_ports.rst | 73 +++++++++---------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/doc/guides/freebsd_gsg/install_from_ports.rst b/doc/guides/freebsd_gsg/install_from_ports.rst index 29f16cc6c..36dc4a417 100644 --- a/doc/guides/freebsd_gsg/install_from_ports.rst +++ b/doc/guides/freebsd_gsg/install_from_ports.rst @@ -7,29 +7,31 @@ Installing DPDK from the Ports Collection ========================================= The easiest way to get up and running with the DPDK on FreeBSD is to -install it from the ports collection. Details of getting and using the ports -collection are documented in the -`FreeBSD Handbook `_. +install it using the FreeBSD `pkg` utility or from the ports collection. +Details of installing applications from packages or the ports collection are documented in the +`FreeBSD Handbook `_, +chapter `Installing Applications: Packages and Ports `_. -Installing the DPDK FreeBSD Port --------------------------------- +.. note:: -On a system with the ports collection installed in ``/usr/ports``, the DPDK -can be installed using the commands: + Please ensure that the latest patches are applied to third party libraries + and software to avoid any known vulnerabilities. -.. code-block:: console - cd /usr/ports/net/dpdk +Installing the DPDK Package for FreeBSD +--------------------------------------- - make install +DPDK can be installed on FreeBSD using the command:: + + pkg install dpdk -After the installation of the DPDK port, instructions will be printed on +After the installation of the DPDK package, instructions will be printed on how to install the kernel modules required to use the DPDK. A more complete version of these instructions can be found in the sections :ref:`loading_contigmem` and :ref:`loading_nic_uio`. Normally, lines like those below would be added to the file ``/boot/loader.conf``. -.. code-block:: console +.. code-block:: shell # Reserve 2 x 1G blocks of contiguous memory using contigmem driver: hw.contigmem.num_buffers=2 @@ -40,24 +42,32 @@ those below would be added to the file ``/boot/loader.conf``. hw.nic_uio.bdfs="2:0:0,2:0:1" nic_uio_load="YES" -.. note:: - Please ensure that the latest patches are applied to third party libraries - and software to avoid any known vulnerabilities. +Installing the DPDK FreeBSD Port +-------------------------------- + +If so desired, the user can install DPDK using the ports collection rather than from +a pre-compiled binary package. +On a system with the ports collection installed in ``/usr/ports``, the DPDK +can be installed using the commands:: + + cd /usr/ports/net/dpdk + + make install Compiling and Running the Example Applications ---------------------------------------------- When the DPDK has been installed from the ports collection it installs -its example applications in ``/usr/local/share/dpdk/examples`` - also accessible via -symlink as ``/usr/local/share/examples/dpdk``. These examples can be compiled and -run as described in :ref:`compiling_sample_apps`. In this case, the required -environmental variables should be set as below: +its example applications in ``/usr/local/share/dpdk/examples``. +These examples can be compiled and run as described in :ref:`compiling_sample_apps`. -* ``RTE_SDK=/usr/local/share/dpdk`` +.. note:: -* ``RTE_TARGET=x86_64-native-freebsd-clang`` + DPDK example applications must be complied using `gmake` rather than + BSD `make`. To detect the installed DPDK libraries, `pkg-config` should + also be installed on the system. .. note:: @@ -66,25 +76,18 @@ environmental variables should be set as below: the instructions given in the next chapter, :ref:`building_from_source` An example application can therefore be copied to a user's home directory and -compiled and run as below: - -.. code-block:: console - - export RTE_SDK=/usr/local/share/dpdk - - export RTE_TARGET=x86_64-native-freebsd-clang +compiled and run as below, where we have 2 memory blocks of size 1G reserved +via the contigmem module, and 4 NIC ports bound to the nic_uio module:: cp -r /usr/local/share/dpdk/examples/helloworld . cd helloworld/ gmake - CC main.o - LD helloworld - INSTALL-APP helloworld - INSTALL-MAP helloworld.map + cc -O3 -I/usr/local/include -include rte_config.h -march=corei7 -D__BSD_VISIBLE main.c -o build/helloworld-shared -L/usr/local/lib -lrte_bpf -lrte_flow_classify -lrte_pipeline -lrte_table -lrte_port -lrte_fib -lrte_ipsec -lrte_stack -lrte_security -lrte_sched -lrte_reorder -lrte_rib -lrte_rcu -lrte_rawdev -lrte_pdump -lrte_member -lrte_lpm -lrte_latencystats -lrte_jobstats -lrte_ip_frag -lrte_gso -lrte_gro -lrte_eventdev -lrte_efd -lrte_distributor -lrte_cryptodev -lrte_compressdev -lrte_cfgfile -lrte_bitratestats -lrte_bbdev -lrte_acl -lrte_timer -lrte_hash -lrte_metrics -lrte_cmdline -lrte_pci -lrte_ethdev -lrte_meter -lrte_net -lrte_mbuf -lrte_mempool -lrte_ring -lrte_eal -lrte_kvargs + ln -sf helloworld-shared build/helloworld - sudo ./build//helloworld -l 0-3 + sudo ./build/helloworld -l 0-3 EAL: Sysctl reports 8 cpus EAL: Detected 8 lcore(s) EAL: Detected 1 NUMA nodes @@ -98,16 +101,12 @@ compiled and run as below: EAL: 0000:00:19.0 not managed by UIO driver, skipping EAL: PCI device 0000:01:00.0 on NUMA socket 0 EAL: probe driver: 8086:1572 net_i40e - EAL: 0000:01:00.0 not managed by UIO driver, skipping EAL: PCI device 0000:01:00.1 on NUMA socket 0 EAL: probe driver: 8086:1572 net_i40e - EAL: 0000:01:00.1 not managed by UIO driver, skipping EAL: PCI device 0000:01:00.2 on NUMA socket 0 EAL: probe driver: 8086:1572 net_i40e - EAL: 0000:01:00.2 not managed by UIO driver, skipping EAL: PCI device 0000:01:00.3 on NUMA socket 0 EAL: probe driver: 8086:1572 net_i40e - EAL: 0000:01:00.3 not managed by UIO driver, skipping hello from core 1 hello from core 2 hello from core 3