lockfree icon indicating copy to clipboard operation
lockfree copied to clipboard

x86-64 pointer tagging is unsound on most recent Intel CPUs (Ice Lake)

Open oliver-giersch opened this issue 4 years ago • 1 comments

According to the boost::lockfree documentation and from what I can see from boost/lockfree/detail/tagged_ptr_ptrcompression.hpp, the implementation of the free-list stores a 16-bit tag value in the upper bits of a 64-bit pointer.

Most recent Intel x86_48 microarchs (Ice Lake) use 5-level page tables and 57-bit virtual addresses, meaning this technique of pointer tagging can fail unexpectedly when used on such a processor.

oliver-giersch avatar Mar 26 '20 10:03 oliver-giersch