[ovs-dev] [PATCH v2 1/6] system-dpdk: update test suite for non-phy testing

Ian Stokes ian.stokes at intel.com
Mon Aug 27 11:25:07 UTC 2018


On 8/22/2018 2:37 PM, Aaron Conole wrote:
> This allows a system that doesn't have a dedicated DPDK nic to
> execute some DPDK tests.  In this fashion, tests that operate on
> virtual ports (such as dpdkvhostuserclient) can be executed in
> a wider set of environments.

Overall I think this approach is fine, however the DPDK testing 
documentation should also be updated in this patch to flag that a NIC is 
no longer required.

Documentation/topics/testing.rst b/Documentation/topics/testing.rst

Ian
> 
> Signed-off-by: Aaron Conole <aconole at redhat.com>
> ---
>   tests/system-dpdk-macros.at | 18 +++++++++++++++---
>   tests/system-dpdk.at        | 16 ++++++++--------
>   2 files changed, 23 insertions(+), 11 deletions(-)
> 
> diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at
> index 0762ee055..2e5571fc4 100644
> --- a/tests/system-dpdk-macros.at
> +++ b/tests/system-dpdk-macros.at
> @@ -2,7 +2,6 @@
>   #
>   # Check prerequisites for DPDK tests. Following settings are checked:
>   #  - Hugepages
> -#  - UIO driver
>   #
>   m4_define([OVS_DPDK_PRE_CHECK],
>     [dnl Check Hugepages
> @@ -11,13 +10,26 @@ m4_define([OVS_DPDK_PRE_CHECK],
>      AT_CHECK([mount], [], [stdout])
>      AT_CHECK([grep 'hugetlbfs' stdout], [], [stdout], [])
>   
> +])
> +
> +
> +# OVS_DPDK_PRE_PHY_SKIP()
> +#
> +# Skip any phy related tests if the PHY variable is not set.
> +# This is done by checking for a bound driver.
> +#
> +m4_define([OVS_DPDK_PRE_PHY_SKIP],
> +  [dnl Perform the precheck
> +   OVS_DPDK_PRE_CHECK()
> +
>      dnl Check if VFIO or UIO driver is loaded
> -   AT_CHECK([lsmod | grep -E "igb_uio|vfio"], [], [stdout])
> +   AT_SKIP_IF([ ! (lsmod | grep -E "igb_uio|vfio") ], [], [stdout])
>   
>      dnl Find PCI address candidate, skip if there is no DPDK-compatible NIC
>      AT_CHECK([$DPDK_DIR/usertools/dpdk-devbind.py -s | head -n +4 | tail -1], [], [stdout])
>      AT_CHECK([cat stdout | cut -d" " -s -f1 > PCI_ADDR])
> -   AT_CHECK([test -s PCI_ADDR || exit 77])
> +   AT_SKIP_IF([ ! test -s PCI_ADDR ])
> +
>   ])
>   
>   
> diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
> index 3d21b0136..6901d19e6 100644
> --- a/tests/system-dpdk.at
> +++ b/tests/system-dpdk.at
> @@ -4,14 +4,14 @@ dnl --------------------------------------------------------------------------
>   dnl Check if EAL init is successfull
>   AT_SETUP([OVS-DPDK datapath - EAL init])
>   AT_KEYWORDS([dpdk])
> -dnl OVS_DPDK_PRE_CHECK()
> +OVS_DPDK_PRE_CHECK()
>   OVS_DPDK_START()
>   AT_CHECK([grep "DPDK Enabled - initializing..." ovs-vswitchd.log], [], [stdout])
>   AT_CHECK([grep "EAL" ovs-vswitchd.log], [], [stdout])
>   AT_CHECK([grep "DPDK Enabled - initialized" ovs-vswitchd.log], [], [stdout])
> -OVS_VSWITCHD_STOP("/Global register is changed during/d
> -/EAL: No free hugepages reported in hugepages-1048576kB/d
> -")
> +OVS_VSWITCHD_STOP(["/Global register is changed during/d
> +/EAL:   Invalid NUMA socket, default to 0/d
> +/EAL: No free hugepages reported in hugepages-1048576kB/d"])
>   AT_CLEANUP
>   dnl --------------------------------------------------------------------------
>   
> @@ -22,7 +22,7 @@ dnl Add standard DPDK PHY port
>   AT_SETUP([OVS-DPDK datapath - add standard DPDK port])
>   AT_KEYWORDS([dpdk])
>   
> -OVS_DPDK_PRE_CHECK()
> +OVS_DPDK_PRE_PHY_SKIP()
>   OVS_DPDK_START()
>   
>   dnl Add userspace bridge and attach it to OVS
> @@ -63,11 +63,11 @@ AT_CHECK([grep "VHOST_CONFIG: /tmp/dpdkvhostclient0: reconnecting..." ovs-vswitc
>   
>   dnl Clean up
>   AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout], [stderr])
> -OVS_VSWITCHD_STOP("/does not exist. The Open vSwitch kernel module is probably not loaded./d
> +OVS_VSWITCHD_STOP(["/does not exist. The Open vSwitch kernel module is probably not loaded./d
>   /Failed to enable flow control/d
>   /failed to connect to \/tmp\/dpdkvhostclient0: No such file or directory/d
>   /Global register is changed during/d
> -/EAL: No free hugepages reported in hugepages-1048576kB/d
> -")
> +/EAL:   Invalid NUMA socket, default to 0/d
> +/EAL: No free hugepages reported in hugepages-1048576kB/d"])
>   AT_CLEANUP
>   dnl --------------------------------------------------------------------------
> 



More information about the dev mailing list