Message ID | 20180822133736.10768-2-aconole@redhat.com |
---|---|
State | Changes Requested |
Delegated to: | Ian Stokes |
Headers | show |
Series | system-dpdk: add support to ping two namespaces | expand |
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@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 -------------------------------------------------------------------------- >
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 --------------------------------------------------------------------------
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. Signed-off-by: Aaron Conole <aconole@redhat.com> --- tests/system-dpdk-macros.at | 18 +++++++++++++++--- tests/system-dpdk.at | 16 ++++++++-------- 2 files changed, 23 insertions(+), 11 deletions(-)