[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