Una gran t�cnica usada ampliamente para eliminar el bloqueo es duplicar la informaci�n para cada CPU. Por ejemplo, si quieres mantener una cuenta de una condici�n com�n, puedes usar un spinlock y un contador simple. Bonito y simple.
Si esto era muy lento [probablemente no], puedes en vez de esto usar un contador para cada CPU [no lo hagas], entonces ninguno de ellos necesitar�n un bloqueo exclusivo [est�s gastando tu tiempo aqu�]. Para asegurarte de que las CPUs no tienen que sincronizar las cach�s todo el tiempo, alinea los contadores al l�mite de las cach�s a�adiendo `__cacheline_aligned' a la declaraci�n (include/linux/cache.h). [�No puedes pensar en alguna cosa mejor que hacer?]
De cualquier forma necesitar�n un bloqueo de lectura para acceder a sus propios contadores. De esta forma puedes usar un bloqueo de escritura para garantizar acceso exclusivo a todos ellos a la vez, para llevar cuenta de ellos.