[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Allow wake up of offline vcpu via nmi-ipi
On 01/18/2012 10:36 AM, Keir Fraser wrote: On 18/01/2012 09:31, "Keir Fraser"<keir.xen@xxxxxxxxx> wrote:On 18/01/2012 09:07, "Juergen Gross"<juergen.gross@xxxxxxxxxxxxxx> wrote:On 01/18/2012 09:48 AM, Juergen Gross wrote:On a real machine a cpu disabled via hlt with interrupts disabled can be reactivated via a nmi ipi. Enable the hypervisor to do this for hvm, too. Signed-off-by: juergen.gross@xxxxxxxxxxxxxx 1 file changed, 4 insertions(+), 1 deletion(-) xen/arch/x86/hvm/vlapic.c | 5 ++++-BTW: I was not able to reactivate a vcpu via INIT/SIPI/SIPI sequence. It works on initial system boot when the target vcpu is activated the first time. If I deactivate a vcpu and try to activate it again it will start to run, but it is not starting at the specified entry point (at least it isn't performing the first instruction there). Is there some special initialization needed to make this work? Do I have to reset something on the vcpu before deactivating it?No it should just work. Hvmloader wakes and then sleeps every AP, in hvmloader/smp.c. So even the first INIT-SIPI wakeup of an AP in the guest OS is not the first, as hvmloader already did it once! So this path should be working and indeed tested on every HVM guest boot.Bit more info: INIT-SIPI logic is complicated by needing to avoid deadlocks between two VCPUs attempting to pause and reset each other. But the core dispatch logic is in vlapic_init_sipi_action(). You will see that on INIT, we should call vcpu_reset() which will de-initialise and VCPU_down the vcpu. And then on SIPI we call hvm_vcpu_reset_state(), which should reinitialise and wake the vcpu to start running at the specified CS:IP. So the above will be good places for you to add tracing and work out what's going on. :-) Yeah, thanks for the confirmation this should work. Printing some diagnostics helped me to spot the error in my code. Juergen -- Juergen Gross Principal Developer Operating Systems PDG ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967 Fujitsu Technology Solutions e-mail: juergen.gross@xxxxxxxxxxxxxx Domagkstr. 28 Internet: ts.fujitsu.com D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |