All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amit Shah <amit.shah-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>,
	"Zhang,
	Xiantao" <xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH] Patchset to enable kvm/ia64 support.
Date: Wed, 19 Dec 2007 20:31:22 +0530	[thread overview]
Message-ID: <200712192031.22911.amit.shah@qumranet.com> (raw)
In-Reply-To: <42DFA526FC41B1429CE7279EF83C6BDCB13805-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>

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

  parent reply	other threads:[~2007-12-19 15:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
     [not found]     ` <200712192031.22911.amit.shah-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-19 15:26       ` Zhang, Xiantao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200712192031.22911.amit.shah@qumranet.com \
    --to=amit.shah-atkuwr5tajbwk0htik3j/w@public.gmane.org \
    --cc=avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.