Are system registers banked per processor on ARMv8? I thought they weren't, which is why they were called system registers, but I'm now confused.
My understanding is that on multi-core ARMv8-A implementations different cores can be executing at different exception levels at any time. So what happens when you have different threads executing on different physical CPUs, each of which changing system registers according to their needs?
For example, I was reading about virtualization for a school project and saw some open source code, and I see system registers being saved and restored as part of "vCPU" thread contexts. If one core is executing a vCPU thread but another isn't, wouldn't they have conflicting system register states?