On 9/13/22 14:27, Kevin Traynor wrote:
> On 05/09/2022 12:50, Sunil Pai G wrote:
>> Improve the test by adding and varying the MTU of a vhost port to check if
>> relevant mempools are created/(re)used.
>>
>> Signed-off-by: Sunil Pai G <[email protected]>
>
> Thanks Sunil. Checked on master and branch-3.0 and working fine.
>
> Acked-by: Kevin Traynor <[email protected]>
Hi. I have one question: Does this test require testpmd?
I mean, if we're not testing vhost-user specifically, we should,
probably, reduce the number of components involved and just use
dpdk 'null' ports, for example.
Best regards, Ilya Maximets.
>
>> ---
>> tests/system-dpdk.at | 61 +++++++++++++++++++++++++++++++++++++++++---
>> 1 file changed, 58 insertions(+), 3 deletions(-)
>>
>> diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
>> index 15f97097a..f3bf7065d 100644
>> --- a/tests/system-dpdk.at
>> +++ b/tests/system-dpdk.at
>> @@ -1123,17 +1123,72 @@ dnl
>> --------------------------------------------------------------------------
>> dnl Setup user configured mempools
>> AT_SETUP([OVS-DPDK - user configured mempool])
>> AT_KEYWORDS([dpdk])
>> +AT_SKIP_IF([! which dpdk-testpmd >/dev/null 2>/dev/null])
>> OVS_DPDK_PRE_CHECK()
>> OVS_DPDK_START_OVSDB()
>> OVS_DPDK_START_VSWITCHD()
>> -AT_CHECK([ovs-vsctl --no-wait set Open_vSwitch .
>> other_config:shared-mempool-config=9000,6000,1500])
>> +AT_CHECK([ovs-vsctl --no-wait set Open_vSwitch .
>> other_config:shared-mempool-config=8000,6000,1500])
>> AT_CHECK([ovs-vsctl --no-wait set Open_vSwitch .
>> other_config:dpdk-init=true])
>> -CHECK_MEMPOOL_PARAM([9000], [ALL], [])
>> +CHECK_MEMPOOL_PARAM([8000], [ALL], [])
>> CHECK_MEMPOOL_PARAM([6000], [ALL], [])
>> CHECK_MEMPOOL_PARAM([1500], [ALL], [])
>> -OVS_VSWITCHD_STOP("[SYSTEM_DPDK_ALLOWED_LOGS]")
>> +AT_CHECK(ovs-appctl vlog/set netdev_dpdk:dbg)
>> +
>> +dnl Find number of sockets
>> +AT_CHECK([lscpu], [], [stdout])
>> +AT_CHECK([cat stdout | grep "NUMA node(s)" | awk '{c=1; while (c++<$(3))
>> {printf "512,"}; print "512"}' > NUMA_NODE])
>> +
>> +dnl Add userspace bridge and vhostuser-client port
>> +AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev])
>> +AT_CHECK([ovs-vsctl add-port br10 dpdkvhostuserclient0 -- set Interface
>> dpdkvhostuserclient0 type=dpdkvhostuserclient
>> options:vhost-server-path=$OVS_RUNDIR/dpdkvhostclient0], [], [stdout],
>> [stderr])
>> +AT_CHECK([ovs-vsctl show], [], [stdout])
>> +sleep 2
>> +
>> +dnl Parse log file for vhost init
>> +AT_CHECK([grep "VHOST_CONFIG: vhost-user client: socket created"
>> ovs-vswitchd.log], [], [stdout])
>> +AT_CHECK([grep "vHost User device 'dpdkvhostuserclient0' created in
>> 'client' mode, using client socket" ovs-vswitchd.log], [], [stdout])
>> +AT_CHECK([grep "VHOST_CONFIG: $OVS_RUNDIR/dpdkvhostclient0:
>> reconnecting..." ovs-vswitchd.log], [], [stdout])
>> +
>> +dnl Execute testpmd in background
>> +on_exit "pkill -f -x -9 'tail -f /dev/null'"
>> +tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat NUMA_NODE)" --no-pci\
>> +
>> --vdev="net_virtio_user,path=$OVS_RUNDIR/dpdkvhostclient0,server=1" \
>> + --file-prefix page0 --single-file-segments -- -a >
>> $OVS_RUNDIR/testpmd-dpdkvhostuserclient0.log 2>&1 &
>> +
>> +OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
>> +
>> +dnl Check if the right user configured mempool is found for default MTU
>> (1500)
>> +AT_CHECK([grep "Found user configured shared mempool .* suitable for port
>> with MTU 1500" ovs-vswitchd.log], [], [stdout])
>> +AT_CHECK([grep "Port dpdkvhostuserclient0: Requesting a mempool"
>> ovs-vswitchd.log], [], [stdout])
>> +
>> +dnl Change the MTU value to 7000 to trigger mempool change
>> +TMP=$(($(cat ovs-vswitchd.log | wc -l | tr -d [[:blank:]])+1))
>> +AT_CHECK(ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=7000)
>> +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "Found user
>> configured shared mempool .* suitable for port with MTU 7000"])
>> +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "Port
>> dpdkvhostuserclient0: Requesting a mempool"])
>> +
>> +dnl Change back the MTU value to 1500 to trigger mempool change (re-use)
>> +TMP=$(($(cat ovs-vswitchd.log | wc -l | tr -d [[:blank:]])+1))
>> +AT_CHECK(ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=1500)
>> +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "Found user
>> configured shared mempool .* suitable for port with MTU 1500"])
>> +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "Reusing mempool"])
>> +
>> +dnl Change the MTU value beyond the max value in shared-mempool-config list
>> +TMP=$(($(cat ovs-vswitchd.log | wc -l | tr -d [[:blank:]])+1))
>> +AT_CHECK(ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=9000)
>> +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "No user configured
>> shared mempool mbuf sizes found suitable for port with MTU 9000"])
>> +OVS_WAIT_UNTIL([tail -n +$TMP ovs-vswitchd.log | grep "Port
>> dpdkvhostuserclient0: Requesting a mempool"])
>> +
>> +dnl Clean up the testpmd now
>> +pkill -f -x -9 'tail -f /dev/null'
>> +
>> +dnl Clean up
>> +AT_CHECK([ovs-vsctl del-port br10 dpdkvhostuserclient0], [], [stdout],
>> [stderr])
>> +OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [
>> +\@VHOST_CONFIG: failed to connect to $OVS_RUNDIR/dpdkvhostclient0: No such
>> file or directory@d
>> +])")
>> AT_CLEANUP
>> dnl
>> --------------------------------------------------------------------------
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev