We iterate over the CPU list quite frequently (e.g. with CPU_FOREACH),
but we rarely acquire the cpu_list_lock to do so. This is incorrect,
since the CPU list can be updated (new CPUs added to it) pretty
much anytime, particularly in user-mode.
Instead of grabbing cpu_list_lock everywhere, convert the list to RCU
to that iterations can be safe and wait-free.
Thanks,
Emilio