Several newbie question:
At which point in the source code (two function
point - one for Xen, and another for linux-xen) is the processor properly setup
to run in multiprocessor mode?
VMX/SVM mode (specified through EFER_SVME bit, eg,
in stop_svm() function) is always specific per-CPU, right?
Therefore, whenever the Xen make a transition from guest to host OS, must the
entire set of CPUs all be switched at the same time? Ie, can one CPU
remain executing in Xen kernel, while another is executing in linux-xen kernel
mode?
Answering the above, will help me to understand the
next question better:
Logical speaking, the treatment for transition from
guest to host should be asymmetrical to host to guest in pending
IRQs. Ie, in guest->host
transition, even if there are pending IRQ in any of the CPUs, transition can
still occurr, for security reasons. But in host->guest
transition, if there are pending IRQs, and if transition is allowed, it will
lead to complicated re-entrancy problems. So this has to be
disallowed, right?
|