All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Patchset to enable kvm/ia64 support.
@ 2007-12-19 12:18 Zhang, Xiantao
       [not found] ` <42DFA526FC41B1429CE7279EF83C6BDCB13805-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Zhang, Xiantao @ 2007-12-19 12:18 UTC (permalink / raw)
  To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f; +Cc: Avi Kivity

[-- Attachment #1: Type: text/plain, Size: 3603 bytes --]

Hi, all 
As you know, in the past two months, commnity worked out cross-arch
framework support for kvm.  Thank you all for your contributions !
Especially for Avi's quick response in mailing list! ! 
Currently, following userspace suppport, we have completed code rebase
for kvm/ia64 support according to new framework.  With its support, we
can boot up windows/ Linux guests with open guest firmware, and get
reasonable performance compared with other virtualization projects.  The
current status are as following:
1. Both UP Linux & Windows  are OK, but short of SMP guest support. (see
attached screen snapshort)
2. Stability and performance are also good!
3. Short of save/restore live migration support. 
4. Short of host swapping support.

Kvm/ia64 architecture also has two parts, one is kvm module, and the
other one is GVMM module.  The responsibility of kvm module is similar
with x86's, and you can refer to kvm's docs for more information. GVMM
module is mainly focusing on performance-critical component
virutlization, such as processor and memory virtulization.  They are
working together to build virtualization environment for virtual
machines. I attached a figure to better understand  their workflow. From
the graph, we can see transition code is used for world switch. In this
transition code, it completes the address space switch, and this is a
must, because processor hardware doesn't provide address switch
machanism due to large register set in Itanium processors.  Now, GVMM
runs in isolated address space with host side, here we use
0xd000000000000000 to avoid possbile confilicts with host side.   

In this mode, there are two kinds of vm exits, one is called
light-weight exits, such as memory tlb miss,  priviliged register
access. They can be handled in GVMM side, and doen't need to switch back
to host side.  The other one is heavey-weight exit, they need to switch
back to host side, such as IO operations, Physical external interrupts,
firmware emulation, guest IPI and so on.  You know,  light-weight exits
should be dominant for all exit events.  Even if heavey-weight exit,  it
only consumes hundreds itc cycles.  So ,it doesn't have big performance
impact, and our performance data also confirms our guess.  

In all, let's work togerther to make it run better and better. 

But, anyway, this is the first time for us to see kvm boot up on non-x86
processors. :)

Now, it's time for us sending the code out for review and check-in.  We
are appreciating any comments ! :)
[1/17] Adding kvm compile support in Kconfig and Makefile file
[2/17] Add kvm.h, kvm_para.h and kvm_host.h for ia64. 
[3/17] Add kvm-ia64.c to support kvm module on Itanium processors. 
[4/17] Add firmware virtualization support. 
[5/17] Add TR operation routines.
[6/17] Add some header files for kvm use.
[7/17] Add GVMM interfaces, it provides GVMM information for host use.
[8/17] TLB virtulization
[9/17] Add MMIO decoder support.
[10/17] Add Interruption vector table for GVMM
[11/17] Add trampoline code for host/guest mode switch.
[12/17] Add processor virtulization support
[13/17] Some optimizations for virtulization faults.
[14/17] Generating offset values for assembly code use. 
[15/17] Guest interruption injection support.
[16/17] Add Kconfig for choosing kvm support on IA64.
[17/17] Add Makefile for compiling source files. 

In addition, current linux upstream tree is not fully friendly to kvm,
so a kernel patch is prepared for kvm, and will be sending to linux-ia64
mailing list.

Thanks. 
Xiantao 


[-- Attachment #2: kvm.JPG --]
[-- Type: image/jpeg, Size: 27144 bytes --]

[-- Attachment #3: win.JPG --]
[-- Type: image/jpeg, Size: 23010 bytes --]

[-- Attachment #4: linux.JPG --]
[-- Type: image/jpeg, Size: 34506 bytes --]

[-- Attachment #5: Type: text/plain, Size: 308 bytes --]

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

[-- Attachment #6: Type: text/plain, Size: 186 bytes --]

_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-12-19 15:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-19 12:18 [PATCH] Patchset to enable kvm/ia64 support Zhang, Xiantao
     [not found] ` <42DFA526FC41B1429CE7279EF83C6BDCB13805-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-12-19 12:29   ` Izik Eidus
     [not found]     ` <1198067379.4657.3.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-12-19 13:17       ` Zhang, Xiantao
2007-12-19 15:01   ` Amit Shah
     [not found]     ` <200712192031.22911.amit.shah-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-19 15:26       ` Zhang, Xiantao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.