[ovs-build] Failed: ovsrobot/ovs#983 (series_108312 - 893591c)

Travis CI builds at travis-ci.org
Fri May 17 02:04:55 UTC 2019


Build Update for ovsrobot/ovs
-------------------------------------

Build: #983
Status: Failed

Duration: 1 hr, 8 mins, and 23 secs
Commit: 893591c (series_108312)
Author: Ankur Sharma
Message: OVN: Fix the ovn-controller 100% usage issue with put_mac_bindings

ISSUE:
a. As soon as entries get added to put_mac_bindings in pinctrl.c,
   ovn-controller CPU consumption reached 100%.

b. This happens because in wait_put_mac_bindings,
   if !hmap_is_empty(&put_mac_bindings) succeeds and
   calls poll_immediat_wake().

   ovn-controller.log:
   "2019-05-10T19:43:28.035Z|00035|poll_loop|INFO|wakeup due to
    0-ms timeout at ovn/controller/pinctrl.c:2520 (99% CPU usage)"

ROOT_CAUSE:
a. Earlier it used to work fine, because in run_put_mac_bindings
   all the bindings in put_mac_bindings would be flushed.

b. As a part of adding a new thread in pinctrl, this
   line got replaced with calling buffer_put_mac_bindings.

    "
    .
    .
    .
       /* Move the mac bindings from 'put_mac_bindings' hmap to
     * 'buffered_mac_bindings' and notify the pinctrl_handler.
     * pinctrl_handler will reinject the buffered packets. */
    if (!hmap_is_empty(&put_mac_bindings)) {
        buffer_put_mac_bindings();
        notify_pinctrl_handler();
    }
    "

    And buffer_put_mac_binding would pop the bindings from
    put_mac_bindings, thereby emptying it.

c.  However, 1c24b2f490ba002bbfeb23006965188a7c5b9747
    changed the buffer dequeueing logic and in the process
    removed buffer_put_mac_binding, as a result put_mac_bindings
    would never get empty.

FIX:
a. Added call to flush_put_mac_bindings back in
   run_put_mac_bindings.

b. Additionally, updated the documentation in pinctrl.c to
   reflect the new buffer dequeueing logic added by
   1c24b2f490ba002bbfeb23006965188a7c5b9747.

Signed-off-by: Ankur Sharma <ankur.sharma at nutanix.com>
Reported-by: Ankur Sharma <ankur.sharma at nutanix.com>
CC: Lorenzo Bianconi <lorenzo.bianconi at redhat.com>
Fixes: 1c24b2f490ba ("OVN: fix pinctrl ip buffering for gw router port")
Signed-off-by: 0-day Robot <robot at bytheb.org>

View the changeset: https://github.com/ovsrobot/ovs/commit/893591c6fba4

View the full build log and details: https://travis-ci.org/ovsrobot/ovs/builds/533588546?utm_medium=notification&utm_source=email

--

You can unsubscribe from build emails from the ovsrobot/ovs repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=22285853&utm_medium=notification&utm_source=email.
Or unsubscribe from *all* email updating your settings at https://travis-ci.org/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/20190517/de69e7a9/attachment-0001.html>


More information about the build mailing list