~ubuntu-branches/ubuntu/utopic/xen/utopic

« back to all changes in this revision

Viewing changes to docs/misc/VMX_changes.txt

  • Committer: Bazaar Package Importer
  • Author(s): Bastian Blank
  • Date: 2010-05-06 15:47:38 UTC
  • mto: (1.3.1) (15.1.1 sid) (4.1.1 experimental)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20100506154738-agoz0rlafrh1fnq7
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Changes to Xen in support of Intel(R) Vanderpool Technology
 
2
-------------------------------------------------------------
 
3
 
 
4
Our VT extensions to the Xen hypervisor provide full platform
 
5
virtualization, including CPU(s), memory, and I/O infrastructure. The
 
6
generic code in Xen handles and schedules those virtual machines as it
 
7
does for the existing para-virtualized domains.
 
8
 
 
9
Full virtualization required by the OS guests requires full device
 
10
virtualization as well. The device models in BOCHS
 
11
(http://bochs.sourceforge.net/) were decoupled from the CPU
 
12
virtualization, and are used to virtualize the legacy devices (such as
 
13
keyboard, mouse, VGA, IDE) in the PC platform. At this point, the
 
14
device models run in user mode on domain 0, not in the Xen hypervisor.
 
15
 
 
16
We would like to thank Ian Pratt and Keir Fraser for reviewing our
 
17
design and code intensively, and for providing numerous useful
 
18
suggestions to improve the architecture and code. 
 
19
 
 
20
We have a list of Intel team members who take credit for making this
 
21
release happen: Yunhong Jiang, Nitin Kamble, Chengyuan Li, Xin Li,
 
22
Xiaofeng Ling, Benjamin Liu, Asit Mallick, Jun Nakajima, Sunil Saxena,
 
23
Arun Sharma, Edwin Zhai, Jeff Zheng, and Louis Zhuang. We'll continue
 
24
to add more features to complete full virtualization in Xen using VT.
 
25
 
 
26
The notes document the changes to the Xen hypervisor in order to add
 
27
VT support. The changes to other areas, such as Control Panel will be
 
28
added as we deliver the code.
 
29
 
 
30
Summary of changes for the first release
 
31
----------------------------------------
 
32
December 15, 2004
 
33
 
 
34
    * VT specific event handling and domain management were added. 
 
35
 
 
36
    * Shadow mode was extended to support full 32-bit guests
 
37
    
 
38
    * Domain switching code was extended to support VT domain
 
39
    
 
40
    * I/O request handling was added to communicate with the device model
 
41
 
 
42
    * Domain builder was extended to provide the environment when the
 
43
      guest enters the protected mode, including E820 memory and VGA
 
44
      info, typically obtained by BIOS calls.
 
45
 
 
46
New code:
 
47
---------
 
48
    VT (Vanderpool Technology) is based on the new VMX (Virtual
 
49
    Machine Extensions) architecture. The current release of the
 
50
    software supports 32-bit only.
 
51
 
 
52
    * arch/x86/vmx.[ch] and arch/x86/vmx_*.[ch]: created to handle
 
53
      VMX-specific events in order to provide virtual machine.
 
54
 
 
55
    * arch/x86/x86_32/entry.S: new code path was added to have the
 
56
      first-level handler from VM exits. The first-level handler calls
 
57
      the second-level handler in arch/x86/vmx.c.
 
58
 
 
59
    * arch/x86/setup.c: new function start_vmx() to init_intel() to
 
60
      enable VMX mode.
 
61
 
 
62
    * include/asm-x86/config.h: #ifdef CONFIG_VMX was added.
 
63
 
 
64
    * arch/x86/domain.c: new code patch was added to create a VMX
 
65
      domain given the flag from the control panel.
 
66
 
 
67
    * include/public/io/ioreq.h: A new data structure was added to
 
68
      define the I/O requests between the Xen hypervisor and the
 
69
      device models.
 
70
 
 
71
Changes to the existing code:
 
72
-----------------------------
 
73
 
 
74
    * arch/x86/shadow.[ch]: new mode SHM_full_32 was added to support
 
75
      full virtualization. The current Xen code assumes that the guest
 
76
      page directory and tables have _machine_ (or host) physical page
 
77
      frame numbers, and the new code allows to support _guest_
 
78
      physical page frame numbers
 
79
 
 
80
    * include/asm-x86/processor.h: struct arch_vmx_struct arch_vmx has
 
81
      been added to the thread_struct data structure. The arch_vmx has
 
82
      the additional VMX-related CPU context.
 
83
 
 
84
    * arch/x86/io_apic.c: reverse mapping between vector and irq has
 
85
      been added. We will revisit this code when considering MSI
 
86
      support.
 
87
 
 
88
--- Jun
 
89
 
 
90