You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When loading GeoBIN files on ARMv7 cpus, there is a memory alignment issue while reading the WKB coordinates directly in the parse_wkb_posns function and this crashes the program with a bus error:
Extract from dmesg:
Alignment trap: not handling instruction edda3b00 at [<00430638>]
8<--- cut here ---
Unhandled fault: alignment exception (0x011) at 0xb65ee549
[b65ee549] *pgd=36804831
The instruction corresponds to VLDM which requires 8 bytes alignment, which isn't always the case.
To avoid this issue, the points can be forced to be read with the read_posn.
Here's a proposition to fix it: main...abeggc:tg:bugfix/mem-align-arm
Let me know and I can create a pull request.
The text was updated successfully, but these errors were encountered:
I also made a small change which speeds the loads up a bit. I moved the alignment check into the first block and then loaded the unaligned doubles into new allocation. This was about 2x faster than using the read_posn block, which is really only intended for reading doubles from WKB that has a different endianness than the cpu.
Uh oh!
There was an error while loading. Please reload this page.
When loading GeoBIN files on ARMv7 cpus, there is a memory alignment issue while reading the WKB coordinates directly in the
parse_wkb_posns
function and this crashes the program with a bus error:Extract from dmesg:
The instruction corresponds to
VLDM
which requires 8 bytes alignment, which isn't always the case.To avoid this issue, the points can be forced to be read with the
read_posn
.Here's a proposition to fix it: main...abeggc:tg:bugfix/mem-align-arm
Let me know and I can create a pull request.
The text was updated successfully, but these errors were encountered: