All of lore.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 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.