From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Charles Coffing" Subject: [PATCH] Fix auto-ballooning of dom0 for HVM domains Date: Thu, 18 May 2006 13:04:04 -0400 Message-ID: <446C5554.D169.003C.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__PartFDD8D814.0__=" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --=__PartFDD8D814.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, I've been trying to make the auto-ballooning of domain 0 work reliably for HVM domains. Patch #1 is a simple bug fix, in preparation for patch #2. Patch #2 tries to calculate how much memory is needed for HVM domains (XenSource bug #521) and is certainly open for discussion. Patches apply cleanly to both 3.0-testing and unstable. Patch #1 (xen-hvm-auto-balloon.diff): When a domain (whether para- or fully-virtualized) reports how much overhead memory it requires (via getDomainMemory in image.py), all such memory was immediately allocated to the domain itself. This is certainly incorrect for HVM domains, since additional increase_reservation calls are made later in qemu. Since all ballooned memory is already taken, qemu will fail. The fix is to treat the requested memory size and the overhead size as separate values. The requested memory size is immediately allocated to the new domain; the overhead is left unallocated for whatever else might need it later. Patch #2 (xen-get-dom-memory.diff): This patch calculates the overhead needed for HVM domains. If HVM is supported by the hardware, I add a little ballooning overhead to paravirtualized VMs also, to avoid low-memory situations. (There are various unchecked alloc_domheap_pages calls in shadow*.c that I am trying to avoid tripping over for now...) The values in this patch work fine on 32 bit; I may update them later based on feedback and/or testing on 64 bit. Thanks, Chuck --=__PartFDD8D814.0__= Content-Type: application/octet-stream; name="xen-hvm-auto-balloon.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="xen-hvm-auto-balloon.diff" SW5kZXg6IHhlbi0zLjAtdGVzdGluZy90b29scy9weXRob24veGVuL3hlbmQvWGVuZERvbWFpbklu Zm8ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0geGVuLTMuMC10ZXN0aW5nLm9yaWcvdG9vbHMvcHl0aG9uL3hl bi94ZW5kL1hlbmREb21haW5JbmZvLnB5CisrKyB4ZW4tMy4wLXRlc3RpbmcvdG9vbHMvcHl0aG9u L3hlbi94ZW5kL1hlbmREb21haW5JbmZvLnB5CkBAIC0xMjQ3LDcgKzEyNDcsNyBAQCBjbGFzcyBY ZW5kRG9tYWluSW5mbzoKICAgICAgICAgICAgIG0gPSBzZWxmLmltYWdlLmdldERvbWFpbk1lbW9y eShzZWxmLmluZm9bJ21lbW9yeSddICogMTAyNCkKICAgICAgICAgICAgIGJhbGxvb24uZnJlZSht KQogICAgICAgICAgICAgeGMuZG9tYWluX3NldG1heG1lbShzZWxmLmRvbWlkLCBtKQotICAgICAg ICAgICAgeGMuZG9tYWluX21lbW9yeV9pbmNyZWFzZV9yZXNlcnZhdGlvbihzZWxmLmRvbWlkLCBt LCAwLCAwKQorICAgICAgICAgICAgeGMuZG9tYWluX21lbW9yeV9pbmNyZWFzZV9yZXNlcnZhdGlv bihzZWxmLmRvbWlkLCBzZWxmLmluZm9bJ21lbW9yeSddICogMTAyNCwgMCwgMCkKIAogICAgICAg ICAgICAgc2VsZi5jcmVhdGVDaGFubmVscygpCiAK --=__PartFDD8D814.0__= Content-Type: application/octet-stream; name="xen-get-dom-memory.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="xen-get-dom-memory.diff" SW5kZXg6IHhlbi0zLjAtdGVzdGluZy90b29scy9weXRob24veGVuL3hlbmQvaW1hZ2UucHkKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0geGVuLTMuMC10ZXN0aW5nLm9yaWcvdG9vbHMvcHl0aG9uL3hlbi94ZW5kL2lt YWdlLnB5CisrKyB4ZW4tMy4wLXRlc3RpbmcvdG9vbHMvcHl0aG9uL3hlbi94ZW5kL2ltYWdlLnB5 CkBAIC0xOSw2ICsxOSw3IEBACiAKIGltcG9ydCBvcywgc3RyaW5nCiBpbXBvcnQgcmUKK2ltcG9y dCBtYXRoCiAKIGltcG9ydCB4ZW4ubG93bGV2ZWwueGMKIGZyb20geGVuLnhlbmQgaW1wb3J0IHN4 cApAQCAtMTQzLDExICsxNDQsMTMgQEAgY2xhc3MgSW1hZ2VIYW5kbGVyOgogICAgICAgICAgICAg ICAgICAgICAgICAgICAlIChzZWxmLm9zdHlwZSwgc2VsZi52bS5nZXREb21pZCgpLCBzdHIocmVz dWx0KSkpCiAKIAotICAgIGRlZiBnZXREb21haW5NZW1vcnkoc2VsZiwgbWVtKToKKyAgICBkZWYg Z2V0RG9tYWluTWVtb3J5KHNlbGYsIG1lbV9rYik6CiAgICAgICAgICIiIkByZXR1cm4gVGhlIG1l bW9yeSByZXF1aXJlZCwgaW4gS2lCLCBieSB0aGUgZG9tYWluIHRvIHN0b3JlIHRoZQotICAgICAg ICBnaXZlbiBhbW91bnQsIGFsc28gaW4gS2lCLiAgVGhpcyBpcyBub3JtYWxseSBqdXN0IG1lbSwg YnV0IEhWTSBkb21haW5zCi0gICAgICAgIGhhdmUgb3ZlcmhlYWRzIHRvIGFjY291bnQgZm9yLiIi IgotICAgICAgICByZXR1cm4gbWVtCisgICAgICAgIGdpdmVuIGFtb3VudCwgYWxzbyBpbiBLaUIu ICBUaGlzIGlzIG5vcm1hbGx5IGp1c3QgbWVtLCBidXQgaWYgSFZNIGlzCisgICAgICAgIHN1cHBv cnRlZCwga2VlcCBhIGxpdHRsZSBleHRyYSBmcmVlLiIiIgorICAgICAgICBpZiAnaHZtJyBpbiB4 Yy54ZW5pbmZvKClbJ3hlbl9jYXBzJ106CisgICAgICAgICAgICBtZW1fa2IgKz0gNCoxMDI0Owor ICAgICAgICByZXR1cm4gbWVtX2tiCiAKICAgICBkZWYgYnVpbGREb21haW4oc2VsZik6CiAgICAg ICAgICIiIkJ1aWxkIHRoZSBkb21haW4uIERlZmluZSBpbiBzdWJjbGFzcy4iIiIKQEAgLTM3OSwx NSArMzgyLDIwIEBAIGNsYXNzIEhWTUltYWdlSGFuZGxlcihJbWFnZUhhbmRsZXIpOgogICAgICAg ICBvcy53YWl0cGlkKHNlbGYucGlkLCAwKQogICAgICAgICBzZWxmLnBpZCA9IDAKIAotICAgIGRl ZiBnZXREb21haW5NZW1vcnkoc2VsZiwgbWVtKToKKyAgICBkZWYgZ2V0RG9tYWluTWVtb3J5KHNl bGYsIG1lbV9rYik6CiAgICAgICAgICIiIkBzZWUgSW1hZ2VIYW5kbGVyLmdldERvbWFpbk1lbW9y eSIiIgotICAgICAgICBwYWdlX2tiID0gNAotICAgICAgICBleHRyYV9wYWdlcyA9IDAKICAgICAg ICAgaWYgb3MudW5hbWUoKVs0XSA9PSAnaWE2NCc6CiAgICAgICAgICAgICBwYWdlX2tiID0gMTYK ICAgICAgICAgICAgICMgUk9NIHNpemUgZm9yIGd1ZXN0IGZpcm13YXJlLCBpb3JlcSBwYWdlIGFu ZCB4ZW5zdG9yZSBwYWdlCiAgICAgICAgICAgICBleHRyYV9wYWdlcyA9IDEwMjQgKyAyCi0gICAg ICAgIHJldHVybiBtZW0gKyBleHRyYV9wYWdlcyAqIHBhZ2Vfa2IKKyAgICAgICAgZWxzZToKKyAg ICAgICAgICAgIHBhZ2Vfa2IgPSA0CisgICAgICAgICAgICAjIFRoaXMgd2FzIGRlcml2ZWQgZW1w ZXJpY2FsbHk6CisgICAgICAgICAgICAjICAgMi40IE1CIG92ZXJoZWFkIHBlciAxMDI0IE1CIFJB TSArIDggTUIgY29uc3RhbnQKKyAgICAgICAgICAgICMgICArIDQgdG8gYXZvaWQgbG93LW1lbW9y eSBjb25kaXRpb24KKyAgICAgICAgICAgIGV4dHJhX21iID0gKDIuNC8xMDI0KSAqIChtZW1fa2Iv MTAyNC4wKSArIDEyOworICAgICAgICAgICAgZXh0cmFfcGFnZXMgPSBpbnQoIG1hdGguY2VpbCgg ZXh0cmFfbWIqMTAyNCAvIHBhZ2Vfa2IgKSkKKyAgICAgICAgcmV0dXJuIG1lbV9rYiArIGV4dHJh X3BhZ2VzICogcGFnZV9rYgogCiAgICAgZGVmIHJlZ2lzdGVyX3NodXRkb3duX3dhdGNoKHNlbGYp OgogICAgICAgICAiIiIgYWRkIHhlbiBzdG9yZSB3YXRjaCBvbiBjb250cm9sL3NodXRkb3duICIi Igo= --=__PartFDD8D814.0__= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --=__PartFDD8D814.0__=--