Open phillipjohnston opened 5 years ago
Maybe we waste a few extra bytes in the aligned space... need a "magic" marker that indicates that this was allocated by aligned_malloc(). If the sentinel matches, then we call the aligned version.
👍 I would be all for this. It is good to mimic how GLIBC behaves. And I don't think the costs outweigh the benefit
I implemented this in https://github.com/embeddedartistry/libmemory/pull/91 but it is mostly just posted for review at this moment as it needs more testing. I tried it out in emu test_0007_smp.exe
where I use it to allocate save restore space for AVX registers using XSAVE/XRSTOR
and that will fault if memory is not 64-byte aligned, and it appears to work, but I have not done exhaustive testing yet.
With aligned_alloc() in the C11 standard, free() is called to free memory, rather than an equivalent
aligned_free()
.We should update our library with some logic that can be used to correctly call aligned_free() if free() is used instead.