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

Ilya Maximets i.maximets at samsung.com
Tue Sep 3 16:47:55 UTC 2019


> Hi
> 
> 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
> architecture.
> 
> 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:

Hi.

What is your target platform?
One explanation I could imagine is that DPDK blindly forces -march=armv8-a+crc
defining __ARM_FEATURE_CRC32 while your cpu doesn't support crc32 extension.

Do you have crc32 in the list of cpu features in /proc/cpuinfo ?

Best regards, Ilya Maximets.

> 
> Program received signal SIGILL, Illegal instruction.
> hash_bytes (p_=p_ at entry=0xaaaaaac36e50, n=7, basis=basis at entry=0) at
> ../lib/hash.c:38
> 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
> ../lib/hash.c:38
>         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
> ../lib/shash.c:28
> 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
> ../lib/db-ctl-base.c:2470
>         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
> ../ovn/utilities/ovn-nbctl.c:5695
> 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.
> 
> Cheers
> 
> James



More information about the dev mailing list