On Thu, Jun 04, 2009 at 03:49:03PM +0300, Avi Kivity wrote: > Andi Kleen wrote: > >>This assumption is incorrect. This code is executed after preemption > >>has been enabled, and we may have even slept before reaching it. > >> > > > >The only thing that counts here is the context before the machine > >check event. If there was a vmexit we know it was in guest context. > > > >The only requirement we have is that we're running still on the same > >CPU. I assume that's true, otherwise the vmcb accesses wouldn't work? > > > > It's not true, we're in preemptible context and may have even slept. > > vmcs access work because we have a preempt notifier called when we are > scheduled in, and will execute vmclear/vmptrld as necessary. Look at > kvm_preempt_ops in virt/kvm_main.c. I see. So we need to move that check earlier. Do you have a preference where it should be? -Andi -- ak@xxxxxxxxxxxxxxx -- Speaking for myself only. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html