Message ID | 1407851107-4565-1-git-send-email-venkatesh.vivekanandan@linaro.org |
---|---|
State | Accepted |
Commit | 64b4f44f369491049b38d52cb01c449081e23b49 |
Headers | show |
On 2014-08-12 19:15, venkatesh.vivekanandan@linaro.org wrote: > From: Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org> > > - export RTE_SDK and RTE_TARGET before compiling ODP > - new commands for odp_l2fwd and pktio > - cleanup > > Signed-off-by: Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org> Reviewed-by: Anders Roxell <anders.roxell@linaro.org> > --- > platform/linux-dpdk/README | 41 +++++++++++++++++++++++++---------------- > 1 file changed, 25 insertions(+), 16 deletions(-) > > diff --git a/platform/linux-dpdk/README b/platform/linux-dpdk/README > index 14ad4e8..0f2210b 100644 > --- a/platform/linux-dpdk/README > +++ b/platform/linux-dpdk/README > @@ -5,7 +5,7 @@ SPDX-License-Identifier: BSD-3-Clause > > ODP-DPDK: > --------- > - This effort is to port ODP on top of DPDK and use dpdk as the > + This effort is to port ODP on top of DPDK and use DPDK as the > accelerator for all intel NIC's. Pre-requisite is DPDK should be cloned and > compiled. DPDK and ODP was compiled and tested on Ubuntu 14.04 > 3.13.0-29-generic kernel. > @@ -13,25 +13,31 @@ compiled. DPDK and ODP was compiled and tested on Ubuntu 14.04 > # To Clone DPDK > $ git clone http://92.243.14.124/git/dpdk ./<dpdk-dir> > > -# we support only 1.6.0r2 of dpdk for now > +# we support only 1.6.0r2 of DPDK for now > $ git tag -l -- will list all the tags available > $ git checkout -b 1.6.0 tags/v1.6.0r2 > -# Please refer dpdk.org website for more details on how to build dpdk. > -# Best effort is done to provide some help on dpdk cmds below for Ubuntu, > +# Please refer to http://dpdk.org/doc for more details on how to build > +# DPDK. Getting started guide for Linux might be of help. > +# Best effort is done to provide some help on DPDK cmds below for Ubuntu, > # where it was compiled and tested. > # Please refer "How to setup and compile DPDK" section in this document > > # To compile ODP with linux-dpdk > + > +$ export RTE_SDK=<dpdk-dir> > +# For example > +$ export RTE_SDK=/root/dpdk > +$ export RTE_TARGET=x86_64-default-linuxapp-gcc > +# RTE_TARGET is the configuration used while building DPDK > + > $ cd <odp-dir> > $ ./bootstrap > -$ ./configure --with-platform=linux-dpdk --with-sdk-install-path=<dpdk-install-path> > -# For example > -$ ./configure --with-platform=linux-dpdk --with-sdk-install-path=/root/dpdk/build > +$ ./configure --with-platform=linux-dpdk --with-sdk-install-path=$RTE_SDK/$RTE_TARGET > $ make > > -# Commands to test > -l2fwding app - sudo ./test/l2fwd/odp_l2fwd -i 0,1 -m 0 -c 2 > -loopback app - sudo ./test/packet/odp_pktio -i 0,1 -m 0 -c 2 > +# App commands to test > +l2fwding app - sudo ./example/l2fwd/odp_l2fwd -i 0,1 -m 0 -c 2 > +loopback app - sudo ./example/packet/odp_pktio -i 0,1 -m 0 -c 2 > > -i 0,1 - interface number > -m 0 - burst mode > @@ -42,10 +48,13 @@ How to setup and compile DPDK: > $ cd <dpdk-dir> > > # This has to be done only once. > -# Following command will generate build dir as ./build in <dpdk-dir> > -$ make install T=x86_64-default-linuxapp-gcc CONFIG_RTE_BUILD_COMBINE_LIBS=y EXTRA_CFLAGS="-fPIC" > +$ make config T=x86_64-default-linuxapp-gcc O=x86_64-default-linuxapp-gcc > +# set CONFIG_RTE_BUILD_COMBINE_LIBS=y in .config file > +# Note: if non-intel SFP's are used in IXGBE, then set CONFIG_RTE_LIBRTE_IXGBE_ALLOW_UNSUPPORTED_SFP=y in .config file > +$ make install T=x86_64-default-linuxapp-gcc EXTRA_CFLAGS="-fPIC" > + > > -# If "conflicting types for skb_set_hash" error happens during dpdk > +# If "conflicting types for skb_set_hash" error happens during DPDK > # build, then please knock-off skb_set_hash function from kcompat.h as > # shown below. This was seen in Ubuntu 3.13.0-30-generic. > diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h > @@ -63,10 +72,10 @@ index 19df483..78a794a 100644 > -} > #endif /* NETIF_F_RXHASH */ > #endif /* < 3.14.0 */ > -# this only ensures building dpdk, but traffic is not tested with this > +# this only ensures building DPDK, but traffic is not tested with this > # build yet. It is upto the user to test it. > > -# To reserve huge pages, which is needed for dpdk, execute following command > +# To reserve huge pages, which is needed for DPDK, execute following command > $ sudo sh -c 'echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages' > # If you are running on a multi-node machine then, hugepages should be reserved on each node > $ ls /sys/devices/system/node > @@ -108,7 +117,7 @@ Other network devices > # Now you should look for pci id listed and give it in the following command > # in place of 05:00.X > > -# To give the interfaces to dpdk, use following command > +# To give the interfaces to DPDK, use following command > $ sudo ./tools/igb_uio_bind.py --bind=igb_uio 05:00.0 > $ sudo ./tools/igb_uio_bind.py --bind=igb_uio 05:00.1 > # To restore it back to kernel, use following command > -- > 1.8.1.2 > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp
diff --git a/platform/linux-dpdk/README b/platform/linux-dpdk/README index 14ad4e8..0f2210b 100644 --- a/platform/linux-dpdk/README +++ b/platform/linux-dpdk/README @@ -5,7 +5,7 @@ SPDX-License-Identifier: BSD-3-Clause ODP-DPDK: --------- - This effort is to port ODP on top of DPDK and use dpdk as the + This effort is to port ODP on top of DPDK and use DPDK as the accelerator for all intel NIC's. Pre-requisite is DPDK should be cloned and compiled. DPDK and ODP was compiled and tested on Ubuntu 14.04 3.13.0-29-generic kernel. @@ -13,25 +13,31 @@ compiled. DPDK and ODP was compiled and tested on Ubuntu 14.04 # To Clone DPDK $ git clone http://92.243.14.124/git/dpdk ./<dpdk-dir> -# we support only 1.6.0r2 of dpdk for now +# we support only 1.6.0r2 of DPDK for now $ git tag -l -- will list all the tags available $ git checkout -b 1.6.0 tags/v1.6.0r2 -# Please refer dpdk.org website for more details on how to build dpdk. -# Best effort is done to provide some help on dpdk cmds below for Ubuntu, +# Please refer to http://dpdk.org/doc for more details on how to build +# DPDK. Getting started guide for Linux might be of help. +# Best effort is done to provide some help on DPDK cmds below for Ubuntu, # where it was compiled and tested. # Please refer "How to setup and compile DPDK" section in this document # To compile ODP with linux-dpdk + +$ export RTE_SDK=<dpdk-dir> +# For example +$ export RTE_SDK=/root/dpdk +$ export RTE_TARGET=x86_64-default-linuxapp-gcc +# RTE_TARGET is the configuration used while building DPDK + $ cd <odp-dir> $ ./bootstrap -$ ./configure --with-platform=linux-dpdk --with-sdk-install-path=<dpdk-install-path> -# For example -$ ./configure --with-platform=linux-dpdk --with-sdk-install-path=/root/dpdk/build +$ ./configure --with-platform=linux-dpdk --with-sdk-install-path=$RTE_SDK/$RTE_TARGET $ make -# Commands to test -l2fwding app - sudo ./test/l2fwd/odp_l2fwd -i 0,1 -m 0 -c 2 -loopback app - sudo ./test/packet/odp_pktio -i 0,1 -m 0 -c 2 +# App commands to test +l2fwding app - sudo ./example/l2fwd/odp_l2fwd -i 0,1 -m 0 -c 2 +loopback app - sudo ./example/packet/odp_pktio -i 0,1 -m 0 -c 2 -i 0,1 - interface number -m 0 - burst mode @@ -42,10 +48,13 @@ How to setup and compile DPDK: $ cd <dpdk-dir> # This has to be done only once. -# Following command will generate build dir as ./build in <dpdk-dir> -$ make install T=x86_64-default-linuxapp-gcc CONFIG_RTE_BUILD_COMBINE_LIBS=y EXTRA_CFLAGS="-fPIC" +$ make config T=x86_64-default-linuxapp-gcc O=x86_64-default-linuxapp-gcc +# set CONFIG_RTE_BUILD_COMBINE_LIBS=y in .config file +# Note: if non-intel SFP's are used in IXGBE, then set CONFIG_RTE_LIBRTE_IXGBE_ALLOW_UNSUPPORTED_SFP=y in .config file +$ make install T=x86_64-default-linuxapp-gcc EXTRA_CFLAGS="-fPIC" + -# If "conflicting types for skb_set_hash" error happens during dpdk +# If "conflicting types for skb_set_hash" error happens during DPDK # build, then please knock-off skb_set_hash function from kcompat.h as # shown below. This was seen in Ubuntu 3.13.0-30-generic. diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h @@ -63,10 +72,10 @@ index 19df483..78a794a 100644 -} #endif /* NETIF_F_RXHASH */ #endif /* < 3.14.0 */ -# this only ensures building dpdk, but traffic is not tested with this +# this only ensures building DPDK, but traffic is not tested with this # build yet. It is upto the user to test it. -# To reserve huge pages, which is needed for dpdk, execute following command +# To reserve huge pages, which is needed for DPDK, execute following command $ sudo sh -c 'echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages' # If you are running on a multi-node machine then, hugepages should be reserved on each node $ ls /sys/devices/system/node @@ -108,7 +117,7 @@ Other network devices # Now you should look for pci id listed and give it in the following command # in place of 05:00.X -# To give the interfaces to dpdk, use following command +# To give the interfaces to DPDK, use following command $ sudo ./tools/igb_uio_bind.py --bind=igb_uio 05:00.0 $ sudo ./tools/igb_uio_bind.py --bind=igb_uio 05:00.1 # To restore it back to kernel, use following command