Re: [ovs-discuss] [ovs-dev] Packet Drop Issue in OVS-DPDK L2FWD Application

2018-11-19 Thread Robert Brooks
On Mon, Nov 19, 2018 at 5:36 AM Ian Stokes  wrote:

> On 11/18/2018 8:16 PM, vkrishnabhat k wrote:
> > Hi Team,
> >
> > I am new to OVS and DPDK. While I am using l2fwd application with OVS and
> > DPDK I am seeing packet drop issue in OVS bridge.
> >
> > Topology : My topology has Ubuntu machine (Ubuntu 18.04 LTS). I have
> > installed Qemu-KVM 2.11.1 version. Also I am using OVS-DPDK. Please find
> > the detailed topology attached with this mail. I have bound two NICs
> (Intel
> > 82599ES 10-gigabit ) to dpdk IGB_UIO driver and also have added same
> ports
> > in to OVS bridge "br0". I am trying to send the bidirectional traffic
> from
> > both the port and measure the throughput value for the l2fwd application
>

I also saw drops in the br0 using ovs-dpdk with 82599ES cards, see "poor
ovs-dpdk performance vs ovs", unfortunately the stats got truncated, so I
re-ran the testing and I see them here:

AutoAttach table

_uuid mappings system_description system_name

-  -- ---


Bridge table

_uuidauto_attach controller datapath_id
datapath_type datapath_version external_ids fail_mode flood_vlans
flow_tables ipfix mcast_snooping_enable mirrors name  netflow other_config
ports
  protocols rstp_enable rstp_status sflow status stp_enable

 --- --
-- -   -
--- --- - - --- - ---


- --- --- - -- --

28911b6f-4f85-4a77-982c-d16b0e284e1a []  [] "001b21a6ddc4"
netdev"" {}   [][]  {}
  []false []  "br0" []  {}
[257ad852-9078-4378-a996-3cbb7772457e,
2cff7d6e-2f3a-4aec-8f1c-f29125760771] []false   {}  []
  {} false


Controller table

_uuid connection_mode controller_burst_limit controller_rate_limit
enable_async_messages external_ids inactivity_probe is_connected
local_gateway local_ip local_netmask max_backoff other_config role status
target

- --- -- -
-   
-  - ---   --
--


Flow_Sample_Collector_Set table

_uuid bridge external_ids id ipfix

- --  -- -


Flow_Table table

_uuid external_ids flow_limit groups name overflow_policy prefixes

-  -- --  --- 


IPFIX table

_uuid cache_active_timeout cache_max_flows external_ids obs_domain_id
obs_point_id other_config sampling targets

-  ---  -
   ---


Interface table

_uuidadmin_state bfd bfd_status cfm_fault
cfm_fault_status cfm_flap_count cfm_health cfm_mpid cfm_remote_mpids
cfm_remote_opstate duplex error external_ids ifindex  ingress_policing_burst
ingress_policing_rate lacp_current link_resets link_speed  link_state lldp
mac mac_in_use  mtu  mtu_request name   ofport ofport_request
options   other_config statistics



















  status




type

 --- --- -- -
 -- --  
-- -- -  
-- -  ---
--- --  --- ---  --- --
-- -- - 

Re: [ovs-discuss] poor ovs-dpdk performance vs ovs

2018-11-16 Thread Robert Brooks
Hi Tiago,

you are correct, this is a virtualization environment. The tests numbers I
am quoting are running directly on the hypervisor, rather than guests.

My ultimate aim is to get good performance for guests talking over VXLAN.
Using OvS I get around 5Gb/s between guests talking over VXLAN and near
wire speed performance where the guests talk to a bridge without VXLAN. I'd
like to improve on the VXLAN performance.

I believe VXLAN is offloaded by tx-udp_tnl-segmentation? (...VXLAN is being
configured at the interface level by OpenNebula, so handled by the kernel
module).

Regarding the NIC, I see:

[root@v41 ~]# ethtool -k p2p1 | grep tcp-segmentation-offload

*tcp-segmentation-offload*: on


Are the TSO patches for OvS-DPDK suitable to apply and use, if so anything
I should know? eg version to apply to, source to obtain current patches
from?

