From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Memory leak in migration on Xen 4.4 Date: Thu, 19 Nov 2015 14:51:16 +0000 Message-ID: <1447944676.5647.77.camel@citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-IxGnryhaXR5SX+ooArY/" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel Cc: Ian Jackson , Matthew Vernon List-Id: xen-devel@lists.xenproject.org --=-IxGnryhaXR5SX+ooArY/ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Following on from IRC conversation regarding an issue similar to [0] (which was reported by someone else). I've implemented the missing hypercall support in valgrind, see attached which applies to SVN r15732. This is migrating cleanly (i.e. no "README_MISSING_SYSCALL_OR_IOCTL" spew) for me with the attached suppression file which knocks out one known (benign) issue. With this things appear pretty clean using the Jessie packages for everything. Just a few k lost or remaining reachable at the end (see attached logs). I'm somewhat concerned by the restore log though, it contains: =3D=3D3670=3D=3D HEAP SUMMARY: =3D=3D3670=3D=3D=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0in use at exit: 3,288 bytes i= n 4 blocks =3D=3D3670=3D=3D=C2=A0=C2=A0=C2=A0total heap usage: 1,343 allocs, 1,339 fre= es, 542,238,933 bytes allocated That's 517M allocated, which is approximately the size of my test VM. It's not clear though if this is cumulative usage or maximum concurrent usage. Trying with a domain with 3500M (which is the most I can manage for a live migration on this host) I get: =3D=3D4521=3D=3D HEAP SUMMARY: =3D=3D4521=3D=3D=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0in use at exit: 15,240 bytes = in 4 blocks =3D=3D4521=3D=3D=C2=A0=C2=A0=C2=A0total heap usage: 8,847 allocs, 8,843 fre= es, 3,698,460,199 bytes allocated So it does seem to related to the domain size. However my dom0 has 512M RAM and 2G of swap, so 3500 should be well into swap if this was max concurrent memory use, but I'm not seeing it getting much into swap at all i.e. when the migration is about 80% done: root@st40:~# free =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0total=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0used=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0free=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0shared=C2=A0=C2=A0= =C2=A0=C2=A0buffers=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0cached Mem:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0431092=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0411448=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A019644=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0408=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A04488=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0198944 -/+ buffers/cache:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0208016=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0223076 Swap:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A01949692=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A01036=C2=A0=C2=A0=C2=A0=C2=A01948656 So I conclude that the "bytes allocated" is cumulative and not maximum concurrent (and that I can still not reproduce this issue). For completeness I've attached my libxl-save-helper wrapper script. I'm running everything from the Jessie packages. Ian. [0]=C2=A0https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D797205 --=-IxGnryhaXR5SX+ooArY/ Content-Disposition: attachment; filename="0001-xen-Implement-__HYPERVISOR_mmu_update.patch" Content-Type: text/x-patch; name="0001-xen-Implement-__HYPERVISOR_mmu_update.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiODFjYjc2ZTM0YWMyNzQ0MWQyNzBhNjU1ZTQ4Zjc0MWJmNmI0YjM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29t PgpEYXRlOiBUaHUsIDE5IE5vdiAyMDE1IDEzOjA3OjA3ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g eGVuOiBJbXBsZW1lbnQgX19IWVBFUlZJU09SX21tdV91cGRhdGUKClNpZ25lZC1vZmYtYnk6IElh biBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+Ci0tLQogY29yZWdyaW5kL21fc3lz d3JhcC9zeXN3cmFwLXhlbi5jIHwgMTYgKysrKysrKysrKysrKysrLQogaW5jbHVkZS92a2kvdmtp LXhlbi5oICAgICAgICAgICAgIHwgIDUgKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAv c3lzd3JhcC14ZW4uYyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC14ZW4uYwppbmRleCAy MDM0MWM0Li41YzBlNzdiIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAt eGVuLmMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXhlbi5jCkBAIC0xMDksNiAr MTA5LDE1IEBAIHN0YXRpYyB2b2lkIGJhZF9zdWJvcCAoIFRocmVhZElkICAgICAgICAgICAgICB0 aWQsCiAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VOT1NZUyk7CiB9CiAKK1BSRShtbXVfdXBk YXRlKQoreworICAgUFJJTlQoIl9fSFlQRVJWSVNPUl9tbXVfdXBkYXRlICggJSNseCwgJSNseCwg JSNseCwgJSNseCApIiwKKyAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworCisgICBQ UkVfTUVNX1JFQUQoIl9fSFlQRVJWSVNPUl9tbXVfdXBkYXRlIiwKKyAgICAgICAgICAgICAgICAo QWRkcilBUkcxLCBzaXplb2Yoc3RydWN0IHZraV94ZW5fbW11X3VwZGF0ZSkqQVJHMik7Cit9CisK IFBSRShtZW1vcnlfb3ApCiB7CiAgICBQUklOVCgiX19IWVBFUlZJU09SX21lbW9yeV9vcCAoICVs dSwgJSNseCApIiwgQVJHMSwgQVJHMik7CkBAIC0xMzI3LDYgKzEzMzYsMTEgQEAgUFJFKHRtZW1f b3ApCiAjdW5kZWYgX19QUkVfWEVOX1RNRU1PUF9SRUFECiB9CiAKK1BPU1QobW11X3VwZGF0ZSkK K3sKKyAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZih1bnNpZ25lZCBpbnQpKTsKK30KKwog UE9TVChtZW1vcnlfb3ApCiB7CiAgICBzd2l0Y2ggKEFSRzEpIHsKQEAgLTIwMzUsNyArMjA0OSw3 IEBAIHR5cGVkZWYKIAogc3RhdGljIFhlbkh5cGVyY2FsbFRhYmxlRW50cnkgaHlwZXJjYWxsX3Rh YmxlW10gPSB7CiAgICAvLyAgICBfX1ZLSV9YRU5fc2V0X3RyYXBfdGFibGUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gMAotICAgLy8gICAgX19WS0lfWEVOX21tdV91cGRhdGUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEKKyAgIEhZUFhZKF9fVktJ X1hFTl9tbXVfdXBkYXRlLCAgICAgICAgICAgICAgbW11X3VwZGF0ZSwgICAgICAgIDQpLCAvLyAx CiAgICAvLyAgICBfX1ZLSV9YRU5fc2V0X2dkdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gMgogICAgLy8gICAgX19WS0lfWEVOX3N0YWNrX3N3aXRjaCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDMKICAgIC8vICAgIF9fVktJX1hFTl9zZXRf Y2FsbGJhY2tzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA0CmRpZmYgLS1n aXQgYS9pbmNsdWRlL3ZraS92a2kteGVuLmggYi9pbmNsdWRlL3ZraS92a2kteGVuLmgKaW5kZXgg OTI0YTFlOS4uMGQ2ZWQwYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXhlbi5oCisrKyBi L2luY2x1ZGUvdmtpL3ZraS14ZW4uaApAQCAtMTA0LDYgKzEwNCwxMSBAQCBzdHJ1Y3QgdmtpX3hl bmN0bF9iaXRtYXAgewogICAgIHZraV91aW50MzJfdCBucl9iaXRzOwogfTsKIAorc3RydWN0IHZr aV94ZW5fbW11X3VwZGF0ZSB7CisgICAgdmtpX3VpbnQ2NF90IHB0cjsgICAgICAgLyogTWFjaGlu ZSBhZGRyZXNzIG9mIFBURS4gKi8KKyAgICB2a2lfdWludDY0X3QgdmFsOyAgICAgICAvKiBOZXcg Y29udGVudHMgb2YgUFRFLiAgICAqLworfTsKKwogI2luY2x1ZGUgPHZraS92a2kteGVuLWRvbWN0 bC5oPgogI2luY2x1ZGUgPHZraS92a2kteGVuLXN5c2N0bC5oPgogI2luY2x1ZGUgPHZraS92a2kt eGVuLW1tdWV4dC5oPgotLSAKMi4xLjQKCg== --=-IxGnryhaXR5SX+ooArY/ Content-Disposition: attachment; filename="xen-migration.supp" Content-Type: text/plain; name="xen-migration.supp"; charset="UTF-8" Content-Transfer-Encoding: base64 ewogICB4Y19kb21haW5fc2F2ZQogICBNZW1jaGVjazpQYXJhbQogICBYRU5fRE9NQ1RMX2dldHZj cHVleHRzdGF0ZSB1LnZjcHVleHRzdGF0ZS5idWZmZXIKICAgZnVuOmlvY3RsCiAgIGZ1bjp4Y19k b21jdGwKICAgZnVuOnhjX2RvbWFpbl9zYXZlCiAgIG9iajovdXNyL2xpYi94ZW4tNC40L2Jpbi9s aWJ4bC1zYXZlLWhlbHBlci5vcmlnCiAgIGZ1bjooYmVsb3cgbWFpbikKfQo= --=-IxGnryhaXR5SX+ooArY/ Content-Disposition: attachment; filename="libxl-save-helper--restore-domain.valgrind.log" Content-Type: text/x-log; name="libxl-save-helper--restore-domain.valgrind.log"; charset="UTF-8" Content-Transfer-Encoding: base64 PT0zNjcwPT0gTWVtY2hlY2ssIGEgbWVtb3J5IGVycm9yIGRldGVjdG9yCj09MzY3MD09IENvcHly aWdodCAoQykgMjAwMi0yMDE1LCBhbmQgR05VIEdQTCdkLCBieSBKdWxpYW4gU2V3YXJkIGV0IGFs Lgo9PTM2NzA9PSBVc2luZyBWYWxncmluZC0zLjEyLjAuU1ZOIGFuZCBMaWJWRVg7IHJlcnVuIHdp dGggLWggZm9yIGNvcHlyaWdodCBpbmZvCj09MzY3MD09IENvbW1hbmQ6IC91c3IvbGliL3hlbi00 LjQvYmluL2xpYnhsLXNhdmUtaGVscGVyLm9yaWcgLS1yZXN0b3JlLWRvbWFpbiA2IDggMSAwIDIg MCAwIDEgMCAxIDAgMAo9PTM2NzA9PSBQYXJlbnQgUElEOiAzNjU3Cj09MzY3MD09IAo9PTM2NzA9 PSAKPT0zNjcwPT0gSEVBUCBTVU1NQVJZOgo9PTM2NzA9PSAgICAgaW4gdXNlIGF0IGV4aXQ6IDMs Mjg4IGJ5dGVzIGluIDQgYmxvY2tzCj09MzY3MD09ICAgdG90YWwgaGVhcCB1c2FnZTogMSwzNDMg YWxsb2NzLCAxLDMzOSBmcmVlcywgNTQyLDIzOCw5MzMgYnl0ZXMgYWxsb2NhdGVkCj09MzY3MD09 IAo9PTM2NzA9PSA4IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9z cyByZWNvcmQgMSBvZiA0Cj09MzY3MD09ICAgIGF0IDB4NEMyN0MwRjogbWFsbG9jICh2Z19yZXBs YWNlX21hbGxvYy5jOjI5OCkKPT0zNjcwPT0gICAgYnkgMHg0QzI5QkRCOiByZWFsbG9jICh2Z19y ZXBsYWNlX21hbGxvYy5jOjc4NSkKPT0zNjcwPT0gICAgYnkgMHg1MDYyNDA1OiA/Pz8gKGluIC91 c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGVuZ3Vlc3QtNC40LnNvKQo9PTM2NzA9PSAgICBi eSAweDUwNjFFMDI6ID8/PyAoaW4gL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4ZW5ndWVz dC00LjQuc28pCj09MzY3MD09ICAgIGJ5IDB4NTA2M0FEQjogeGNfZG9tYWluX3Jlc3RvcmUgKGlu IC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlieGVuZ3Vlc3QtNC40LnNvKQo9PTM2NzA9PSAg ICBieSAweDQwMTRBRjogPz8/IChpbiAvdXNyL2xpYi94ZW4tNC40L2Jpbi9saWJ4bC1zYXZlLWhl bHBlci5vcmlnKQo9PTM2NzA9PSAgICBieSAweDU0QzRCNDQ6IChiZWxvdyBtYWluKSAobGliYy1z dGFydC5jOjI4NykKPT0zNjcwPT0gCj09MzY3MD09IDI0IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBz dGlsbCByZWFjaGFibGUgaW4gbG9zcyByZWNvcmQgMiBvZiA0Cj09MzY3MD09ICAgIGF0IDB4NEMy N0NDNTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjI5OSkKPT0zNjcwPT0gICAgYnkgMHg0 MDE3NzQ6ID8/PyAoaW4gL3Vzci9saWIveGVuLTQuNC9iaW4vbGlieGwtc2F2ZS1oZWxwZXIub3Jp ZykKPT0zNjcwPT0gICAgYnkgMHg0MDE0NTY6ID8/PyAoaW4gL3Vzci9saWIveGVuLTQuNC9iaW4v bGlieGwtc2F2ZS1oZWxwZXIub3JpZykKPT0zNjcwPT0gICAgYnkgMHg1NEM0QjQ0OiAoYmVsb3cg bWFpbikgKGxpYmMtc3RhcnQuYzoyODcpCj09MzY3MD09IAo9PTM2NzA9PSAxLDIwOCBieXRlcyBp biAxIGJsb2NrcyBhcmUgc3RpbGwgcmVhY2hhYmxlIGluIGxvc3MgcmVjb3JkIDMgb2YgNAo9PTM2 NzA9PSAgICBhdCAweDRDMjdDQzU6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyOTkpCj09 MzY3MD09ICAgIGJ5IDB4NEU0ODA4QTogPz8/IChpbiAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251 L2xpYnhlbmN0cmwtNC40LnNvKQo9PTM2NzA9PSAgICBieSAweDQwMTdDQzogPz8/IChpbiAvdXNy L2xpYi94ZW4tNC40L2Jpbi9saWJ4bC1zYXZlLWhlbHBlci5vcmlnKQo9PTM2NzA9PSAgICBieSAw eDQwMTQ1NjogPz8/IChpbiAvdXNyL2xpYi94ZW4tNC40L2Jpbi9saWJ4bC1zYXZlLWhlbHBlci5v cmlnKQo9PTM2NzA9PSAgICBieSAweDU0QzRCNDQ6IChiZWxvdyBtYWluKSAobGliYy1zdGFydC5j OjI4NykKPT0zNjcwPT0gCj09MzY3MD09IDIsMDQ4IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZp bml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgNCBvZiA0Cj09MzY3MD09ICAgIGF0IDB4NEMyN0ND NTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjI5OSkKPT0zNjcwPT0gICAgYnkgMHg1MDYz ODA2OiB4Y19kb21haW5fcmVzdG9yZSAoaW4gL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ4 ZW5ndWVzdC00LjQuc28pCj09MzY3MD09ICAgIGJ5IDB4NDAxNEFGOiA/Pz8gKGluIC91c3IvbGli L3hlbi00LjQvYmluL2xpYnhsLXNhdmUtaGVscGVyLm9yaWcpCj09MzY3MD09ICAgIGJ5IDB4NTRD NEI0NDogKGJlbG93IG1haW4pIChsaWJjLXN0YXJ0LmM6Mjg3KQo9PTM2NzA9PSAKPT0zNjcwPT0g TEVBSyBTVU1NQVJZOgo9PTM2NzA9PSAgICBkZWZpbml0ZWx5IGxvc3Q6IDIsMDU2IGJ5dGVzIGlu IDIgYmxvY2tzCj09MzY3MD09ICAgIGluZGlyZWN0bHkgbG9zdDogMCBieXRlcyBpbiAwIGJsb2Nr cwo9PTM2NzA9PSAgICAgIHBvc3NpYmx5IGxvc3Q6IDAgYnl0ZXMgaW4gMCBibG9ja3MKPT0zNjcw PT0gICAgc3RpbGwgcmVhY2hhYmxlOiAxLDIzMiBieXRlcyBpbiAyIGJsb2Nrcwo9PTM2NzA9PSAg ICAgICAgIHN1cHByZXNzZWQ6IDAgYnl0ZXMgaW4gMCBibG9ja3MKPT0zNjcwPT0gCj09MzY3MD09 IEZvciBjb3VudHMgb2YgZGV0ZWN0ZWQgYW5kIHN1cHByZXNzZWQgZXJyb3JzLCByZXJ1biB3aXRo OiAtdgo9PTM2NzA9PSBFUlJPUiBTVU1NQVJZOiAyIGVycm9ycyBmcm9tIDIgY29udGV4dHMgKHN1 cHByZXNzZWQ6IDAgZnJvbSAwKQo= --=-IxGnryhaXR5SX+ooArY/ Content-Disposition: attachment; filename="libxl-save-helper--save-domain.valgrind.log" Content-Type: text/x-log; name="libxl-save-helper--save-domain.valgrind.log"; charset="UTF-8" Content-Transfer-Encoding: base64 PT0zNjY4PT0gTWVtY2hlY2ssIGEgbWVtb3J5IGVycm9yIGRldGVjdG9yCj09MzY2OD09IENvcHly aWdodCAoQykgMjAwMi0yMDE1LCBhbmQgR05VIEdQTCdkLCBieSBKdWxpYW4gU2V3YXJkIGV0IGFs Lgo9PTM2Njg9PSBVc2luZyBWYWxncmluZC0zLjEyLjAuU1ZOIGFuZCBMaWJWRVg7IHJlcnVuIHdp dGggLWggZm9yIGNvcHlyaWdodCBpbmZvCj09MzY2OD09IENvbW1hbmQ6IC91c3IvbGliL3hlbi00 LjQvYmluL2xpYnhsLXNhdmUtaGVscGVyLm9yaWcgLS1zYXZlLWRvbWFpbiA4IDcgMCAwIDEgMCAw IDEyIDggNzIKPT0zNjY4PT0gUGFyZW50IFBJRDogMzY0Mwo9PTM2Njg9PSAKPT0zNjY4PT0gCj09 MzY2OD09IEhFQVAgU1VNTUFSWToKPT0zNjY4PT0gICAgIGluIHVzZSBhdCBleGl0OiAxLDIzMiBi eXRlcyBpbiAyIGJsb2Nrcwo9PTM2Njg9PSAgIHRvdGFsIGhlYXAgdXNhZ2U6IDIwMyBhbGxvY3Ms IDIwMSBmcmVlcywgMTYsODkxLDM3NiBieXRlcyBhbGxvY2F0ZWQKPT0zNjY4PT0gCj09MzY2OD09 IDI0IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBzdGlsbCByZWFjaGFibGUgaW4gbG9zcyByZWNvcmQg MSBvZiAyCj09MzY2OD09ICAgIGF0IDB4NEMyN0NDNTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxv Yy5jOjI5OSkKPT0zNjY4PT0gICAgYnkgMHg0MDE3NzQ6ID8/PyAoaW4gL3Vzci9saWIveGVuLTQu NC9iaW4vbGlieGwtc2F2ZS1oZWxwZXIub3JpZykKPT0zNjY4PT0gICAgYnkgMHg0MDEyOEM6ID8/ PyAoaW4gL3Vzci9saWIveGVuLTQuNC9iaW4vbGlieGwtc2F2ZS1oZWxwZXIub3JpZykKPT0zNjY4 PT0gICAgYnkgMHg1NEM0QjQ0OiAoYmVsb3cgbWFpbikgKGxpYmMtc3RhcnQuYzoyODcpCj09MzY2 OD09IAo9PTM2Njg9PSAxLDIwOCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgc3RpbGwgcmVhY2hhYmxl IGluIGxvc3MgcmVjb3JkIDIgb2YgMgo9PTM2Njg9PSAgICBhdCAweDRDMjdDQzU6IG1hbGxvYyAo dmdfcmVwbGFjZV9tYWxsb2MuYzoyOTkpCj09MzY2OD09ICAgIGJ5IDB4NEU0ODA4QTogPz8/IChp biAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L2xpYnhlbmN0cmwtNC40LnNvKQo9PTM2Njg9PSAg ICBieSAweDQwMTdDQzogPz8/IChpbiAvdXNyL2xpYi94ZW4tNC40L2Jpbi9saWJ4bC1zYXZlLWhl bHBlci5vcmlnKQo9PTM2Njg9PSAgICBieSAweDQwMTI4QzogPz8/IChpbiAvdXNyL2xpYi94ZW4t NC40L2Jpbi9saWJ4bC1zYXZlLWhlbHBlci5vcmlnKQo9PTM2Njg9PSAgICBieSAweDU0QzRCNDQ6 IChiZWxvdyBtYWluKSAobGliYy1zdGFydC5jOjI4NykKPT0zNjY4PT0gCj09MzY2OD09IExFQUsg U1VNTUFSWToKPT0zNjY4PT0gICAgZGVmaW5pdGVseSBsb3N0OiAwIGJ5dGVzIGluIDAgYmxvY2tz Cj09MzY2OD09ICAgIGluZGlyZWN0bHkgbG9zdDogMCBieXRlcyBpbiAwIGJsb2Nrcwo9PTM2Njg9 PSAgICAgIHBvc3NpYmx5IGxvc3Q6IDAgYnl0ZXMgaW4gMCBibG9ja3MKPT0zNjY4PT0gICAgc3Rp bGwgcmVhY2hhYmxlOiAxLDIzMiBieXRlcyBpbiAyIGJsb2Nrcwo9PTM2Njg9PSAgICAgICAgIHN1 cHByZXNzZWQ6IDAgYnl0ZXMgaW4gMCBibG9ja3MKPT0zNjY4PT0gCj09MzY2OD09IEZvciBjb3Vu dHMgb2YgZGV0ZWN0ZWQgYW5kIHN1cHByZXNzZWQgZXJyb3JzLCByZXJ1biB3aXRoOiAtdgo9PTM2 Njg9PSBFUlJPUiBTVU1NQVJZOiAwIGVycm9ycyBmcm9tIDAgY29udGV4dHMgKHN1cHByZXNzZWQ6 IDEgZnJvbSAxKQo= --=-IxGnryhaXR5SX+ooArY/ Content-Type: application/x-shellscript; name="libxl-save-helper" Content-Disposition: attachment; filename="libxl-save-helper" Content-Transfer-Encoding: base64 IyEvYmluL3NoCgojZXhlYyAkMC5vcmlnICRACgojICQxIGlzIGVpdGhlciAtLXJlc3RvcmUtZG9t YWluIG9yIC0tc2F2ZS1kb21haW4KZXhlYyAvdXNyL2xvY2FsL2Jpbi92YWxncmluZCBcCgktLWxl YWstY2hlY2s9ZnVsbCAtLXNob3ctbGVhay1raW5kcz1hbGwgXAoJLS1zaG93LXJlYWNoYWJsZT15 ZXMgXAoJLS1zdXBwcmVzc2lvbnM9L3Jvb3QveGVuLW1pZ3JhdGlvbi5zdXBwIFwKCS0tbG9nLWZp bGU9L3RtcC8kKGJhc2VuYW1lICQwKSQxLnZhbGdyaW5kLmxvZyBcCgktLSAkMC5vcmlnICRACg== --=-IxGnryhaXR5SX+ooArY/ 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.xen.org http://lists.xen.org/xen-devel --=-IxGnryhaXR5SX+ooArY/--