| 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 |
| Archive-link: |
| Article,
Thread
|
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