From: David Daney <ddaney.cavm@gmail.com>
To: KVM devel mailing list <kvm@vger.kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Subject: Q: Why not use struct mm_struct to manage guest physical addresses in new port?
Date: Tue, 05 Feb 2013 11:02:32 -0800 [thread overview]
Message-ID: <51115748.2090203@gmail.com> (raw)
Hi,
I am starting to working on a port of KVM to an architecture that has a
dual TLB. The Guest Virtual Addresses (GVA) are translated to Guest
Physical Addresses (GPA) by the first TLB, then a second TLB translates
the GPA to a Root Physical Address (RPA). For the sake of this
question, we will ignore the GVA->GPA TLB and consider only the GPA->RPA
TLB.
I seems that most existing ports have a bunch of custom code that
manages the GPA->RPA TLB and page tables.
Here is what I would like to try: Create a mm for the GPA->RPA mappings
each vma would have a fault handler that calls gfn_to_pfn() to look up
the proper page. In kvm_arch_vcpu_ioctl_run() we would call switch_mm()
to this new 'gva_mm'. Upon exiting guest mode we would switch back to
the original mm of the controlling process.
For me the benefit of this approach is that all the code that manages
the TLB is already implemented and works well for struct mm_struct. The
only thing I need to do is write a vma fault handler. That is a lot
easier and less error prone than maintaining a parallel TLB management
framework and making sure it interacts properly with the existing TLB
code for 'normal' processes.
Q1: Am I crazy for wanting to try this?
Q2: Have others tried this and rejected it? What were the reasons?
Thanks in advance,
David Daney
Cavium, Inc.
next reply other threads:[~2013-02-05 19:02 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-05 19:02 David Daney [this message]
2013-02-08 22:11 ` Q: Why not use struct mm_struct to manage guest physical addresses in new port? Marcelo Tosatti
2013-02-08 23:08 ` David Daney
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=51115748.2090203@gmail.com \
--to=ddaney.cavm@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=ralf@linux-mips.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