On Wednesday 19 December 2007 17:48:14 Zhang, Xiantao wrote:
> 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. :)

Great! Looks like we'll soon have support for more architectures :-)

Can you please also put this documentation on the wiki? Some of the parts that 
are not expected to change much can also be put in Documentation/, with the 
rest being a pointer to the wiki.

Since the 0/nn patches aren't committed, such documentation can be easily 
lost.

> 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

Please order patches so that after applying each one, the kernel is buildable. 
This one adds entries for arch/ia64/kvm/Kconfig, but those files aren't added 
yet. Compiles will fail and bisecting will just add more frustration while 
hunting down that elusive bug.

> [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.

I see code that's commented out. Do you plan to send in cleanup patches later?

Also, have you run these through checkpatch.pl? It looks like there'll be a 
few complaints.

> [4/17] Add firmware virtualization support.

Can you explain (in the git commit message) what this is? There are also a few 
typos, like pal_logical_to_physica() (missing 'l' for physical).

Also, please add #defines for the constants used.

Indentation is also a problem in some places.

Mostly, these comments apply to all the patches in this series.

> [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.

Why don't you send these patches to the ia64 list as well? I think there can 
be better review of the code from the people who understand the arch.

>
> Thanks.
> Xiantao

Amit

-------------------------------------------------------------------------
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
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to