Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1962050

Summary: fio crashes when running crc32c hash tests on Raspberry Pi 3/4 (aarch64) devices
Product: [Fedora] Fedora Reporter: Peter Robinson <pbrobinson>
Component: fioAssignee: Eric Sandeen <esandeen>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 34CC: esandeen, ngompa13, pportant, ykorman
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 245418    

Description Peter Robinson 2021-05-19 09:03:46 UTC
When running "fio --crctest=crc32c" on a Raspberry Pi 3B/3B+/4B it crashes with the following:

# fio --crctest=crc32c
Illegal instruction (core dumped)

The Raspberry Pi has the aarch64 HW crc32 instruction, but then so do basically all aarch64 platforms and all others I tested run fine. The feature was made mandatory for ARMv8.1 and only a few early SoCs didn't have it.

Output from a gdb backtrace:

(gdb) thread apply all bt

Thread 1 (Thread 0xfffff7fef010 (LWP 9814) "fio"):
#0  crc32c_arm64 (data=0xffffefa0b018 "\213\202\360zj[\354\017Q\220\030\016\365MU\037\n\222\232Y\262\"\347\016AR.\002\211\267I\024HJ%\367ٵK\nI\251\300\231({T\034)\225\223\276\204B\265\b\245\362=\315\006I\263\035
T>U\340\201\002v\034ʧ\340\234%Й\021\371\024\267_\224k&\006\237bz\001\227\235\211\023S\314߮\365\262>\n\212y\262\317\356\376Q\005\061O1\235\004\330x\031\346\251\r\354g\314C\t<\265\216(\206\203\276\036\247\326sj)\27
4\270\027\324\372\372AKb\263\005Z_\325\352K\313\\\006뫭\315\376\243\033\b}5\300\003\251\r\261\003\257\206\271\005՟\314\024հ_\335\035\021\270\001\032vA\343s\023;\034"..., data@entry=0xffffefa0b010 "^\024\374(D\17
7\343\003\213\202\360zj[\354\017Q\220\030\016\365MU\037\n\222\232Y\262\"\347\016AR.\002\211\267I\024HJ%\367ٵK\nI\251\300\231({T\034)\225\223\276\204B\265\b\245\362=\315\006I\263\035T>U\340\201\002v\034ʧ\340\234%
Й\021\371\024\267_\224k&\006\237bz\001\227\235\211\023S\314߮\365\262>\n\212y\262\317\356\376Q\005\061O1\235\004\330x\031\346\251\r\354g\314C\t<\265\216(\206\203\276\036\247\326sj)\274\270\027\324\372\372AKb\263\0
05Z_\325\352K\313\\\006뫭\315\376\243\033\b}5\300\003\251\r\261\003\257\206\271\005՟\314\024հ_\335\035\021\270\001"..., length=length@entry=131072) at crc/crc32c-arm64.c:64
#1  0x0000aaaaaaabbd6c in fio_crc32c (len=131072, buf=0xffffefa0b010 "^\024\374(D\177\343\003\213\202\360zj[\354\017Q\220\030\016\365MU\037\n\222\232Y\262\"\347\016AR.\002\211\267I\024HJ%\367ٵK\nI\251\300\231({T
\034)\225\223\276\204B\265\b\245\362=\315\006I\263\035T>U\340\201\002v\034ʧ\340\234%Й\021\371\024\267_\224k&\006\237bz\001\227\235\211\023S\314߮\365\262>\n\212y\262\317\356\376Q\005\061O1\235\004\330x\031\346\251
\r\354g\314C\t<\265\216(\206\203\276\036\247\326sj)\274\270\027\324\372\372AKb\263\005Z_\325\352K\313\\\006뫭\315\376\243\033\b}5\300\003\251\r\261\003\257\206\271\005՟\314\024հ_\335\035\021\270\001"...) at crc/
../crc/crc32c.h:53
#2  t_crc32c (t=0xaaaaaab70260 <t.lto_priv+96>, buf=0xffffefa0b010, size=131072) at crc/test.c:93
#3  0x0000aaaaaaac333c in fio_crctest (type=<optimized out>) at crc/test.c:410
#4  0x0000aaaaaaacbde4 in parse_cmd_line (argc=argc@entry=2, argv=argv@entry=0xfffffffff598, client_type=client_type@entry=1) at /usr/src/debug/fio-3.26-2.fc34.aarch64/init.c:2863
#5  0x0000aaaaaaaccd74 in parse_options (argv=0xfffffffff598, argc=2) at /usr/src/debug/fio-3.26-2.fc34.aarch64/init.c:2992
#6  parse_options (argc=2, argv=0xfffffffff598) at /usr/src/debug/fio-3.26-2.fc34.aarch64/init.c:2982
#7  0x0000aaaaaaab90a0 in main (argc=2, argv=0xfffffffff598, envp=<optimized out>) at /usr/src/debug/fio-3.26-2.fc34.aarch64/fio.c:42