[dpdk-users] DPDK mlx4 PMD on Azure VM

Hui Ling kelvin.brookletling at gmail.com
Mon Jan 8 04:01:09 CET 2018


Stephen,

My last VM (DS3 v2, with 4 cores and 16GB memory) is in Canada East
and I got AN enabled on my subscription so AN worked just fine.

For DPDK, I saw from your slides in DPDK submit last year saying
current DPDK solution in Azure needs:

1) Linux kerlnel 4.14
2) 8 cores

I am not sure if these are must. I tried to upgrade my Ubuntu to 4.14,
but then I ran into compilation issues with DPDK 17.11 for MLX4 PMD.
So I stayed with older version of kernel for Ubuntu 16.04.
With my config of VM, however, I could not get the failsafe.sh I got
from MS for azure to work.

So I am not sure if it is my VM setting, or my VM kernel.

It will be very helpful if MS has some clear guide on how DPDK works on Azure.

Hui



On Sat, Jan 6, 2018 at 4:45 AM, Stephen Hemminger
<stephen at networkplumber.org> wrote:
> Accelerated networking is now generally available for Linux (and Windows) in
> all regions.
>
> https://azure.microsoft.com/en-us/blog/maximize-your-vm-s-performance-with-accelerated-networking-now-generally-available-for-both-windows-and-linux/
>
> On Mon, Jan 1, 2018 at 8:27 PM, Stephen Hemminger
> <stephen at networkplumber.org> wrote:
>>
>> On Thu, 21 Dec 2017 15:35:00 +0800
>> Hui Ling <kelvin.brookletling at gmail.com> wrote:
>>
>> > Andy,
>> >
>> > My last VM is not in "Canada East" center since no AN type of instance
>> > was available to me at the time I created my VM.
>> >
>> > Just tried on a same type VM in Canada East, and it seems that the
>> > location does make a difference.
>> >
>> > This time, I was able to run testpmd without any explicit errors:
>> >
>> > root at myVM:/home/hling/dpdk-17.11# build/app/testpmd -l 1-2 -n 4 -w
>> > 0004:00:02.0 0002:00:02.0 -- --rxq=2 --txq=2 -i
>> > EAL: Detected 4 lcore(s)
>> > EAL: No free hugepages reported in hugepages-1048576kB
>> > EAL: Probing VFIO support...
>> > EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using
>> > unreliable clock cycles !
>> > EAL: PCI device 0004:00:02.0 on NUMA socket 0
>> > EAL:   probe driver: 15b3:1004 net_mlx4
>> > PMD: mlx4.c:465: mlx4_pci_probe(): PCI information matches, using
>> > device "mlx4_3" (VF: true)
>> > PMD: mlx4.c:492: mlx4_pci_probe(): 1 port(s) detected
>> > PMD: mlx4.c:586: mlx4_pci_probe(): port 1 MAC address is
>> > 00:0d:3a:f4:49:c4
>> > Interactive-mode selected
>> > USER1: create a new mbuf pool <mbuf_pool_socket_0>: n=155456,
>> > size=2176, socket=0
>> > Configuring Port 0 (socket 0)
>> > Port 0: 00:0D:3A:F4:49:C4
>> > Checking link statuses...
>> > Done
>> >
>> > testpmd> start tx_first
>> > io packet forwarding - ports=1 - cores=1 - streams=2 - NUMA support
>> > enabled, MP over anonymous pages disabled
>> > Logical Core 2 (socket 0) forwards packets on 2 streams:
>> >   RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
>> >   RX P=0/Q=1 (socket 0) -> TX P=0/Q=1 (socket 0) peer=02:00:00:00:00:00
>> >
>> >   io packet forwarding - CRC stripping enabled - packets/burst=32
>> >   nb forwarding cores=1 - nb forwarding ports=1
>> >   RX queues=2 - RX desc=128 - RX free threshold=0
>> >   RX threshold registers: pthresh=0 hthresh=0 wthresh=0
>> >   TX queues=2 - TX desc=512 - TX free threshold=0
>> >   TX threshold registers: pthresh=0 hthresh=0 wthresh=0
>> >   TX RS bit threshold=0 - TXQ flags=0x0
>> > testpmd> stop
>> > Telling cores to stop...
>> > Waiting for lcores to finish...
>> >
>> >   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0
>> > -------
>> >   RX-packets: 0              TX-packets: 32             TX-dropped: 0
>> >   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1
>> > -------
>> >   RX-packets: 0              TX-packets: 32             TX-dropped: 0
>> >   ---------------------- Forward statistics for port 0
>> > ----------------------
>> >   RX-packets: 0              RX-dropped: 0             RX-total: 0
>> >   TX-packets: 64             TX-dropped: 0             TX-total: 64
>> >
>> > ----------------------------------------------------------------------------
>> >
>> >   +++++++++++++++ Accumulated forward statistics for all
>> > ports+++++++++++++++
>> >   RX-packets: 0              RX-dropped: 0             RX-total: 0
>> >   TX-packets: 64             TX-dropped: 0             TX-total: 64
>> >
>> > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> >
>> > Done.
>> > testpmd>
>> >
>> >
>> >
>> > Not sure why I don't see any packets transmission, but at least the
>> > MLX4 PMD seems to be able to talk to the mlx4_en driver, or is it?
>> >
>> > Will keep digging.
>> >
>> > Hui
>> >
>> > On Wed, Dec 20, 2017 at 9:39 PM, Andrew Bainbridge
>> > <andbain at microsoft.com> wrote:
>> > > Hi Hui
>> > >
>> > > Did you create your VM in the "Canada East" data center? This page
>> > > suggests that is a requirement:
>> > >
>> > > https://azure.microsoft.com/en-us/blog/azure-networking-updates-for-fall-2017/
>> > >
>> > > Also, I seem to remember reading that the VM must have at least 8
>> > > cores. Sorry, I can't find a reference for that.
>> > >
>> > > - Andy
>> > >
>> > > -----Original Message-----
>> > > From: Hui Ling
>> > >
>> > > This is my VM info in case it is needed.
>> > >
>> > > =======================================================================================================
>> > > A Standard_DS3_v2 instance from Azure. (one of these models support
>> > > AN)
>> > >
>>
>> You will need to a couple of things.
>> 1. Make sure you have a VM capable of accelerated networking, and that
>> your Azure account
>>    has opt-ed in. Last I checked it was still in preview until RHEL 7 with
>> AN support was released.
>>
>>
>> https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-vm-accelerated-networking
>>
>>   There are many different regions, and most have AN by now. Which one are
>> you trying?
>>
>>
>>    Make sure Linux without DPDK is working with AN first.
>>
>> 2. DPDK support requires 17.11 or later DPDK and the failsafe and TAP
>> PMD's.
>>    The Mellanox mlx4 on Azure is only used after a flow is established.
>>    The initial packet (and broadcast/multicast) show up on the
>> non-accelerated netvsc device.
>>    See the DPDK User Summit in Dublin 2017 for more detal.
>>
>> For later releases if you watch the development mailing list you will see
>> the enhancements being done to simplify setup of TAP/failsafe.
>>
>


More information about the users mailing list