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: Re: kvm guest memory management
Date: Sun, 30 Sep 2007 10:55:26 +0200 [thread overview]
Message-ID: <46FF647E.6080506@qumranet.com> (raw)
In-Reply-To: <10EA09EFD8728347A513008B6B0DA77A022AEAFE-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
Dong, Eddie wrote:
>
>> 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().
>>
>
> There are couple reasons that g2h can't server this.
> A VT-d device or EPT/NPT table need to translate from guest physical
> to machine physical address, while g2h uses host mode va as index.
> Other reason is that g2h also include host user space memory & kernel
> memory which guest should never touch. (A bad programmed VT-d device
> may modify the memory listed by VT-d table).
>
>
For EPT, we can't use the host page tables because EPT does not support
the dirty bit. So EPT requires duplication of the page tables anyway.
> Dirty tracking can certainly be serviced even using p2m solely.
>
>
>> 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?
>>
>>
>
> This doesn't conflict with my suggestion though the p2m table then
> need to be dynamically modifed in case swapping happens.
>
The nice thing about using the host page tables is that it's
automatically updated to reflect changes in mapping. Translating a page
(gfn_to_page) becomes a call to get_user_pages().
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
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-30 8:55 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 ` kvm guest memory management (was: Re: [RFC][PATCH]Memory mapped TPR shadow featureenabling) Avi Kivity
[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 [this message]
[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=46FF647E.6080506@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.