[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] A simple question regarding hvm_context_save

On Fri, 2013-05-31 at 10:46 +0000, Jaeyong Yoo wrote:
> Hello,
> I'm reading live migration related code and got a simple question 
> in function hvm_context_save:
> static int hvm_save_cpu_ctxt(struct domain *d, hvm_domain_context_t *h)
> {
> blah...
>         /* We don't need to save state for a vcpu that is down; the restore 
>          * code will leave it down if there is nothing saved. */
>         if ( test_bit(_VPF_down, &v->pause_flags) )
>             continue;
> blah...
> In the above, if the vcpu is paused, we don't need to store cpu registers
> (since vcpu structure already stored them). But, as far as I know, before
> we save the hvm context, we suspend the domain, which calls shutdown 
> sched_op, and the vcpu is paused. 
> Then, I guess testing pause_flags always returns down and we don't
> need to store cpu ctxts. Do I miss something here?

I don't think _VPF_down == paused. Rather it indicates that the VCPU is
"down" in the sense of having been hot unplugged.

In other words we only skip saving the CPU state if the CPU is not
actually in use by the guest, otherwise it does need saving.

Pausing a domain changes the vcpu's runstate, but doesn't affect
pause_flags. Or at least I think that is the case, I've only had a quick


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.