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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html