From: Steve Ofsthun <sofsthun@virtualiron.com>
To: Steven Smith <sos22-xen@srcf.ucam.org>
Cc: xen-devel@lists.xensource.com, sos22@cam.ac.uk
Subject: Re: Paravirtualised drivers for fully virtualised domains
Date: Tue, 18 Jul 2006 12:00:53 -0400 [thread overview]
Message-ID: <44BD05B5.6050108@virtualiron.com> (raw)
In-Reply-To: <20060718125106.GA4727@cam.ac.uk>
Steven Smith wrote:
> The attached patches allow you to use paravirtualised network and
> block interfaces from fully virtualised domains, based on Intel's
> patches from a few months ago. These are significantly faster than
> the equivalent ioemu devices, sometimes by more than an order of
> magnitude.
Excellent work Steven!
I've been working on a similar set of patches and your effort seems
quite comprehensive. I do have a few questions:
Can you comment on the testing matrix you used? In particular, does
this patch address both 32-bit and 64-bit hypervisors? Can 32-bit
guests make 64-bit hypercalls?
Have you built the guest environment on anything other than a 2.6.16
version of Linux? We ran into extra work supporting older linux versions.
You did some work to make xenbus a loadable module in the guest domains.
Can this be used to make xenbus loadable in Domain 0?
> These drivers are explicitly not considered by XenSource to be an
> alternative to improving the performance of the ioemu devices.
> Rather, work on both will continue in parallel.
I agree. Both activities are worth developing.
> There is a slight complication in that the paravirtualised block
> device can't share an IDE controller with an ioemu device, so if you
> have an ioemu hda, the paravirtualised device must be hde or later.
> This is to avoid confusing the Linux IDE driver.
>
> Note that having a PV device doesn't imply having a corresponding
> ioemu device, and vice versa. Configuring a single backing store to
> appear as both an IDE device and a paravirtualised block device is
> likely to cause problems; don't do it.
Several problems exist here:
Domain 0 buffer cache coherency issues can cause catastrophic file
system corruption. This is due to the backend accessing the backing
device directly, and QEMU accessing the device through buffered reads
and writes. We are working on a patch to convert QEMU to use O_DIRECT
whenever possible. This solves the cache coherency issue.
Actually presenting two copies of the same device to linux can cause
its own problems. Mounting using LABEL= will complain about duplicate
labels. However, using the device names directly seems to work. With
this approach it is possible to decide in the guest whether to mount
a device as an emulated disk or a PV disk.
> The patches consist of a number of big parts:
>
> -- A version of netback and netfront which can copy packets into
> domains rather than doing page flipping. It's much easier to make
> this work well with qemu, since the P2M table doesn't need to
> change, and it can be faster for some workloads.
Recent patches to change QEMU to dynamically map memory may make this
easier. We still avoid it to prevent large guest pages from being
broken up (under the XI shadow code).
> The copying interface has been confirmed to work in paravirtualised
> domains, but is currently disabled there.
>
> -- Reworking the device model and hypervisor support so that iorequest
> completion notifications no longer go to the HVM guest's event
> channel mask. This avoids a whole slew of really quite nasty race
> conditions
This is great news. We were filtering iorequest bits out during guest
event notification delivery. Your method is much cleaner.
> -- Adding a new device to the qemu PCI bus which is used for
> bootstrapping the devices and getting an IRQ.
Have you thought about supporting more than one IRQ. We are experimenting
with an IRQ per device class (BUS, NIC, VBD).
> -- Support for hypercalls from HVM domains
>
> -- Various shims and fixes to the frontends so that they work without
> the rest of the xenolinux infrastructure.
>
> The patches still have a few rough edges, and they're not as easy to
> understand as I'd like, but I think they should be mostly
> comprehensible and reasonably stable. The plan is to add them to
> xen-unstable over the next few weeks, probably before 3.0.3, so any
> testing which anyone can do would be helpful.
This is a very good start!
Steve
--
Steve Ofsthun - Virtual Iron Software, Inc.
next prev parent reply other threads:[~2006-07-18 16:00 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-18 12:51 Paravirtualised drivers for fully virtualised domains Steven Smith
2006-07-18 13:45 ` Ben Thomas
2006-07-18 16:00 ` Steve Ofsthun [this message]
2006-07-18 16:23 ` Mark Williamson
2006-07-18 20:34 ` Steven Smith
2006-07-18 23:24 ` Steve Ofsthun
2006-07-19 6:50 ` Gerd Hoffmann
2006-07-26 15:34 ` Steven Smith
2006-08-08 9:42 ` Steven Smith
2006-08-09 18:05 ` Steve Dobbelstein
2006-08-10 11:08 ` Paravirtualised drivers for fully virtualised domains, rev9 Steven Smith
2006-08-10 21:48 ` Steve Dobbelstein
2006-08-11 10:17 ` Steven Smith
2006-08-11 10:31 ` Harry Butterworth
2006-08-14 9:12 ` Steven Smith
2006-08-11 17:04 ` Steve Dobbelstein
2006-08-12 8:32 ` Steven Smith
2006-08-14 21:22 ` Steve Dobbelstein
2006-08-15 7:27 ` Steven Smith
2006-08-15 22:05 ` Steve Dobbelstein
2006-08-16 13:36 ` Steven Smith
2006-08-16 13:33 ` Paravirtualised drivers for fully virtualised domains, rev11 sos22-xen
-- strict thread matches above, loose matches on Subject: below --
2006-07-19 4:14 Paravirtualised drivers for fully virtualised domains Ian Pratt
2006-07-26 22:35 Nakajima, Jun
2006-08-02 8:01 He, Qing
2006-08-02 9:30 ` Steven Smith
2006-08-02 8:23 Zhao, Yunfeng
2006-08-02 8:56 ` Steven Hand
2006-08-02 9:37 ` Steven Smith
2006-08-02 9:49 He, Qing
2006-08-02 10:35 He, Qing
2006-08-03 6:59 ` Himanshu Raj
2006-08-03 9:35 ` Steven Smith
2006-08-04 6:13 ` Himanshu Raj
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=44BD05B5.6050108@virtualiron.com \
--to=sofsthun@virtualiron.com \
--cc=sos22-xen@srcf.ucam.org \
--cc=sos22@cam.ac.uk \
--cc=xen-devel@lists.xensource.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.