[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 00 of 24] xenpaging fixes for xen-unstable



On Tue, Oct 04, Ian Campbell wrote:

> totmem is unfortunately not all that descriptive to an end user of what
> it does (which I think is a general problem we have with the memory
> related options).
> 
> Currently the xl config file options are:
>         memory = actual start of day RAM
>         maxmem = max ram guest could balloon to (?)
> 
> How does POD fit in? Is it just maxmem-memory for HVM domains? (not
> really relevant for this discussion, more for completeness).
> 
> The associated command line options are:
>         mem-set (runtime equivalent of memory?)
>         mem-max (runtime equivalent of maxmem?)
> 
> Hmm, I was hoping that enumerating the existing options would make the
> name and semantics of the paging option magically pop into my head, I
> was wrong :-(
> 
> BTW tools/libxl/libxl_memory.txt should be patched by this series too,
> once we figure out what to call things.
> 
> The phrase "actual memory" is used in that document -- perhaps that is
> suitable terminology for totmem?

The naming of the various numbers is confusing, so far I could not come
up with a better name than tot_pages.

"actual target" is close to what xenpaging leaves for the guest, the
amount of video ram has to be substracted.

I think the code in libxl, xenstore and in my changes is not 100%
consistent with the figure below. I have to wade through the individual
members again and check if the math is correct in all places.

Olaf

/* === Domain memory breakdown: HVM guests ==================================
                           
             +  +----------+                                                 +  
          
             |  | shadow   |                                                 |  
          
             |  +----------+                                                 |  
          
    overhead |  | extra    |                                                 |  
          
             |  | external |                                                 |  
          
             |  +----------+                                      +          |  
          
             |  | extra    |                                      |          |  
          
             |  | internal |                                      |          |  
          
             +  +----------+                            +         |          | 
footprint  
             |  | video    |                            |         |          |  
          
             |  +----------+  +           +    +        |         | xen      |  
          
             |  |          |  | guest OS  |    |        | actual  | maximum  |  
          
             |  | guest    |  | real RAM  |    |        | target  |          |  
          
             |  |          |  |           |    | build  |         |          |  
          
             |  +----------+  +           |    | start  +         |          |  
          
      static |  | paging   |              |    |                  |          |  
          
     maximum |  +----------+              |    +                  +          +  
          
             |  |          |              |                                     
          
             |  |          |              |                                     
          
             |  | balloon  |              | build                               
          
             |  |          |              | maximum                             
          
             |  |          |              |                                     
          
             +  +----------+              +                                     
          
                
                
    extra internal = LIBXL_MAXMEM_CONSTANT
    extra external = LIBXL_HVM_EXTRA_MEMORY
    shadow = libxl_domain_build_info.shadow_memkb
    static maximum = libxl_domain_build_info.max_memkb
    video = libxl_domain_build_info.video_memkb
    build start = libxl_domain_build_info.target_memkb
    libxl_domain_setmaxmem -> xen maximum
    libxl_set_memory_target -> actual target
                
    build maximum = RAM as seen inside the virtual machine
                    Increase/Decrease via memory hotplug of virtual hardware (?)
                    xl mem-max (?)
    build start   = RAM usable by the guest OS
                    guest OS sees balloon driver as memory hog (?)
                    Increase/Decrease via commands to the balloon driver
                    xl mem-set
    real RAM      = RAM allocated for the guest
                    Increase/Decrease via commands to paging daemon
                    xl mem-FOO

    guest = real RAM
    paging = virtual RAM / swap
    balloon = will become real or virtual RAM after mem-set command


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.