SIGILL in rte_cpu_get_flag_enabled / RTE_CPUFLAG_RTM

Bernd Schubert bs_lists at aakef.fastmail.fm
Fri Sep 22 20:02:42 CEST 2023


> 
> This already has been reported here
> https://inbox.dpdk.org/users/C7FF2508-D633-404E-95AF-5F604D8E8E4B@intel.com/t/
> but I don't see a solution there. It just ends up asking for the line 
> numbers.
> Well, the line is
> 
> 
>       __cpuid_count(feat->leaf, feat->subleaf,
>               regs[RTE_REG_EAX], regs[RTE_REG_EBX],
>               regs[RTE_REG_ECX], regs[RTE_REG_EDX]);
> 
>      /* check if the feature is enabled */
>      return (regs[feat->reg] >> feat->bit) & 1; ====> line 173
> 
> 
> Maybe this should catch SIGILL?
> 

Hmm, after disabling 2 flags in that function (fast workaround) it continues with

reflect_32bits (val=<optimized out>) at ../lib/net/rte_net_crc.c:96
96			if ((val & (1U << i)) != 0)
(gdb) bt
#0  reflect_32bits (val=<optimized out>) at ../lib/net/rte_net_crc.c:96
#1  crc32_eth_init_lut (poly=poly at entry=79764919, lut=lut at entry=0x7ffff70b9d40 <crc32_eth_lut>) at ../lib/net/rte_net_crc.c:109
#2  0x00007ffff3ffcc99 in rte_net_crc_scalar_init () at ../lib/net/rte_net_crc.c:137
#3  rte_net_crc_init () at ../lib/net/rte_net_crc.c:337
#4  0x00007ffff7fc947e in call_init (l=<optimized out>, argc=argc at entry=1, argv=argv at entry=0x7fffffffe078, env=env at entry=0x7fffffffe088)
     at ./elf/dl-init.c:70
#5  0x00007ffff7fc9568 in call_init (env=0x7fffffffe088, argv=0x7fffffffe078, argc=1, l=<optimized out>) at ./elf/dl-init.c:33
#6  _dl_init (main_map=0x7ffff7ffe2e0, argc=1, argv=0x7fffffffe078, env=0x7fffffffe088) at ./elf/dl-init.c:117
#7  0x00007ffff7fe32ea in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#8  0x0000000000000001 in ?? ()
#9  0x00007fffffffe356 in ?? ()
#10 0x0000000000000000 in ?? ()




More information about the dev mailing list