I wrote a little blog post on storing data in pointers - initially motivated by documenting the impact of >48-bit virtual addresses on such tricks and the various available hardware pointer masking schemes https://muxup.com/2023q4/storing-data-in-pointers Any corrections or additional notes, do let me know!
@asb The Linux kernel has a hashtable for its directory entry cache where the buckets are linked lists and the lower bit of each bucket's head pointer is a spin lock, see the comment at the top of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/list_bl.h
@vegard Thanks! I've added a note on that to the article