[ovs-dev] SIGILL ovs branch-2.12/arm64/DPDK

James Page james.page at canonical.com
Tue Sep 3 10:25:51 UTC 2019


I've been testing non-x86 architecture builds for the upcoming 2.12 release
of OVS and I'm hitting an issue with DPDK enabled builds on the arm64

branch-2.12 includes improvements for native hashing under arm64; these
appear to work fine when DPDK is not in the mix, but with DPDK enabled, I
get a SIGILL in lib/hash.c:

Program received signal SIGILL, Illegal instruction.
hash_bytes (p_=p_ at entry=0xaaaaaac36e50, n=7, basis=basis at entry=0) at
38 ../lib/hash.c: No such file or directory.

(gdb) backtrace full
#0  hash_bytes (p_=p_ at entry=0xaaaaaac36e50, n=7, basis=basis at entry=0) at
        p = 0xaaaaaac36e50
        orig_n = 7
        hash = 0
#1  0x0000aaaaaab4238c in hash_string (basis=0, s=0xaaaaaac36e50 "comment")
at ../lib/hash.h:342
No locals.
#2  hash_name (name=name at entry=0xaaaaaac36e50 "comment") at
No locals.
#3  0x0000aaaaaab42a1c in shash_find (sh=sh at entry=0xaaaaaaceb6f8
<all_commands>, name=name at entry=0xaaaaaac36e50 "comment")
    at ../lib/shash.c:231
No locals.
#4  0x0000aaaaaab42a60 in shash_add_once (sh=0xaaaaaaceb6f8 <all_commands>,
name=0xaaaaaac36e50 "comment",
    data=0xaaaaaacdb0d8 <db_ctl_commands>) at ../lib/shash.c:135
No locals.
#5  0x0000aaaaaab42ab4 in shash_add_assert (sh=sh at entry=0xaaaaaaceb6f8
<all_commands>, name=<optimized out>,
    data=data at entry=0xaaaaaacdb0d8 <db_ctl_commands>) at ../lib/shash.c:146
        __func__ = "shash_add_assert"
#6  0x0000aaaaaab05900 in ctl_register_command (command=0xaaaaaacdb0d8
<db_ctl_commands>) at ../lib/db-ctl-base.c:2470
No locals.
#7  ctl_register_commands (commands=0xaaaaaacdb0d8 <db_ctl_commands>) at
        p = 0xaaaaaacdb0d8 <db_ctl_commands>
        p = <optimized out>
#8  ctl_init__ (idl_class_=<optimized out>, ctl_classes_=<optimized out>,
cmd_show_tables_=0x0, ctl_exit_func_=<optimized out>)
    at ../lib/db-ctl-base.c:2486
No locals.
#9  0x0000aaaaaaad5768 in nbctl_cmd_init () at
No locals.
#10 main (argc=1, argv=0xfffffffff4d8) at ../ovn/utilities/ovn-nbctl.c:137
        idl = <optimized out>
        local_options = {map = {buckets = 0x0, one = 0xfffffffff390, mask =
281473881441200, n = 187649986051872}}
        args = <optimized out>
        parsed_options = 0xfffffffff350
        n_parsed_options = 187649986051968
        error_s = <optimized out>
        socket_name = <optimized out>
        daemon_mode = <optimized out>

This effects pretty much all of the binaries built with DPDK enabled.

gcc version is 9.2.1 on Ubuntu eoan; I've not tested on earlier gcc
versions (yet).

Any help/pointers much appreciated.



More information about the dev mailing list