All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arun Sharma <arun.sharma@intel.com>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: Xen-devel@lists.xensource.com, "Wahlig,
	Elsie" <elsie.wahlig@amd.com>,
	"Nakajima, Jun" <jun.nakajima@intel.com>
Subject: Re: HW Virtualization Abstraction Layer Work Underway
Date: Mon, 6 Jun 2005 16:41:17 -0700	[thread overview]
Message-ID: <20050606234117.GA21390@intel.com> (raw)
In-Reply-To: <34097cacc44f4157a38dfb790528c506@cl.cam.ac.uk>

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

On Mon, Jun 06, 2005 at 10:02:10AM +0100, Keir Fraser wrote:
> 
> We need to consider the low-level interfaces too, because we do not 
> want a separate set of hooks into the generic Xen code for each 
> different vendor mechanism. We will of course want to adapt this layer 
> to ensure it doesn't hide any value-add extensions, but the principle 
> of hiding as much non-generic detail as possible behind a common 
> interface still remains.
> 
> Also, many opportunities for special hw assistance occur early during 
> trap into Xen (e.g., why did we trap out of the guest context?). 
> Regardless of any common interface, the vendor-specific hwassist code 
> has full control at that point, and can decide what it handles itself 
> and how it interacts with common Xen code.
> 
> I dislike the name HVAL though -- it's not very informative. Something 
> like hwassist, vmassist, hw_vm, or many others would all be preferable 
> imo.

Since vmassist is used by other Xen code, we should probably go with 
hwassist.

In the attached diagram, I've attempted to draw a picture of where we
are today (no eggs or rotten tomatoes please - I don't draw boxes often :)

I think the following points are clear to me:

- The interface between xen/x86 and the box labelled "VMX infrastructure"
  needs to be generic (let's call the interface hwassist and the box
  hwassist infrastructure). This interface already seems to be well defined
  and it might just be a renaming that's required.

- The interface between the cpu and the low level code is going to be
  vendor specific (the box labelled vmexit/vmresume)

- The box labelled "vmx platform" represents the PC platform being emulated
  (partly in xen, rest in ioemu). This is abstracted already by:

  struct virtual_platform_def in vmx_platform.h

  I think it makes sense to share this code.

- We need to define an interface between the vmexit box and the virtual 
  platform box. This interface should not be very low level (something like 
  __vmread(regX) sounds too low level to me). store_cpu_user_regs(), 
  check_guest_faults(), inject_exception() etc sound like a better abstraction.

- There may be more sharing opportunities which are not too disruptive
  elsewhere, but until we have a second implementation, we may not know 
  what they are. So we'd like to defer any interface changes until we have 
  a second implementation.

	-Arun

[-- Attachment #2: vmx.png --]
[-- Type: image/png, Size: 11288 bytes --]

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

  reply	other threads:[~2005-06-06 23:41 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-06  8:15 HW Virtualization Abstraction Layer Work Underway Nakajima, Jun
2005-06-06  9:02 ` Keir Fraser
2005-06-06 23:41   ` Arun Sharma [this message]
  -- strict thread matches above, loose matches on Subject: below --
2005-06-08 16:05 Nakajima, Jun
2005-06-08 13:58 Leendert van Doorn
2005-06-07 17:39 Nakajima, Jun
2005-06-07  6:27 Nakajima, Jun
2005-06-07  3:48 Wahlig, Elsie
2005-06-06 18:06 Nakajima, Jun
2005-06-06 17:28 Wahlig, Elsie
2005-06-05  1:01 Wahlig, Elsie
2005-06-05 11:41 ` Eric.Jones
2005-06-05 16:55 ` David Hopwood

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=20050606234117.GA21390@intel.com \
    --to=arun.sharma@intel.com \
    --cc=Keir.Fraser@cl.cam.ac.uk \
    --cc=Xen-devel@lists.xensource.com \
    --cc=elsie.wahlig@amd.com \
    --cc=jun.nakajima@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 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.