[ovs-build] Fixed: markdgray/ovs#23 (thundering_v10 - 75b5119)

Travis CI builds at travis-ci.com
Wed Oct 28 14:19:29 UTC 2020


Build Update for markdgray/ovs
-------------------------------------

Build: #23
Status: Fixed

Duration: 58 mins and 16 secs
Commit: 75b5119 (thundering_v10)
Author: Aaron Conole
Message: dpif-netlink: distribute polling to discreet handlers

Currently, the channel handlers are polled globally.  On some
systems, this causes a thundering herd issue where multiple
handler threads become active, only to do no work and immediately
sleep.

The approach here is to push the netlink socket channels to discreet
handler threads to process, rather than polling on every thread.
This will eliminate the need to wake multiple threads.

To check:

  ip netns add left
  ip netns add right
  ip link add center-left type veth peer name left0 netns left
  ip link add center-right type veth peer name right0 netns right
  ip link set center-left up
  ip link set center-right up
  ip -n left ip link set left0 up
  ip -n left ip addr add 172.31.110.10/24 dev left0
  ip -n right ip link set right0 up
  ip -n right ip addr add 172.31.110.11/24 dev right0

  ovs-vsctl add-br br0
  ovs-vsctl add-port br0 center-right
  ovs-vsctl add-port br0 center-left

  # in one terminal
  perf record -e sched:sched_wakeup,irq:softirq_entry -ag

  # in a separate terminal
  ip netns exec left arping -I left0 -c 1 172.31.110.11

  # in the perf terminal after exiting
  perf script

Look for the number of 'handler' threads which were made active.

Suggested-by: Ben Pfaff <blp at ovn.org>
Suggested-by: Flavio Leitner <fbl at sysclose.org>
Co-authored-by: Mark Gray <mark.d.gray at redhat.com>
Reported-by: David Ahern <dsahern at gmail.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2019-December/365857.html
Cc: Matteo Croce <technoboy85 at gmail.com>
Fixes: 69c51582f ("dpif-netlink: don't allocate per thread netlink sockets")
Signed-off-by: Aaron Conole <aconole at redhat.com>
Signed-off-by: Mark Gray <mark.d.gray at redhat.com>

View the changeset: https://github.com/markdgray/ovs/compare/070708de5bb1...75b5119c3156

View the full build log and details: https://travis-ci.com/github/markdgray/ovs/builds/194562920?utm_medium=notification&utm_source=email


--

You can unsubscribe from build emails from the markdgray/ovs repository going to https://travis-ci.com/account/preferences/unsubscribe?repository=15802606&utm_medium=notification&utm_source=email.
Or unsubscribe from *all* email updating your settings at https://travis-ci.com/account/preferences/unsubscribe?utm_medium=notification&utm_source=email.
Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-build/attachments/20201028/9ec228b2/attachment-0001.html>


More information about the build mailing list