From: Li Qiang <liq3ea@gmail.com>
To: Maxim Levitsky <mlevitsk@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Qemu Developers <qemu-devel@nongnu.org>
Subject: Re: Questions about the real mode in kvm/qemu
Date: Thu, 26 Sep 2019 16:52:59 +0800 [thread overview]
Message-ID: <CAKXe6SK+cEytTtgKHw8KXY=jY4xv=27GBu55hTbTmbRyTPsfxg@mail.gmail.com> (raw)
In-Reply-To: <644968ffb11c11fd580e96c1e67932501a633fe4.camel@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2130 bytes --]
Maxim Levitsky <mlevitsk@redhat.com> 于2019年9月26日周四 下午4:31写道:
> On Thu, 2019-09-26 at 15:52 +0800, Li Qiang wrote:
> > Hi Paolo and all,
> >
> > There are some question about the emulation for real mode in kvm/qemu.
> For all the
> > question I suppose the 'unstrict guest' is not enabled.
> >
> > 1. how the protected mode CPU emulate the real mode? It seems it uses
> vm86, however, vm86 is not available in x86_64 CPU? So what's the
> 'to_vmx(vcpu)->rmode.vm86_active' here vm86 means?
> >
>
>
Hi Maxim,
Thanks for your kind reply.
> As far as I know it, modern intel's cpus support so called unrestricted
> guest mode, which allows guest to be basically in any mode,
>
Right, but I also want to know the secret when the 'unstrict guest' is
disabled. So I suppose the 'unstrict guest' is not enabled for these
questions.
> as long as EPT paging is used (that is guest can be in real mode with
> no paging, but EPT has to be enabled).
> The 'vm86_active' is probably lefover support for cpus that don't support
> EPT and/or the unrestricted guest mode,
> where KVM tried to use the good old vm86 mode to
> for real mode virtualization.
>
>
> > 2. Does the guest's real mode code run directly in native CPU? It seems
> 'vmx->emulation_required' is also be false, it the vmx_vcpu_run will do a
> switch to guest.
>
> Same as above
>
> >
> > 3. How the EPT work in guest real mode? The EPT is for GVA->GPA->HPA,
> however there is no GVA, seems the identity mapping does something. But
> there also some confusion for me. For example the real
> > mode uses CS*4 + IP to address the code. Who does this calculation? In
> the kernel emulator?
>
> EPT sits underneath the guest's paging mode, which in case of real mode is
> 1:1 mapping.
>
It seems when the 'unstrict guest' is enabled, there is no identity mapping
table.
Thanks,
Li Qiang
> Thus CS<<4 + IP would be the guest physical address and it will be looked
> up in the EPT to translate to the real physical address.
>
>
>
> Best regards,
> Maxim Levitsky
>
>
[-- Attachment #2: Type: text/html, Size: 3175 bytes --]
next prev parent reply other threads:[~2019-09-26 8:55 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-26 7:52 Questions about the real mode in kvm/qemu Li Qiang
2019-09-26 8:31 ` Maxim Levitsky
2019-09-26 8:52 ` Li Qiang [this message]
2019-09-26 8:59 ` Maxim Levitsky
2019-09-26 9:18 ` Paolo Bonzini
2019-09-26 9:24 ` Maxim Levitsky
2019-09-26 9:33 ` Paolo Bonzini
2019-09-26 9:41 ` Maxim Levitsky
2019-09-26 10:00 ` Paolo Bonzini
2019-09-26 10:03 ` Maxim Levitsky
2019-09-28 22:10 ` Avi Kivity
2019-09-29 7:39 ` Li Qiang
2019-09-26 9:15 ` Paolo Bonzini
2019-09-26 9:35 ` Maxim Levitsky
2019-09-26 9:35 ` Li Qiang
2019-09-26 9:53 ` Paolo Bonzini
2019-09-26 11:47 ` Li Qiang
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='CAKXe6SK+cEytTtgKHw8KXY=jY4xv=27GBu55hTbTmbRyTPsfxg@mail.gmail.com' \
--to=liq3ea@gmail.com \
--cc=mlevitsk@redhat.com \
--cc=pbonzini@redhat.com \
--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;
as well as URLs for NNTP newsgroup(s).