On Wed, May 29, 2019 at 10:51 AM William Tu <u9012...@gmail.com> wrote: > > Hi Ilya, > > Thanks for your feedback. > > On Wed, May 29, 2019 at 6:15 AM Ilya Maximets <i.maxim...@samsung.com> wrote: > > > > On 28.05.2019 23:12, William Tu wrote: > > > The patch adds support for using DPDK's AF_XDP PMD. > > > Base on DPDK 19.08-rc0: > > > commit c6a53a6bcd0ae52afe0a6d58b059af577c9408b3 > > > Author: Thomas Monjalon <tho...@monjalon.net> > > > Date: Tue May 14 18:04:37 2019 +0200 > > > > > > version: 19.08-rc0 > > > > > > An AF_XDP PMD can be created by: > > > > > > $ ovs-vsctl add-port br0 afxdp-p0 -- set int afxdp-p0 type=dpdk \ > > > options:dpdk-devargs=net_af_xdp,iface=enp2s0,queue=0 > > > > I'm confused. I didn't try, but I thought that this should work > > out-of-the-box > > without any changes to OVS. Basically, your rte_eal_hotplug_add() and > > rte_dev_probe() > > that we're using right now are the same function with different way of > > passing > > arguments. Have you tried to just use above command without this patch > > applied? > > What happens in this case?
So without my patch, if I do: ovs-vsctl add-port br0 afxdp-p0 -- set int afxdp-p0 type=dpdk \ options:dpdk-devargs=net_af_xdp,iface=enp2s0,queue=0 It also works: 2019-05-29T17:53:39.981Z|00044|netdev_dpdk|INFO|Device 'net_af_xdp,iface=enp2s0,queue=0' attached to DPDK ovs-vsctl show Port "afxdp-p0" Interface "afxdp-p0" type: dpdk options: {dpdk-devargs="net_af_xdp,iface=enp2s0,queue=0"} And the only problem is when removing the device ovs-vsctl del-port afxdp-p0 2019-05-29T17:54:27.671Z|00055|dpdk|ERR|EAL: Driver cannot detach the device (net_af_xdp) 2019-05-29T17:54:27.671Z|00056|dpdk|ERR|EAL: Failed to detach device on primary process 2019-05-29T17:54:27.671Z|00057|netdev_dpdk|ERR|Device 'net_af_xdp,iface=enp2s0,queue=0' can not be detached Thanks, William > > > > Another option you may try is: > > > > ovs-vsctl add-port br0 afxdp-p0 -- set interface afxdp-p0 type=dpdk \ > > options:dpdk-devargs="vdev:net_af_xdp,iface=enp2s0,queue=0" > > > It actually works! When adding the device: > 2019-05-29T17:45:47.128Z|00044|netdev_dpdk|INFO|Device > 'vdev:net_af_xdp,iface=enp2s0,queue=0' attached to DPDK > 2019-05-29T17:45:47.128Z|00045|dpif_netdev|INFO|PMD thread on numa_id: > 0, core id: 11 created. > 2019-05-29T17:45:47.128Z|00046|dpif_netdev|INFO|There are 1 pmd > threads on numa node 0 > 2019-05-29T17:45:47.128Z|00047|dpdk|INFO|Device with port_id=0 already stopped > 2019-05-29T17:45:47.208Z|00048|netdev_dpdk|WARN|Rx checksum offload is > not supported on port 0 > > However , when removing the device, some errors show up. > ovs-vsctl del-port br0 afxdp-p0 > 2019-05-29T17:47:00.318Z|00053|bridge|INFO|bridge br0: deleted > interface afxdp-p0 on port 1 > 2019-05-29T17:47:00.318Z|00054|dpif_netdev|INFO|PMD thread on numa_id: > 0, core id: 11 destroyed. > 2019-05-29T17:47:00.651Z|00055|dpdk|ERR|EAL: Driver cannot detach the > device (net_af_xdp) > 2019-05-29T17:47:00.651Z|00056|dpdk|ERR|EAL: Failed to detach device > on primary process > 2019-05-29T17:47:00.651Z|00057|netdev_dpdk|ERR|Device > 'vdev:net_af_xdp,iface=enp2s0,queue=0' can not be detached > > I also measured the performance, it works fine and shows around 7Mpps. > > > so DPDK will not have to guess the bus type. > > > > > > > > $ ovs-vsctl show > > > Port "afxdp-p0" > > > Interface "afxdp-p0" > > > type: dpdk > > > options: {dpdk-devargs="net_af_xdp,iface=enp2s0,queue=0"} > > > > > > The performance of physical device loopback shows around 7Mpps with 64B > > > pkt. > > > > > > $ ovs-ofctl add-flow br0 "in_port=afxdp-p0, \ > > > > > > actions=set_field:14->in_port,set_field:a0:36:9f:33:b1:40->dl_src,afxdp-p0" > > > > > > Note: I have to set e_RTE_METER_GREEN to 0 to pass compile. > > > > You may use 'dpdk-latest' OVS branch. The proper fix exists there. > > In general, patches that intended to work only with latest DPDK that > > not yet supported on master should be made on top of 'dpdk-latest' > > branch and have [PATCH dpdk-latest] subject prefix. > > Got it, thank you. > William > > > > > Best regards, Ilya Maximets. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev