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

FW: [Xen-users] Memory management questions


  • To: <xen-users@xxxxxxxxxxxxxxxxxxx>
  • From: "Satoshi Uchida" <s-uchida@xxxxxxxxxxxxx>
  • Date: Thu, 12 Jan 2006 10:13:15 +0900
  • Delivery-date: Thu, 12 Jan 2006 01:19:56 +0000
  • List-id: Xen user discussion <xen-users.lists.xensource.com>
  • Thread-index: AcYXDXACNLMoEU3KTJeZHcgytAoXDwAArGxwAAFEgBA=

Hi.

In my opinion, mem-max is not process correctly.
And information of xm top (xentop) and of XendDomainInfo is not
correspond correctly.

Actually, I seem that restriction of memory in xen handle pfn and pages
variables (ex. max_pfn, max_pages), but XendDomainInfo handles its local
variables with memory information.
xm list shows XenDomainInfo information and xmtop shows actual memory
informations.

xm mem-set and mem-max process renew of XenDomainInfo, and therefore
handle actual memory information.
In the case that memory modification is not possible, latter process
checks and restricts.
Therefore, information between xm list and xm top becomes different
information.
(Mem information in xm list is corresponded to requested target.)

When domain is initialized (started up), memory attribute secure needed
memory and memmax attribute is setup restriction and extra mem attribute
arranges balloon memory.
However, first restriction decide memory and memmax attributes, and
balloon secure by memory attributes, so mem-max reflects correctly.
It is nearly to memory attributes.
After domain waked up, new restriction changes by xm mem-max command.

So, memory information in xm list is not correctly, but show your
request.

Of course, it is necessary to fix this non-correspondence.



Satoshi Uchida


-----Original Message-----
From: Michael Heyse [mailto:mhk@xxxxxxxxxxxxxxxxx]
Sent: Wednesday, January 11, 2006 9:10 PM
To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-users] Memory management questions

Hi,

please help me understand xen's memory management and the balloon driver
a little bit better.

setup: xen-3.0-testing-20051206 (installed with gentoo's xen-3.0.0-r2
ebuild), Kernel 2.6.12.6-xen total RAM: 1G (no swap for this test) dom0
parameters:
    - dom0_mem=768M (grub config)
    - dom0-min-mem 196 (xend-config.sxp)
dom1 parameters: memory=128, extra="mem=768M"
dom2 parameters: memory=256, extra="mem=768M"

If I understood correctly how the ballon driver works, this should boot
dom0 with 768M available initially and automatically ballooning it down
to not less than 196M if memory is needed by other domains. dom1 and
dom2 should start with 128M and 256M respectively, with the option of
ballooning both to a max of 768M with the "xm mem-set" command run from
dom0. After all domains are booted, `xm list` gives me

Name                              ID Mem(MiB) VCPUs State  Time(s)
Domain-0                           0      586     1 r-----   118.0
dom1                               1      128     1 -b----    32.6
dom2                               2      256     1 -b----    30.3

and `cat /proc/meminfo` shows a MemTotal of 775108 kB in dom1 and dom2
with reasonable MemFree values of approx. 80M and 220M respectively,
which looks all right to me. Did I get it until here?

Now suppose I want to compile glibc in dom1 which needs lots of memory.
So I do a

xm mem-set 1 768M

`xm list` now shows
Name                              ID Mem(MiB) VCPUs State  Time(s)
Domain-0                           0      586     1 r-----   120.3
dom1                               1      768     1 -b----    32.7
dom2                               2      256     1 -b----    30.3

which I don't understand, because now the sum of memory used exceeds the
1G system total. Shouldn't xm complain here? Also, `xm top` still shows
a MAXMEM of 131072 for dom1, and `cat /proc/meminfo` in dom1 doesn't
show a change at all. And there definitely isn't more memory in
domavailable 1, because if I mount a tmpfs on ~/test and do a `dd
if=/dev/zero of=~/test/test` the oom-killer kicks in as soon as the file
size reaches approx. 100M. The same thing happens if I'm less greedy and
do a `xm mem-set 1 256M`, which should work with the available memory.
So it looks like my ballooning attempt failed.

So what did I do wrong?

Thanks,
Michael




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


 


Rackspace

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