Re: [kvm-devel] [PATCH 2/3] Refactor hypercall infrastructure (v3)

From: Anthony Liguori
Date: Tue Sep 18 2007 - 09:31:21 EST


Avi Kivity wrote:
Avi Kivity wrote:
Avi Kivity wrote:
Anthony Liguori wrote:
This patch refactors the current hypercall infrastructure to better support live
migration and SMP. It eliminates the hypercall page by trapping the UD
exception that would occur if you used the wrong hypercall instruction for the
underlying architecture and replacing it with the right one lazily.

It also introduces the infrastructure to probe for hypercall available via
CPUID leaves 0x40000000. CPUID leaf 0x40000001 should be filled out by
userspace.

A fall-out of this patch is that the unhandled hypercalls no longer trap to
userspace. There is very little reason though to use a hypercall to communicate
with userspace as PIO or MMIO can be used. There is no code in tree that uses
userspace hypercalls.

Surprisingly, this patch kills Windows XP (ACPI HAL). I'll try to find out why.

Not trapping #UD brings things back to normal. So, Windows likes to execute undefined instructions, and we don'd handle these well.

Okay, vmx_inject_ud() was broken. Fixed now.

Yeah, I was just about to send the patch for that. Sorry about that, I didn't even think to test Windows...

Regards,

Anthony Liguori

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/