From: harry harry <hiharryharryharry@gmail.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
Sean Christopherson <sean.j.christopherson@intel.com>
Cc: Maxim Levitsky <mlevitsk@redhat.com>,
qemu-devel@nongnu.org, mathieu.tarral@protonmail.com,
stefanha@redhat.com, libvir-list@redhat.com, kvm@vger.kernel.org
Subject: Re: Why guest physical addresses are not the same as the corresponding host virtual addresses in QEMU/KVM? Thanks!
Date: Tue, 13 Oct 2020 16:36:25 -0400 [thread overview]
Message-ID: <CA+-xGqOMKRh+_5vYXeLOiGnTMw4L_gUccqdQ+HGSOzuTosp6tw@mail.gmail.com> (raw)
In-Reply-To: <a163c2d8-d8a1-dc03-6230-a2e104e3b039@redhat.com>
Hi Paolo and Sean,
Thanks much for your prompt replies and clear explanations.
On Tue, Oct 13, 2020 at 2:43 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> No, the logic to find the HPA with a given HVA is the same as the
> hardware logic to translate HVA -> HPA. That is it uses the host
> "regular" page tables, not the nested page tables.
>
> In order to translate GPA to HPA, instead, KVM does not use the nested
> page tables.
I am curious why KVM does not directly use GPAs as HVAs and leverage
nested page tables to translate HVAs (i.e., GPAs) to HPAs? Is that
because 1) the hardware logic of ``GPA -> [extended/nested page
tables] -> HPA[*]'' is different[**] from the hardware logic of ``HVA
-> [host regular page tables] -> HPA''; 2) if 1) is true, it is
natural to reuse Linux's original functionality to translate HVAs to
HPAs through regular page tables.
[*]: Here, the translation means the last step for MMU to translate a
GVA's corresponding GPA to an HPA through the extended/nested page
tables.
[**]: To my knowledge, the hardware logic of ``GPA -> [extended/nested
page tables] -> HPA'' seems to be the same as the hardware logic of
``HVA -> [host regular page tables] -> HPA''. I appreciate it if you
could point out the differences I ignored. Thanks!
Best,
Harry
next prev parent reply other threads:[~2020-10-13 20:36 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-11 5:26 Why guest physical addresses are not the same as the corresponding host virtual addresses in QEMU/KVM? Thanks! harry harry
2020-10-11 7:29 ` Maxim Levitsky
2020-10-11 14:11 ` harry harry
2020-10-12 16:54 ` Sean Christopherson
2020-10-13 4:30 ` harry harry
2020-10-13 4:52 ` Sean Christopherson
[not found] ` <CA+-xGqO4DtUs3-jH+QMPEze2GrXwtNX0z=vVUVak5HOpPKaDxQ@mail.gmail.com>
[not found] ` <CA+-xGqMMa-DB1SND5MRugusDafjNA9CVw-=OBK7q=CK1impmTQ@mail.gmail.com>
2020-10-13 6:43 ` Paolo Bonzini
2020-10-13 20:36 ` harry harry [this message]
2020-10-14 8:27 ` Paolo Bonzini
2020-10-14 8:29 ` Maxim Levitsky
2020-10-15 3:45 ` harry harry
2020-10-13 7:03 ` Sean Christopherson
2020-10-13 22:40 ` harry harry
2020-10-14 8:28 ` Paolo Bonzini
2020-10-15 3:43 ` harry harry
2020-10-13 5:00 ` harry harry
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=CA+-xGqOMKRh+_5vYXeLOiGnTMw4L_gUccqdQ+HGSOzuTosp6tw@mail.gmail.com \
--to=hiharryharryharry@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=libvir-list@redhat.com \
--cc=mathieu.tarral@protonmail.com \
--cc=mlevitsk@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sean.j.christopherson@intel.com \
--cc=stefanha@redhat.com \
/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).