From: Gleb Natapov <gleb@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Jordan Justen <jljusten@gmail.com>, Bei Guan <gbtju85@gmail.com>,
kvm-devel <kvm@vger.kernel.org>,
QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] How does the QEMU load the binary files bios.bin and vgabios-cirrus.bin?
Date: Thu, 7 Apr 2011 22:31:07 +0300 [thread overview]
Message-ID: <20110407193107.GH7100@redhat.com> (raw)
In-Reply-To: <4D9E0EAC.3020502@codemonkey.ws>
On Thu, Apr 07, 2011 at 02:21:16PM -0500, Anthony Liguori wrote:
> On 04/07/2011 01:44 PM, Gleb Natapov wrote:
> >>KVM doesn't support SMM although that's not because of this. KVM
> >>doesn't allow execution of ROM memory which makes it difficult to
> >>implement PAM in the way it's intended to be implemented. This
> >>makes SMM a bit tricky to make work. Since there's never really
> >>been a pressing need to support SMM, to my knowledge, noone has even
> >>tried.
> >>
> >KVM allows to execute ROM memory (BIOS and option roms run this way). It
> >just makes it indistinguishable from RAM, but read only memory slot
> >support shouldn't be too hard. Why ability to execute ROM memory is
> >needed to support SMM though?
>
> QEMU does the leg work already to support SMM. It doesn't work with
> KVM because we treat SMM as ROM memory and trap read/write access.
>
> To make it work with KVM, you'd have to hack things around to switch
> the VGA space to RAM in order to the let the SMM code run. It's not
> impossible, but that's the main reason it doesn't Just Work.
>
Remapping part is easy. As you are saying QEMU already does remapping,
the only thing missing is creating/destroying/remapping KVM memory slot
(with SMP it is slightly more complicated, but doable). But after doing
this SMM will not Just Work in KVM on Intel because VMX does not support
SMM mode and it can't be approximated by vm86, so KVM will have to emulate
every single instruction while in SMM mode and this like will not work.
--
Gleb.
next prev parent reply other threads:[~2011-04-07 19:31 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <BANLkTiniHnWOAhhs4kz60dWOnVPO1x0GBw@mail.gmail.com>
[not found] ` <4D9DBC05.8010400@codemonkey.ws>
[not found] ` <20110407153106.GA7100@redhat.com>
[not found] ` <4D9DDB80.8090905@codemonkey.ws>
[not found] ` <20110407155142.GB7100@redhat.com>
[not found] ` <4D9DE166.9080001@codemonkey.ws>
[not found] ` <BANLkTi=vWeaF2-3-AbxX4NFR5mpJrO4aUw@mail.gmail.com>
2011-04-07 18:37 ` [Qemu-devel] How does the QEMU load the binary files bios.bin and vgabios-cirrus.bin? Anthony Liguori
2011-04-07 18:44 ` Gleb Natapov
2011-04-07 19:03 ` Jordan Justen
2011-04-07 19:16 ` Gleb Natapov
2011-04-07 19:24 ` Olivier Galibert
2011-04-07 19:58 ` Jordan Justen
2011-04-07 19:21 ` Anthony Liguori
2011-04-07 19:31 ` Gleb Natapov [this message]
2011-04-07 21:34 ` Anthony Liguori
2011-04-08 5:58 ` Gleb Natapov
2011-04-07 19:47 ` Jordan Justen
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=20110407193107.GH7100@redhat.com \
--to=gleb@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=gbtju85@gmail.com \
--cc=jljusten@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.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