public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Hollis Blanchard <hollis-yUx37fBWTUITNcAmw9vGhQ@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: portability layer?
Date: Tue, 27 Mar 2007 08:57:48 +0200	[thread overview]
Message-ID: <4608C06C.2000708@qumranet.com> (raw)
In-Reply-To: <1174944048.29357.11.camel@basalt>

Hollis Blanchard wrote:
> Hi Avi, I was wondering what you think is the right abstraction layer to
> target for porting KVM to non-x86 architectures? To me it looks like
> libkvm is the answer.
>
> The kernel/userland interface is heavily x86-specific, including things
> like struct kvm_run. So it looks like the higher-level API of
> kvm_init(), kvm_create(), etc would be the right cut? struct
> kvm_callbacks is even reasonably portable, especially if cpuid is hidden
> behind an "arch" callback.
>   

Disclaimer: I know little about powerpc (or ia64).  What I say may or 
may not have any connection with reality.

I don't think we should be aiming at full source portability.  
Virtualization is inherently nonportable, and as it is mostly done in 
hardware, software gets to do the quirky stuff that the hardware people 
couldn't bother with :)  instead we should be aiming at code reuse.  I 
think there's some potential there:

- memory slot management, including the dirty log, could be mostly 
reused (possibly updated for multiple page sizes). possibly msrs as well.
- the vcpu management calls (get regs/set regs,  vcpu_run) can be 
reused, but only as wrappers.  The actual contents (including the 
kvm_run structure) would be very different.

I don't see a big difference between the ioctl layer and libkvm.  In 
general, a libkvm function is an ioctl, and kvm_callback members are a 
decoding of kvm_run fields.  If you edit kvm_run to suit your needs, you 
can probably reuse some of it.




-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

  reply	other threads:[~2007-03-27  6:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-26 21:20 portability layer? Hollis Blanchard
2007-03-27  6:57 ` Avi Kivity [this message]
     [not found]   ` <4608C06C.2000708-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-03-28 14:26     ` Hollis Blanchard
2007-03-28 15:06       ` Arnd Bergmann
2007-03-28 15:48       ` Avi Kivity
     [not found]         ` <460A8E44.5080305-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-03-28 18:50           ` Hollis Blanchard
2007-03-29  7:11             ` 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=4608C06C.2000708@qumranet.com \
    --to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
    --cc=hollis-yUx37fBWTUITNcAmw9vGhQ@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox