Las restartable sequences (rseq) son una característica del kernel de Linux introducida en la versión 4.18 (2018) que permite crear estructuras de datos seguras para hilos sin necesidad de bloqueos ni operaciones atómicas, escalando de forma eficiente a procesadores de muchos núcleos. La idea es simple: el hilo registra una secuencia de instrucciones en memoria TLS y el kernel, al interrumpir el hilo, comprueba si está dentro de dicha secuencia; si es así, lo redirige a un manejador de aborto para reiniciar la operación, garantizando consistencia sin mutex.
Actualmente, rseq solo se puede usar en Linux mediante código ensamblador escrito a mano, pero el autor predice que todos los sistemas operativos y lenguajes de programación de sistemas lo adoptarán. Ya se utiliza en asignadores de memoria como tcmalloc, jemalloc y glibc, así como en la biblioteca Cosmopolitan. Con la disponibilidad de CPUs de 128 o 192 núcleos a bajo costo, las optimizaciones son significativas: por ejemplo, malloc puede acelerarse entre 3 y 43 veces respecto a técnicas tradicionales con mutex o sharding basado en sched_getcpu().
El tutorial explica el problema clásico del ABA en listas enlazadas lockless y muestra cómo rseq permite evitar los mutex incluso en escenarios de inserción y extracción. Compara distintos enfoques: usar un bloqueo global (GIL), una lista atómica con contadores ABA, y el sharding por CPU con mutex por núcleo. La solución final con rseq elimina la contención de cache line y logra un rendimiento próximo al de una variable local de hilo, con un coste de apenas nanosegundos. Para los programadores de sistemas que trabajan con hardware de muchos núcleos, dominar rseq se convierte en una habilidad esencial para extraer el máximo rendimiento.
