public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugzilla.kernel.org
To: kvm@vger.kernel.org
Subject: [Bug 43068] Operation restricted to levels L0-2 - kerneloops when booting L3
Date: Sun, 8 Apr 2012 08:18:33 GMT	[thread overview]
Message-ID: <201204080818.q388IXiQ010460@bugzilla.kernel.org> (raw)
In-Reply-To: <bug-43068-28872@https.bugzilla.kernel.org/>

https://bugzilla.kernel.org/show_bug.cgi?id=43068


Nadav Har'El <nyh@math.technion.ac.il> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nyh@math.technion.ac.il




--- Comment #1 from Nadav Har'El <nyh@math.technion.ac.il>  2012-04-08 08:18:32 ---
Hi, indeed, theoretically L3 should work; And also in practice - in my tests it
did work (albeit very very slowly). I'll need to look into this issue, and
check why this bug is happening now.

You should just be aware that even if it will work, L3 will be extremely slow,
likely to the point of not being useful. One of reasons is the lack of nested
EPT in the upstream version. An even bigger problem is the exponential
explosion of exits described in the Turtles paper, which is made much worse by
one particular part of the existing implementation: Right now, on every nested
entry from L1 to L2, L0 recreates all the fields of the vmcs (see
prepare_vmcs02()) doing a few dozen VMWRITEs. When L0 does it, it's fine - but
when we are nested yet deeper, and there is an entry from L2 into L3 and *L1*
needs to do prepare_vmcs02(), now L1 calls a lot of VMWRITEs and they all cause
exits, and all of this is extremely slow.

There are two things we could do in the future to solve this performance
problem - if people really need to use L3 (currently, even L2 isn't very
popular ;-)). One is to have some sort of exit-less VMREAD/VMWRITE, with or
without hardware support for this feature. The second thing is to emulate
VMWRITE differently, writing to vmcs02 immediately and doing far fewer VMWRITES
on nested entries (doing this correctly is harder than it might seem, as I can
explain in a separate thread).

Nadav Har'El

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.

  parent reply	other threads:[~2012-04-08  8:18 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-07 17:36 [Bug 43068] New: Operation restricted to levels L0-2 - kerneloops when booting L3 bugzilla-daemon
2012-04-07 17:37 ` [Bug 43068] " bugzilla-daemon
2012-04-08  8:18 ` bugzilla-daemon [this message]
2013-02-11 12:28 ` bugzilla-daemon
2015-03-17  3:53 ` bugzilla-daemon

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=201204080818.q388IXiQ010460@bugzilla.kernel.org \
    --to=bugzilla-daemon@bugzilla.kernel.org \
    --cc=kvm@vger.kernel.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