linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: Anthony Liguori <anthony@codemonkey.ws>,
	Huang Ying <ying.huang@intel.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Andi Kleen <andi@firstfloor.org>
Subject: Xenner design and kvm msr handling
Date: Tue, 21 Apr 2009 11:14:21 +0200	[thread overview]
Message-ID: <49ED8E6D.80005@redhat.com> (raw)
In-Reply-To: <49EC7C5F.2000006@redhat.com>

On 04/20/09 15:45, Avi Kivity wrote:

> Please elaborate. What hypercalls are so simple that an exit into the
> hypervisor is not necessary?

Ok, that becomes a longer story.  I try to keep it short though ...


xenner today (pure-pv only)
===========================

There is the xenner userspace application.  Handles start-of-day 
creation and the guest <=> host communication (well, not all of it, but 
these details are not relevant here).

There is emu.  Lives in guest address space, in the xen hypervisor 
address space hole.  Kida micro-kernel.  Handles all the hypercalls. 
Most stuff it can do internally, without leaving guest contect.  In a 
few cases it has to ask the xenner application for help.  That is the 
case for guest <-> host communication things, event channel setup for 
example.

xenner and emu talk to each other using an ioport based interface.


xenner future plans
===================

I want merge the userspace bits into qemu, so qemu can emulate xen 
guests (both tcg and kvm mode).

xenner application goes away.
emu will stay the same.
Likewise the ioport interface for emu.


xenner & pv-on-hvm
==================

Once we have all this in qemu it is just a small step to also support 
xenish pv-on-hvm drivers in qemu using the xenner emulation bits. 
Hypercalls are handled by a small pic binary loaded into the hypercall 
pages.  Loading of the binary is triggered by the msr writes discussed. 
Size of the binary is only two pages: one hypercall entry points, one 
code.  Communication path is the very same ioport interface also used by 
emu, i.e. it does *not* use vmcall and thus no opcode changes are needed 
on migration.

Hope the whole picture is more clear now ...

cheers,
   Gerd

PS: bitrotted (and IIRC also broken) code is here:
http://git.et.redhat.com/?p=qemu-kraxel.git;a=shortlog;h=refs/heads/xenner-old

Needs un-rotting once the first batch of xen patches is merged.

  reply	other threads:[~2009-04-21  9:15 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-08  1:53 [PATCH] Add MCE support to KVM Huang Ying
2009-04-09 15:50 ` Avi Kivity
2009-04-10  3:00   ` Huang Ying
2009-04-11 12:04     ` Avi Kivity
2009-04-11 12:19       ` Andi Kleen
2009-04-11 12:25         ` Avi Kivity
2009-04-13  8:26           ` Andi Kleen
2009-04-13  2:41       ` Huang Ying
2009-04-13 13:02         ` Avi Kivity
2009-04-14  2:04           ` Huang Ying
2009-04-14 10:45             ` Avi Kivity
2009-04-15  7:24               ` Huang Ying
2009-04-18 22:17           ` Anthony Liguori
2009-04-19  8:33             ` Avi Kivity
2009-04-20  7:52               ` Gerd Hoffmann
2009-04-20  8:26                 ` Avi Kivity
2009-04-20  8:59                   ` Gerd Hoffmann
2009-04-20  9:05                     ` Avi Kivity
2009-04-20 10:04                       ` Andi Kleen
2009-04-20 11:02                         ` Avi Kivity
2009-04-20 11:23                       ` Gerd Hoffmann
2009-04-20 11:27                         ` Avi Kivity
2009-04-20 12:20                           ` Gerd Hoffmann
2009-04-20 12:43                             ` Avi Kivity
2009-04-20 13:24                               ` Gerd Hoffmann
2009-04-20 13:45                                 ` Avi Kivity
2009-04-21  9:14                                   ` Gerd Hoffmann [this message]
2009-04-21 10:14                                     ` Xenner design and kvm msr handling Avi Kivity
2009-04-21 11:41                                       ` Gerd Hoffmann
2009-04-21 12:27                                         ` Avi Kivity
2009-04-21 12:47                                           ` Gerd Hoffmann
2009-04-21 13:33                                             ` Avi Kivity
2009-04-21 16:00                                               ` Gerd Hoffmann
2009-04-21 16:15                                                 ` Avi Kivity
2009-04-22 10:02                                                   ` Gerd Hoffmann
2009-04-21 16:04               ` [PATCH] Add MCE support to KVM Anthony Liguori
2009-04-21 16:17                 ` Avi Kivity

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=49ED8E6D.80005@redhat.com \
    --to=kraxel@redhat.com \
    --cc=andi@firstfloor.org \
    --cc=anthony@codemonkey.ws \
    --cc=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ying.huang@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).