From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: "Dong, Eddie" <eddie.dong-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: kvm guest memory management (was: Re: [RFC][PATCH]Memory mapped TPR shadow featureenabling)
Date: Fri, 28 Sep 2007 18:56:28 +0200 [thread overview]
Message-ID: <46FD323C.3090905@qumranet.com> (raw)
In-Reply-To: <10EA09EFD8728347A513008B6B0DA77A022AEA2F-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
Dong, Eddie wrote:
> Taking this chance to brainstorming what is the direction of slot
> structure and
> VT-d support. In later case, we have to generate a P2M (gpa to hpa or
> mpa) table
> eventually. This table won't replace slot data structure since we still
> need
> struct page * some place, but it will help gpa_to_hpa search. Do u have
> any
> solid idea right now? My suggestion is to add additional P2M table and
> restructure
> shadow code to use P2M table for most frequent APIs which will help
> performance.
>
> Increasing slot number will simply reduce performance of slot table :-(
>
First, I doubt that memory slot count will really affect performance.
The memory slot structure is small and it is likely that all slots will
be kept in cache at all times. Walking all slots should take a lot less
time than a vmexit, even if there are 16 slots. Placing the most
heavily used slots first reduces that time further.
But to the bigger picture. We're quite close to using user-allocated
memory for the guest, instead of kernel allocated memory. This means
that userspace will allocate a memory region and assign it to kvm as a
memory slot. On x86-64, where we have a large address space, this means
that all of memory can be in just one slot (well, slots also allow us to
do tracking of dirty pages on a subset of memory, so maybe three slots
are needed). In effect, the Linux process page tables become the g2h
(or p2m) tables, and access to guest memory is a simple
copy_to_user()/copy_from_user().
User-allocated memory will enable the following features:
- s390 support
- guest swapping
- page migration (where a guest is migrated from one NUMA node to another)
- in conjunction with a de-duplicating file system, page sharing among
guests
- inter-guest shared memory (mmap() one file in two or more guests)
- easier use of huge pages
- more?
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
next prev parent reply other threads:[~2007-09-28 16:56 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-25 5:52 [RFC][PATCH]Memory mapped TPR shadow feature enabling Yang, Sheng
[not found] ` <DB3BD37E3533EE46BED2FBA80995557F87DA24-wq7ZOvIWXbM/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-09-25 8:35 ` Avi Kivity
[not found] ` <46F8C84F.7090605-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-28 4:49 ` [RFC][PATCH]Memory mapped TPR shadow featureenabling Dong, Eddie
[not found] ` <10EA09EFD8728347A513008B6B0DA77A022AE787-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-09-28 14:41 ` Avi Kivity
[not found] ` <46FD1288.9030507-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-28 15:48 ` Dong, Eddie
[not found] ` <10EA09EFD8728347A513008B6B0DA77A022AEA2F-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-09-28 16:22 ` Windows 2003 Server SMP Guest crashes Fabian Deutsch
[not found] ` <20070928162210.98710-hi6Y0CQ0nG0@public.gmane.org>
2007-09-28 16:57 ` Avi Kivity
[not found] ` <46FD3295.5020700-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-28 16:52 ` Fabian Deutsch
2007-09-28 16:56 ` Avi Kivity [this message]
[not found] ` <46FD323C.3090905-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-29 3:34 ` kvm guest memory management Dong, Eddie
[not found] ` <10EA09EFD8728347A513008B6B0DA77A022AEAFE-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-09-30 8:55 ` Avi Kivity
[not found] ` <46FF647E.6080506-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-03 15:03 ` Anthony Liguori
2007-10-22 8:49 ` [RFC][PATCH]Memory mapped TPR shadow feature enabling Yang, Sheng
[not found] ` <DB3BD37E3533EE46BED2FBA80995557F9BE17A-wq7ZOvIWXbM/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-10-22 9:00 ` Avi Kivity
[not found] ` <471C66C1.6000508-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-22 9:11 ` Yang, Sheng
[not found] ` <DB3BD37E3533EE46BED2FBA80995557F9BE19D-wq7ZOvIWXbM/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-10-22 9:32 ` Avi Kivity
[not found] ` <471C6E14.9030502-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-22 9:45 ` Yang, Sheng
[not found] ` <DB3BD37E3533EE46BED2FBA80995557F9BE1B0-wq7ZOvIWXbM/UvCtAeCM4rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-10-22 9:48 ` Avi Kivity
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=46FD323C.3090905@qumranet.com \
--to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
--cc=eddie.dong-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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