public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
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/

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox