[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 2/2] x86/HVM: fix ID handling of x2APIC emulation
At 13:20 +0100 on 18 Sep (1411042805), Jan Beulich wrote: > >>> On 18.09.14 at 12:53, <tim@xxxxxxx> wrote: > > At 08:57 +0100 on 12 Sep (1410508628), Jan Beulich wrote: > >> >> @@ -1254,6 +1255,29 @@ HVM_REGISTER_SAVE_RESTORE(LAPIC, lapic_s > >> >> HVM_REGISTER_SAVE_RESTORE(LAPIC_REGS, lapic_save_regs, lapic_load_regs, > >> >> 1, HVMSR_PER_VCPU); > >> >> > >> >> +void vlapic_domain_unpause(const struct domain *d) > >> >> +{ > >> >> + /* > >> >> + * Following lapic_load_hidden()/lapic_load_regs() we may need to > >> >> + * correct ID and LDR when they come from an old, broken > >> >> hypervisor. > >> >> + */ > >> > > >> > This seems like aweful overhead for the domain_{,un}pause() path. > >> > >> It's the best I could think of (and domain un-pausing shouldn't be that > >> frequent an operation I would hope), since ... > >> > >> > Why can't it be fixed up once in lapic_load_{regs,hidden}(), > >> > >> ... both of these would have to have got carried out and ... > > > > You're already tracking whether either of them happens so you could > > track whether both have happened and do the fixup then. Loading a VM > > with only the hidden state and not the register state is not something > > we care about (and in that case, by construction, LDR won't be 1). > > I had considered that, but dropped the idea because the two pieces > are independent, and hence I don't think we should (implicitly) disallow > it. We wouldn't be disallowing it; we'd just fail to magically fix vlapic state for that one case. And since the fix assumes that it's dealing with a save record from an older Xen I think that's OK. After all, the fix also implicitly disallows deliberately setting up a vcpu that looks like an old-fashioned HVM vcpu. It would, I think, be reasonable to abandon the fix altogether and just let upgraded VMs continue with their bogus state -- after all it can't be that much of a problem for them or they'd have failed on the old box. > Nor do I think we should (implicitly) disallow restoring the same > state more than once before resuming the guest (or vCPU). True, but that's true whether we do the fix at unpause or beforehand. > I.e. if I > was to go that route, we should then first formally (even if just > verbally) tighten the requirements on these context load operations. I have no objection to that; I think a comment in save.h would suffice. Tim. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |