From: Anthony Liguori <aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: kvm-devel <kvm-devel-TtF/mJH4Jtrk1uMJSBkQmQ@public.gmane.org>
Subject: Userspace hypercalls?
Date: Mon, 27 Aug 2007 10:27:27 -0500 [thread overview]
Message-ID: <1188228447.12698.8.camel@squirrel> (raw)
I've never really thought much about them until now. What's the case
for supporting userspace hypercalls?
The current way the code works is a little scary. Hypercalls that
aren't handled by kernelspace are deferred to userspace. Of course,
kernelspace has no idea whether userspace is actually using a given
hypercall so if kernelspace needs another one, the two may clash.
AFAICT, the primary reason to use hypercalls is performance. A vmcall
is a few hundred cycles faster than a PIO exit. In the light-weight
exit path, this may make a significant different. However, when going
to userspace, it's not only a heavy-weight exit but it's also paying the
cost of a ring transition. The few hundred cycle savings is small in
comparison to the total cost so I don't think performance is a real
benefit here.
The hypercall namespace is much smaller than the PIO namespace, and
there's no "plug-and-play" like mechanism to resolve conflict. PIO/MMIO
has this via PCI and it seems like any userspace device ought to be
either a PCI device or use a static PIO port. Plus, paravirtual devices
that use PCI/PIO/MMIO are much more likely to be reusable by other VMMs
(Xen, QEMU, even VMware).
In the future, if we decide a certain hypercall could be done better in
userspace, and we have guests using those hypercalls, it makes sense to
plumb the hypercalls down.
My question is, should we support userspace hypercalls until that point?
Regards,
Anthony Liguori
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
next reply other threads:[~2007-08-27 15:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-27 15:27 Anthony Liguori [this message]
2007-08-27 16:16 ` Userspace hypercalls? Avi Kivity
[not found] ` <46D2F8FA.6050104-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-27 16:19 ` Avi Kivity
2007-08-27 16:33 ` Avi Kivity
[not found] ` <46D2FCE1.7020605-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-27 16:47 ` Avi Kivity
[not found] ` <46D3001A.9070706-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-27 17:32 ` Anthony Liguori
2007-08-27 17:36 ` Avi Kivity
[not found] ` <46D30BAE.4080705-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-27 17:47 ` Anthony Liguori
[not found] ` <46D30F15.6050601@qumranet.com>
[not found] ` <46D30F15.6050601-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-27 19:58 ` Luca
[not found] ` <68676e00708271258o278de93ek8a051619dd03fb6a-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-08-27 20:01 ` Avi Kivity
[not found] ` <46D32DA8.1080900-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-08-27 21:06 ` Anthony Liguori
2007-08-29 6:59 ` Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160D6558D8-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-08-29 21:24 ` Avi Kivity
[not found] <46D326020200005A00029BFF@mcclure.wal.novell.com>
[not found] ` <46D326080200005A00029C02-Igcdv/6uVdMHoYOw/+koYqIwWpluYiW7@public.gmane.org>
2007-08-27 23:29 ` Gregory Haskins
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=1188228447.12698.8.camel@squirrel \
--to=aliguori-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
--cc=kvm-devel-TtF/mJH4Jtrk1uMJSBkQmQ@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