Many thanks,

Rob

On Fri, Nov 16, 2018 at 2:06 AM Lam, Tiago  wrote:

> Hi,
>
> I have a couple of questions, but at a first glance this seems to be a
> result of OvS-DPDK not yet supporting TSO, while the Kernel does. We are
> in the works of addressing that.
>
> The numbers you are reporting, ~9.4 Gbps vs ~5.5 Gbps are very similar
> to the ones we have been getting with and without our TSO series [1]
> applied.
>
> On the description below, is this a virtualized environment by any
> change? I.e. are you running the iperf tests on top of VMs running on
> those Centos hosts, or directly on them?
>
> Can you also confirm you are using TSO when using OvS with the Kernel by
> reporting what you get with $ethtool -k $iface | grep
> "tcp-segmentation-offload:". Is it reported as "on"?
>
> Regards,
> Tiago.
>
> [1] https://mail.openvswitch.org/pipermail/ovs-dev/2018-August/350832.html
>
> On 15/11/2018 22:17, Robert Brooks wrote:
> > I have a pair of Centos 7 hosts on 10gig switch.
> >
> > Using OVS without dpdk enabled I can get 9.4Gb/s with a simple iperf
> test.
> >
> > After switching the receiving host to ovs-dpdk following guidance here:
> > http://docs.openvswitch.org/en/latest/intro/install/dpdk/
> >
> > I get 1.02Gb/s with 1500 MTU and 5.75Gb/s with a 9000 MTU.
> >
> > Hardware is a Dell R630, with two E5-2680 26 core @ 2.40GHz cpus, 256GB
> > RAM, Intel 92599ES NIC.
> >
> > I have confirmed the doucmented kernel boot options are set and 1GB
> > hugepages are in use.
> >
> > # cat /proc/cmdline
> > BOOT_IMAGE=/vmlinuz-3.10.0-862.3.2.el7.x86_64
> > root=UUID=7d4edcad-0fd5-4224-a55f-ff2db81aac27 ro crashkernel=auto
> > rd.lvm.lv <http://rd.lvm.lv>=vg01/swap rd.lvm.lv
> > <http://rd.lvm.lv>=vg01/usr console=ttyS0,115200 iommu=pt intel_iommu=on
> > default_hugepagesz=1G hugepagesz=1G hugepages=8
> >
> > Software is openvswitch 2.10.1 built using the provided rpm spec file. I
> > have used both the Centos provided dpdk 17.11 and a re-compile using
> > latest LTS of 17.11.4.
> >
> > I have tried various performance tweaks, including cpu pinning and
> > isolated cpus.
> >
> > Switching back to regular ovs returns the performance to close to wire
> > speed.
> >
> > Under load the following is logged:
> >
> > 2018-11-15T21:59:24.306Z|00170|poll_loop|INFO|wakeup due to [POLLIN] on
> > fd 74 (character device /dev/net/tun) at lib/netdev-linux.c:1347 (98%
> > CPU usage)
> >
> > Config dump:
> >
> > # ovsdb-client dump Open_vSwitch
> >
> > AutoAttach table
> >
> > _uuid mappings system_description system_name
> >
> > -  -- ---
> >
> >
> > Bridge table
> >
> > _uuidauto_attach controller datapath_id
> >   datapath_type datapath_version external_ids fail_mode flood_vlans
> > flow_tables ipfix mcast_snooping_enable mirrors name  netflow
> > other_config ports
> >
> >
> >  --- --
> > -- -   -
> > --- --- - - --- -
> > --- 
> > -
> >
> > 006f021a-b14d-49fb-a11d-48df2fa2bca1 []  []
> > "001b21a6ddc4" netdev"" {}   []
> > []  {}  []false []  "br0" []
> >   {}   [3bd79dba-777c-40d0-b573-bf9e027326f4,
> > 60b0661f-2177-4283-a6cb-a80336
> >
> >
> > Controller table
> >
> > _uuid connection_mode controller_burst_li

[ovs-discuss] poor ovs-dpdk performance vs ovs

2018-11-15 Thread Robert Brooks
I have a pair of Centos 7 hosts on 10gig switch.

Using OVS without dpdk enabled I can get 9.4Gb/s with a simple iperf test.

After switching the receiving host to ovs-dpdk following guidance here:
http://docs.openvswitch.org/en/latest/intro/install/dpdk/

I get 1.02Gb/s with 1500 MTU and 5.75Gb/s with a 9000 MTU.

Hardware is a Dell R630, with two E5-2680 26 core @ 2.40GHz cpus, 256GB
RAM, Intel 92599ES NIC.

I have confirmed the doucmented kernel boot options are set and 1GB
hugepages are in use.

# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-862.3.2.el7.x86_64
root=UUID=7d4edcad-0fd5-4224-a55f-ff2db81aac27 ro crashkernel=auto
rd.lvm.lv=vg01/swap
rd.lvm.lv=vg01/usr console=ttyS0,115200 iommu=pt intel_iommu=on
default_hugepagesz=1G hugepagesz=1G hugepages=8

Software is openvswitch 2.10.1 built using the provided rpm spec file. I
have used both the Centos provided dpdk 17.11 and a re-compile using latest
LTS of 17.11.4.

I have tried various performance tweaks, including cpu pinning and isolated
cpus.

Switching back to regular ovs returns the performance to close to wire
speed.

Under load the following is logged:

2018-11-15T21:59:24.306Z|00170|poll_loop|INFO|wakeup due to [POLLIN] on fd
74 (character device /dev/net/tun) at lib/netdev-linux.c:1347 (98% CPU
usage)

Config dump:

# ovsdb-client dump Open_vSwitch

AutoAttach table

_uuid mappings system_description system_name

-  -- ---


Bridge table

_uuidauto_attach controller datapath_id
datapath_type datapath_version external_ids fail_mode flood_vlans
flow_tables ipfix mcast_snooping_enable mirrors name  netflow other_config
ports

 --- --
-- -   -
--- --- - - --- - ---

-

006f021a-b14d-49fb-a11d-48df2fa2bca1 []  [] "001b21a6ddc4"
netdev"" {}   [][]  {}
  []false []  "br0" []  {}
[3bd79dba-777c-40d0-b573-bf9e027326f4,
60b0661f-2177-4283-a6cb-a80336


Controller table

_uuid connection_mode controller_burst_limit controller_rate_limit
enable_async_messages external_ids inactivity_probe is_connected
local_gateway local_ip local_netmask max_backoff other_config role status
target

- --- -- -
-   
-  - ---   --
--


Flow_Sample_Collector_Set table

_uuid bridge external_ids id ipfix

- --  -- -


Flow_Table table

_uuid external_ids flow_limit groups name overflow_policy prefixes

-  -- --  --- 


IPFIX table

_uuid cache_active_timeout cache_max_flows external_ids obs_domain_id
obs_point_id other_config sampling targets

-  ---  -
   ---


Interface table

_uuidadmin_state bfd bfd_status cfm_fault
cfm_fault_status cfm_flap_count cfm_health cfm_mpid cfm_remote_mpids
cfm_remote_opstate duplex error external_ids ifindex  ingress_policing_burst
ingress_policing_rate lacp_current link_resets link_speed  link_stat

 --- --- -- -
 -- --  
-- -- -  
-- -  ---
--- --

271077eb-97af-4c2d-a5ee-2c63c9367312 up  {}  {} [][]
  [] [] []   []   []
  full   []{}   13   0  0
  []   11  1000up

4c3f7cdb-fd16-44c7-bb82-4aa8cef0c136 up  {}  {} [][]
  [] [] []   []   []
  full   []{}   13032858 0  0
  []   0   100 up   s


Manager table

_uuid connection_mode external_ids inactivity_probe is_connected
max_backoff other_config status target

- ---   
---  -- --


Mirror table

_uuid external_ids name output_port output_vlan select_all select_dst_port
select_src_port select_vlan snaplen statistics

-   --- --- -- ---
--- --- --- --


NetFlow table

_uuid active_timeout add_id_to_interface engine_id engine_type external_ids
targets

- -- --- - ---