mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
91 lines
3.6 KiB
Plaintext
91 lines
3.6 KiB
Plaintext
Changes to Xen in support of Intel(R) Vanderpool Technology
|
|
-------------------------------------------------------------
|
|
|
|
Our VT extensions to the Xen hypervisor provide full platform
|
|
virtualization, including CPU(s), memory, and I/O infrastructure. The
|
|
generic code in Xen handles and schedules those virtual machines as it
|
|
does for the existing para-virtualized domains.
|
|
|
|
Full virtualization required by the OS guests requires full device
|
|
virtualization as well. The device models in BOCHS
|
|
(http://bochs.sourceforge.net/) were decoupled from the CPU
|
|
virtualization, and are used to virtualize the legacy devices (such as
|
|
keyboard, mouse, VGA, IDE) in the PC platform. At this point, the
|
|
device models run in user mode on domain 0, not in the Xen hypervisor.
|
|
|
|
We would like to thank Ian Pratt and Keir Fraser for reviewing our
|
|
design and code intensively, and for providing numerous useful
|
|
suggestions to improve the architecture and code.
|
|
|
|
We have a list of Intel team members who take credit for making this
|
|
release happen: Yunhong Jiang, Nitin Kamble, Chengyuan Li, Xin Li,
|
|
Xiaofeng Ling, Benjamin Liu, Asit Mallick, Jun Nakajima, Sunil Saxena,
|
|
Arun Sharma, Edwin Zhai, Jeff Zheng, and Louis Zhuang. We'll continue
|
|
to add more features to complete full virtualization in Xen using VT.
|
|
|
|
The notes document the changes to the Xen hypervisor in order to add
|
|
VT support. The changes to other areas, such as Control Panel will be
|
|
added as we deliver the code.
|
|
|
|
Summary of changes for the first release
|
|
----------------------------------------
|
|
December 15, 2004
|
|
|
|
* VT specific event handling and domain management were added.
|
|
|
|
* Shadow mode was extended to support full 32-bit guests
|
|
|
|
* Domain switching code was extended to support VT domain
|
|
|
|
* I/O request handling was added to communicate with the device model
|
|
|
|
* Domain builder was extended to provide the environment when the
|
|
guest enters the protected mode, including E820 memory and VGA
|
|
info, typically obtained by BIOS calls.
|
|
|
|
New code:
|
|
---------
|
|
VT (Vanderpool Technology) is based on the new VMX (Virtual
|
|
Machine Extensions) architecture. The current release of the
|
|
software supports 32-bit only.
|
|
|
|
* arch/x86/vmx.[ch] and arch/x86/vmx_*.[ch]: created to handle
|
|
VMX-specific events in order to provide virtual machine.
|
|
|
|
* arch/x86/x86_32/entry.S: new code path was added to have the
|
|
first-level handler from VM exits. The first-level handler calls
|
|
the second-level handler in arch/x86/vmx.c.
|
|
|
|
* arch/x86/setup.c: new function start_vmx() to init_intel() to
|
|
enable VMX mode.
|
|
|
|
* include/asm-x86/config.h: #ifdef CONFIG_VMX was added.
|
|
|
|
* arch/x86/domain.c: new code patch was added to create a VMX
|
|
domain given the flag from the control panel.
|
|
|
|
* include/public/io/ioreq.h: A new data structure was added to
|
|
define the I/O requests between the Xen hypervisor and the
|
|
device models.
|
|
|
|
Changes to the existing code:
|
|
-----------------------------
|
|
|
|
* arch/x86/shadow.[ch]: new mode SHM_full_32 was added to support
|
|
full virtualization. The current Xen code assumes that the guest
|
|
page directory and tables have _machine_ (or host) physical page
|
|
frame numbers, and the new code allows to support _guest_
|
|
physical page frame numbers
|
|
|
|
* include/asm-x86/processor.h: struct arch_vmx_struct arch_vmx has
|
|
been added to the thread_struct data structure. The arch_vmx has
|
|
the additional VMX-related CPU context.
|
|
|
|
* arch/x86/io_apic.c: reverse mapping between vector and irq has
|
|
been added. We will revisit this code when considering MSI
|
|
support.
|
|
|
|
--- Jun
|
|
|
|
|