New CPUID/MSR driver; virtualization hooks
From: | "H. Peter Anvin" <hpa@zytor.com> | |
To: | Virtualization Mailing List <virtualization@lists.osdl.org> | |
Subject: | New CPUID/MSR driver; virtualization hooks | |
Date: | Wed, 04 Apr 2007 17:50:58 -0700 |
I have finally gotten off the pot and finished writing up my new CPUID/MSR driver, which contains support for registers that need arbitrary GPRs touched. For i386 vs x86-64 compatibility, both use an x86-64 register image (16 64-bit register fields); this allows 32-bit userspace to access the full 64-bit image if the kernel is 64 bits. Anyway, this presumably requires new paravirtualization hooks. The patch is at: http://www.kernel.org/pub/linux/kernel/people/hpa/new-cpu... ... and a git tree is at ... http://git.kernel.org/?p=linux/kernel/git/hpa/linux-2.6-c... I'm posting this here to give the paravirt maintainers an opportunity to comment. Presumably the functions that need to be paravirtualized are the ones represented by the functions do_cpuid(), do_rdmsr() and do_wrmsr(): they take a cpu number, an input register image, and an output register image, and return either 0 or -EIO (in case of a trap.) -hpa