Hipe and memory alignment (Yikes! erts_alloc() returned misaligned address)

Paul Guyot <>
Wed Aug 4 18:59:35 CEST 2010


When running erl with native (hipe) code on some platforms (FreeBSD amd64), one quickly encounters messages such as:

Yikes! erts_alloc() returned misaligned address 0x8016a512c

This message seems to come from hipe_bifs:alloc_data/2. The allocator is the system allocator, which on unix platform is malloc, and malloc does not necessarily return aligned blocks (on MacOS X, it does, but not on FreeBSD).

Does it really matter? (hipe_bifs:alloc_data/2 is only called from hipe_unified_loader:create_data_segment/3).
If it doesn't, can we remove the log line?
If it does, can we replace the allocator with another one that always return aligned blocks?

Semiocast                    http://semiocast.com/
+33.175000290 - 62 bis rue Gay-Lussac, 75005 Paris

More information about the erlang-questions mailing list