[ovs-build] Errored: igsilya/ovs#608 (tmp-master - 56dcab3)

Travis CI builds at travis-ci.org
Mon Dec 16 14:32:16 UTC 2019


Build Update for igsilya/ovs
-------------------------------------

Build: #608
Status: Errored

Duration: 42 mins and 15 secs
Commit: 56dcab3 (tmp-master)
Author: Ilya Maximets
Message: ovs-thread: Avoid huge alignment on a base spinlock structure.

Marking the structure as 64 bytes aligned forces compiler to produce
big holes in the containing structures in order to fulfill this
requirement.  Also, any structure that contains this one as a member
automatically inherits this huge alignment making resulted memory
layout not efficient.  For example, 'struct umem_pool' currently
uses 3 full cache lines (192 bytes) with only 32 bytes of actual data:

  struct umem_pool {
    int                        index;                /*  0   4 */
    unsigned int               size;                 /*  4   4 */

    /* XXX 56 bytes hole, try to pack */

    /* --- cacheline 1 boundary (64 bytes) --- */
    struct ovs_spin lock __attribute__((__aligned__(64))); /* 64  64 */

    /* XXX last struct has 48 bytes of padding */

    /* --- cacheline 2 boundary (128 bytes) --- */
    void * *                   array;                /* 128  8 */

    /* size: 192, cachelines: 3, members: 4 */
    /* sum members: 80, holes: 1, sum holes: 56 */
    /* padding: 56 */
    /* paddings: 1, sum paddings: 48 */
    /* forced alignments: 1, forced holes: 1, sum forced holes: 56 */
  } __attribute__((__aligned__(64)));

Actual alignment of a spin lock is required only for Tx queue locks
inside netdev-afxdp to avoid false sharing, in all other cases
alignment only produces inefficient memory usage.

Also, CACHE_LINE_SIZE macro should be used instead of 64 as different
platforms may have different cache line sizes.

Using PADDED_MEMBERS to avoid alignment inheritance.

CC: William Tu <u9012063 at gmail.com>
Fixes: ae36d63d7e3c ("ovs-thread: Make struct spin lock cache aligned.")
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>

View the changeset: https://github.com/igsilya/ovs/compare/9425c3dacae2...56dcab3045b8

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

--

You can unsubscribe from build emails from the igsilya/ovs repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=17831080&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/20191216/9a56fa5f/attachment-0001.html>


More information about the build mailing list