It’s been a bit quiet around here, as I have been making my way through 50 or so videos of talks from //build/. I’ll do a summary post when I get through them all.
In the meantime, I’ve also been reading a few low level papers. It’s quite interesting that hardware transactional memory is becoming more available, and so this paper on malloc placement is worth a read – the transactional memory uses the cache lines in the L1 and L2 caches to see if a value has been modified by another party while the transaction has been happening. This means that caches can be affected by memory patterns that place many values into locations which map to the same cache line.
This gitbook on the Linux kernel is also worth reading if you are interested on how the system gets from a reboot to a running kernel, and this paper describes the many techniques for x86 virtualization.