On Tue, Jul 16, 2013 at 12:28:05PM +0200, Paolo Bonzini wrote:
> > +void vmx_exit(void)
> > +{
> > +   test_vmxoff();
> > +   printf("\nSUMMARY: %d tests, %d failures\n", tests, fails);
> > +   exit(fails ? -1 : 0);
> > +}
> 
> Can you try to jump back to main, and do test_vmxoff there?  This will
> avoid having to write our tests in callback style, which is a pain.
> Basically something similar to setjmp/longjmp.  In main:
> 
>       if (setjmp(jmpbuf) == 0) {
>               vmx_run();
>               /* Should not reach here */
>               report("test vmlaunch", 0);
>       }
>       test_vmxoff();
> 
> exit:
>       printf("\nSUMMARY: %d tests, %d failures\n", tests, fails);
>       return fails ? 1 : 0;
> 
> In vmx_handler:
> 
>       case VMX_HLT:
>               printf("\nVM exit.\n");
>               longjmp(jmpbuf, 1);
> 
Why not just make vmexit occur after vmlaunch/vmresume like KVM does. It
will make code much more straightforward and easer to follow.

--
                        Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to