[ovs-discuss] Failing ovs tests on big-endian system

Ben Pfaff blp at nicira.com
Tue Dec 2 19:14:02 UTC 2014


On Fri, Nov 28, 2014 at 01:30:08PM +0100, Mijo Safradin wrote:
> 
> 
> >>It fails on master and on older git versions as well. Even using Debian Sid,
> >>the same errors could be observed. Can you provide hardware details about
> >>the power/s390 machines the mentioned test has been executed on?
> >
> >Basics about the machines are in the Debian machine database:
> >
> >The mips machine: https://db.debian.org/machines.cgi?host=corelli
> >The powerpc machine: https://db.debian.org/machines.cgi?host=poulenc
> >The s390 machine: https://db.debian.org/machines.cgi?host=zandonai
> >
> 
> thanks
> 
> >>When using the openvswitch-2.3.0.tar.gz release, most of the failed test do
> >>pass, but other tests do fail.
> >
> >All the tests you show failing below relate to ssl.  This is probably
> >unrelated to endianness.  Please take a look at the testsuite log to
> >find the details.
> >
> >>Here's a subset of test which do fail on master and passed on 2.3.0
> >
> >I'd suggest doing a "git bisect" run to find the point at which tests
> >started failing due to endian problems.
> >
> 
> Ok, I did 'git bisect' for the first failing test case, which is
>   'flow classifier - lookup segmentation'
> No. 79 on master
> No. 78 at bisect bad commit
> 
> ...
> [root at s390x ovs-test]# git bisect bad
> a64759f02d8324caf6c37af0ac4e3e1d26e02a43 is the first bad commit
> commit a64759f02d8324caf6c37af0ac4e3e1d26e02a43
> Author: Jarno Rajahalme <jrajahalme at nicira.com>
> Date:   Fri Jun 13 10:38:05 2014 -0700
> 
>     lib/classifier: Optimize megaflows for single rule case.
> 
>     When, during a classifier lookup, we narrow down to a single potential
>     rule, it is enough to match on ("unwildcard") one bit that differs
>     between the packet and the rule.
> 
>     This is a special case of the more general algorithm, where it is
>     sufficient to match on enough bits that separates the packet from all
>     higher priority rules than the matched rule.  For a miss that would be
>     all the rules.  Implementing this is expensive for a more than a few
>     rules.  This patch starts by doing this for a single rule when we
>     already have it, also reducing the lookup cost by finishing the lookup
>     earlier than before.
> 
>     Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
>     Acked-by: Ben Pfaff <blp at nicira.com>
> 
> :040000 040000 e912f31d212ce362445ee961447e1bc3c7ff393a
> d0006051050c1e73a83811909f583d7d38b73229 M	lib
> :040000 040000 2cbd9fba63166d7037843de87d150a4b47a79260
> be70c481bc5241662029436eb79b520f6067512f M	tests
> ...
> 
> It looks like the patch is not part of the 2.3.0 release, which
> explains why the test doesn't fail using this release.
> 
> The fact that 'maskp' comes in LE order doesen't hurt here.

Thanks for narrowing it down.

Jarno, can you take a look and figure out a nice way to make this code
work properly on both little-endian and big-endian systems?

Thanks,

Ben.



More information about the discuss mailing list