From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Anthony Liguori <anthony-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
Cc: kvm-devel <kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Subject: Re: [RFC] Handling VMEXITS with interrupts disabled?
Date: Mon, 23 Apr 2007 10:02:44 +0300 [thread overview]
Message-ID: <462C5A14.7050108@qumranet.com> (raw)
In-Reply-To: <462C2345.6040507-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
Anthony Liguori wrote:
> Howdy,
>
> I had an idea for improving VMEXIT time by only saving/restoring
> sys{enter,call,ret} MSRs when exiting from kernel space code since as
> long as these instructions aren't executed on the host, everything
> should be fine.
>
Yup.
> This worked fine for MSR_IA32_SYSENTER* msrs, but not so much for the
> ?TAR msrs. I have hooks in vcpu_{get,put} but I suspect we're making a
> blocking call somewhere which is resulting in the scheduler being
> invoked (while we still have the vcpu). This then results in generally
> badness in the host.
>
You might compile the host with CONFIG_PREEMPT, which should get you a
nice stacktrace after the "scheduling while atomic" message.
> I'm still a little unclear about this though as I would think that if
> this could happen, it would create problems with VT since KVM another
> guest could run and overwrite the VMCS msr.
>
> I'm I interpreting this correctly? Does disabling preemption not
> guarantee that you won't potentially drop to userspace in your critical
> block?
>
This is only checked under CONFIG_PREEMPT, otherwise preempt_disable
(and get_cpu()) are no-ops.
I really need to enable CONFIG_PREEMPT myself...
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
prev parent reply other threads:[~2007-04-23 7:02 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-23 3:08 [RFC] Handling VMEXITS with interrupts disabled? Anthony Liguori
[not found] ` <462C2345.6040507-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-04-23 7:02 ` Avi Kivity [this message]
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=462C5A14.7050108@qumranet.com \
--to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
--cc=anthony-rdkfGonbjUSkNkDKm+mE6A@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 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.