From: "Dan Magenheimer" Subject: [PATCH] balloon: selfballooning and post memory info via xenbus Date: Mon, 5 May 2008 16:44:56 -0600 Message-ID: <20080505164456890.00000003448@djm-pc> Reply-To: "dan.magenheimer@oracle.com" Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=-------267b2476267b2476 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 (E-mail)" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format ---------267b2476267b2476 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 T0ssIGhlcmUncyB0aGUgcHJvbWlzZWQgcGF0Y2guICBUaGUgb3ZlcmFsbCBvYmplY3RpdmUg b2YgdGhlDQpwYXRjaCBpcyB0byBlbmFibGUgbGltaXRlZCBtZW1vcnkgbG9hZC1iYWxhbmNp bmcgY2FwYWJpbGl0aWVzDQphcyBhIHN0ZXAgdG93YXJkIGFsbG93aW5nIGxpbWl0ZWQgbWVt b3J5IG92ZXJjb21taXQuICBXaXRoDQp0aGlzIGFuZCBzb21lIG90aGVyIG1pbm9yIGhhY2tl cnksIEkgd2FzIGFibGUgdG8gcnVuIGFzDQptYW55IGFzIDE1IGxpZ2h0bHkgbG9hZGVkIDUx Mk1CIGRvbWFpbnMgb24gYSAyR0Igc3lzdGVtDQooeWVzLCB2ZWVycnJyeXl5IHNsb29vd3d3 bGx5KS4NCg0KUmV2aWV3L2NvbW1lbnRzIGFwcHJlY2lhdGVkLg0KDQpXaXRoIHRoaXMgcGF0 Y2gsIGJhbGxvb24uYyBjb21tdW5pY2F0ZXMgKGxpbWl0ZWQpIHVzZWZ1bA0KbWVtb3J5IHVz YWdlIGluZm9ybWF0aW9uIHZpYSB4ZW5idXMuICBJdCBhbHNvIGltcGxlbWVudHMNCiJzZWxm YmFsbG9vbmluZyIgd2hpY2ggYXBwbGllcyB0aGUgbWVtb3J5IGluZm9ybWF0aW9uDQpsb2Nh bGx5IHRvIGltbWVkaWF0ZWx5IGFkanVzdCB0aGUgYmFsbG9vbiwgZ2l2aW5nIHVwIG1lbW9y eQ0Kd2hlbiBpdCBpcyBub3QgbmVlZGVkIGFuZCBhc2tpbmcgZm9yIGl0IGJhY2sgd2hlbiBp dCBpcyBuZWVkZWQsDQppbXBsZW1lbnRpbmcgYSBmaXJzdC1jb21lLWZpcnN0LXNlcnZlZCBz eXN0ZW0td2lkZSBiYWxsb29uaW5nDQoicG9saWN5Ii4gIFdoZW4gYSBkb21haW4gYXNrcyBm b3IgbWVtb3J5IGJ1dCBub25lIGlzIGF2YWlsYWJsZSwNCml0IG11c3QgdXNlIGl0cyBvd24g Y29uZmlndXJlZCBzd2FwIGRpc2ssIHJlc3VsdGluZyBpbg0KKHBvdGVudGlhbGx5IHNldmVy ZSkgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24uICBOYXR1cmFsbHksDQppdCBpcyBub3QgcmVj b21tZW5kZWQgdG8gdHVybiBvbiBzZWxmYmFsbG9vbmluZyBpbiBhIGRvbWFpbg0KdGhhdCBo YXMgbm8gc3dhcCBkaXNrIG9yIGlmIHBlcmZvcm1hbmNlIGlzIG1vcmUgaW1wb3J0YW50DQp0 aGFuIGluY3JlYXNpbmcgdGhlIG51bWJlciBvZiBWTXMgcnVubmFibGUgb24gYSBwaHlzaWNh bCBtYWNoaW5lLg0KDQpBIGtleSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIExpbnV4IHZhcmlh YmxlIHZtX2NvbW1pdHRlZF9zcGFjZQ0KaXMgYSByZWFzb25hYmxlIGZpcnN0IGFwcHJveGlt YXRpb24gb2YgbWVtb3J5IG5lZWRlZCBieSBhIGRvbWFpbi4NClRoaXMgYXBwcm94aW1hdGlv biB3aWxsIHByb2JhYmx5IGltcHJvdmUgb3ZlciB0aW1lLCBidXQgaXMNCmEgZ29vZCBzdGFy dCBmb3Igbm93LiAgVGhlIHZhcmlhYmxlIGlzIGJvdW5kIG9uIHRoZSBsb3dlciBlbmQNCmJ5 IHRoZSByZWNlbnRseSBzdWJtaXR0ZWQgbWluaW11bV90YXJnZXQoKSBhbGdvcml0aG0gcGF0 Y2g7DQp0aHVzIE8tTy1NIGNvbmRpdGlvbnMgc2hvdWxkIG5vdCBvY2N1ci4NCg0KVGhlIGNv ZGUgaXMgYSBiaXQgY29tcGxpY2F0ZWQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzIGJlY2F1c2Ug b2YNCnJhY2UgY29uZGl0aW9ucyBpbnZvbHZpbmcgeGVuc3RvcmVkIHN0YXJ0dXAgcmVsYXRp dmUgdG8NCnR1cm5pbmcgb24gc2VsZmJhbGxvb25pbmcgbG9jYWxseS4gIEJlY2F1c2UgdGhl IGtleSB2YXJpYWJsZQ0KKHZtX2NvbW1pdHRlZF9zcGFjZSkgaXMgbm90IGV4cG9ydGVkIGJ5 IExpbnV4LCBJIGltcGxlbWVudGVkDQphIGhvcnJpYmxlIGhhY2sgd2hpY2ggc3RpbGwgYWxs b3dzIHRoZSBjb2RlIHRvIHdvcmsgaW4gYQ0KbW9kdWxlLCBob3dldmVyIEkgZnVsbHkgZXhw ZWN0IHRoYXQgdGhpcyBwYXJ0IG9mIHRoZSBwYXRjaA0Kd2lsbCBub3QgYmUgYWNjZXB0ZWQg KHdoaWNoIHdpbGwgbGltaXQgdGhlIGZ1bmN0aW9uYWxpdHkgdG8NCnB2bSBkb21haW5zIG9u bHkuLi4gcHJvYmFibHkgT0sgZm9yIG5vdykuDQoNCkV4aXN0aW5nIGJhbGxvb24gZnVuY3Rp b25hbGl0eSB3aGljaCBpcyB1bmNoYW5nZWQ6DQotIFNldCB0YXJnZXQgZm9yIFZNIGZyb20g ZG9tYWluMA0KLSBTZXQgdGFyZ2V0IGluc2lkZSBWTSBieSB3cml0aW5nIHRvIC9wcm9jL3hl bi9iYWxsb29uDQpFeGlzdGluZyBiYWxsb29uIGluZm8gb24geGVuYnVzIHdoaWNoIGlzIHVu Y2hhbmdlZDoNCi0gL2xvY2FsL2RvbWFpbi9YL21lbW9yeS90YXJnZXQNClRvIHR1cm4gb24g c2VsZmJhbGxvb25pbmc6DQotIEluc2lkZSBhIFZNOiAiZWNobyAxID4gL3Byb2MveGVuL2Jh bGxvb24iDQotIEZyb20gZG9tYWluMDogInhlbnN0b3JlLXdyaXRlIC9sb2NhbC9kb21haW4v WC9tZW1vcnkvc2VsZmJhbGxvb24gMSINClRvIHR1cm4gb2ZmIHNlbGZiYWxsb29uaW5nOg0K LSBJbnNpZGUgYSBWTTogImVjaG8gMCA+IC9wcm9jL3hlbi9iYWxsb29uIg0KLSBGcm9tIGRv bWFpbjA6ICJ4ZW5zdG9yZS13cml0ZSAvbG9jYWwvZG9tYWluL1gvbWVtb3J5L3NlbGZiYWxs b29uIDAiDQpOZXcgYmFsbG9vbiBpbmZvIG5vdyBvbiB4ZW5idXM6DQotIC9sb2NhbC9kb21h aW4vWC9tZW1vcnkvc2VsZmJhbGxvb24gWzAgb3IgMV0NCi0gL2xvY2FsL2RvbWFpbi9YL21l bW9yeS9hY3R1YWwgW2tCXSAqDQotIC9sb2NhbC9kb21haW4vWC9tZW1vcnkvbWluaW11bSBb a0JdICoNCi0gL2xvY2FsL2RvbWFpbi9YL21lbW9yeS9zZWxmdGFyZ2V0IFtrQl0gKiAob25s eSB2YWxpZCBpZg0KICBzZWxmYmFsbG9vbj09MSkNCiAqIHdyaXRlYWJsZSBvbmx5IGJ5IGJh bGxvb24gZHJpdmVyIGluIFggd2hlbiBlaXRoZXINCiAgIHNlbGZiYWxsb29uaW5nIGlzIGZp cnN0IGVuYWJsZWQsIG9yIHRhcmdldCBpcyBjaGFuZ2VkDQogICBieSBkb21haW4wDQoNClRo YW5rcywNCkRhbg0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KVGhh bmtzLi4uIGZvciB0aGUgbWVtb3J5DQpJIHJlYWxseSBjb3VsZCB1c2UgbW9yZSAvIE15IHRo cm91Z2hwdXQncyBvbiB0aGUgZmxvb3INClRoZSBiYWxsb29uIGlzIGZsYXQgLyBNeSBzd2Fw IGRpc2sncyBmYXQgLyBJJ3ZlIE9PTSdzIGluIHN0b3JlDQpPdmVyY29tbWl0dGVkIHNvIG11 Y2gNCih3aXRoIGFwb2xvZ2llcyB0byB0aGUgbGF0ZSBncmVhdCBCb2IgSG9wZSk= ---------267b2476267b2476 Content-Type: application/octet-stream; name="balloon.patch" Content-Disposition: attachment; filename="balloon.patch" Content-Transfer-Encoding: base64 ZGlmZiAtciBhOTQ3MjA3ZGE0ZTQgZHJpdmVycy94ZW4vYmFsbG9vbi9iYWxsb29uLmMKLS0t IGEvZHJpdmVycy94ZW4vYmFsbG9vbi9iYWxsb29uLmMJVGh1IE1heSAwMSAxMToyODoyMyAy MDA4ICswMTAwCisrKyBiL2RyaXZlcnMveGVuL2JhbGxvb24vYmFsbG9vbi5jCU1vbiBNYXkg MDUgMTU6NTA6NTUgMjAwOCAtMDYwMApAQCAtNiw2ICs2LDcgQEAKICAqIENvcHlyaWdodCAo YykgMjAwMywgQiBEcmFnb3ZpYwogICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDQsIE0gV2ls bGlhbXNvbiwgSyBGcmFzZXIKICAqIENvcHlyaWdodCAoYykgMjAwNSBEYW4gTS4gU21pdGgs IElCTSBDb3Jwb3JhdGlvbgorICogQ29weXJpZ2h0IChjKSAyMDA4IERhbiBNYWdlbmhlaW1l ciwgT3JhY2xlIENvcnAgKGFkZGVkIHNlbGYtYmFsbG9vbmluZykKICAqIAogICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgdmVyc2lvbiAyCkBAIC03OCwxOSArNzksMzIgQEAgREVGSU5FX1NQSU5M T0NLKGJhbGxvb25fbG9jayk7CiAKIHN0cnVjdCBiYWxsb29uX3N0YXRzIGJhbGxvb25fc3Rh dHM7CiAKKy8qCisgKiB1c2Ugdm1fY29tbWl0dGVkX3NwYWNlIGFzIGFuIGFwcHJveGltYXRp b24gZm9yIGJhbGxvb24gdGFyZ2V0LCByZXBlYXRpbmcKKyAqIGV2ZXJ5IHNlY29uZC4gIERp c2FibGVkIGlmIGNvbXBpbGVkIGFzIE1PRFVMRSBiZWNhdXNlIGtlcm5lbCBkb2Vzbid0Cisg KiBjdXJyZW50bHkgZXhwb3J0IHZtX2NvbW1pdHRlZF9zcGFjZQorICovCitzdGF0aWMgaW50 IHNlbGZiYWxsb29uID0gMDsKKwogLyogV2UgaW5jcmVhc2UvZGVjcmVhc2UgaW4gYmF0Y2hl cyB3aGljaCBmaXQgaW4gYSBwYWdlICovCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBmcmFtZV9s aXN0W1BBR0VfU0laRSAvIHNpemVvZih1bnNpZ25lZCBsb25nKV07CiAKIC8qIFZNIC9wcm9j IGluZm9ybWF0aW9uIGZvciBtZW1vcnkgKi8KIGV4dGVybiB1bnNpZ25lZCBsb25nIHRvdGFs cmFtX3BhZ2VzOwogCisvKiBhdm9pZCBwb3NzaWJsZSB3cml0ZV9wcm9jIHJhY2Ugd2l0aCB4 ZW5zdG9yZWQgc3RhcnR1cCAqLworc3RhdGljIGludCB4ZW5zdG9yZWRfcmVhZHkgPSAwOwor CiAjaWZuZGVmIE1PRFVMRQogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdG90YWxoaWdoX3BhZ2Vz OworZXh0ZXJuIGF0b21pY190IHZtX2NvbW1pdHRlZF9zcGFjZTsKICNkZWZpbmUgaW5jX3Rv dGFsaGlnaF9wYWdlcygpICh0b3RhbGhpZ2hfcGFnZXMrKykKICNkZWZpbmUgZGVjX3RvdGFs aGlnaF9wYWdlcygpICh0b3RhbGhpZ2hfcGFnZXMtLSkKICNlbHNlCiAjZGVmaW5lIGluY190 b3RhbGhpZ2hfcGFnZXMoKSAoKHZvaWQpMCkKICNkZWZpbmUgZGVjX3RvdGFsaGlnaF9wYWdl cygpICgodm9pZCkwKQorI3VuZGVmIGF0b21pY19yZWFkCisjZGVmaW5lIGF0b21pY19yZWFk KHgpICgwKQogI2VuZGlmCiAKIC8qIExpc3Qgb2YgYmFsbG9vbmVkIHBhZ2VzLCB0aHJlYWRl ZCB0aHJvdWdoIHRoZSBtZW1fbWFwIGFycmF5LiAqLwpAQCAtMTE5LDYgKzEzMyw1OCBAQCBz dGF0aWMgc3RydWN0IHRpbWVyX2xpc3QgYmFsbG9vbl90aW1lcjsKIAlwcmludGsoS0VSTl9J TkZPICJ4ZW5fbWVtOiAiIGZtdCwgIyNhcmdzKQogI2RlZmluZSBXUFJJTlRLKGZtdCwgYXJn cy4uLikgXAogCXByaW50ayhLRVJOX1dBUk5JTkcgInhlbl9tZW06ICIgZm10LCAjI2FyZ3Mp CisKKyNpZm5kZWYgTU9EVUxFCitzdGF0aWMgaW5saW5lIGxvbmcgZ2V0X3ZtX2NvbW1pdHRl ZCh2b2lkKQoreworCXJldHVybiBhdG9taWNfcmVhZCgmdm1fY29tbWl0dGVkX3NwYWNlKTsK K30KKyNlbHNlCisvKiB2bV9jb21taXR0ZWRfc3BhY2UgaXMgbm90IGV4cG9ydGVkLCBzbyB1 c2UgaG9ycmlibGUgaGFjayB0byBnZXQgc2FtZSAqLworI2luY2x1ZGUgPGxpbnV4L3N5c2Nh bGxzLmg+CisjaW5jbHVkZSA8bGludXgvZmNudGwuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJp bmcuaD4KKyNpbmNsdWRlIDxsaW51eC9mc25vdGlmeS5oPgorI2luY2x1ZGUgPGxpbnV4L2Zp bGUuaD4KK3N0YXRpYyBsb25nIGdldF92bV9jb21taXR0ZWQodm9pZCkKK3sKKwlzc2l6ZV90 IGxlbjsKKwlpbnQgZmQ7CisJY2hhciBidWZbMTAwMF0sICpwLCAqcTsKKwlzdHJ1Y3QgZmls ZSAqZjsKKwlzdGF0aWMgb3BlbmZhaWxlZCA9IDA7CisKKwkvKiB0aGUgZm9sbG93aW5nIGlz IG1lc3N5IGJlY2F1c2Ugc3lzX29wZW4gaXNuJ3QgZXhwb3J0ZWQgKi8KKwlpZiAoIShmID0g ZmlscF9vcGVuKCIvcHJvYy9tZW1pbmZvIiwgT19SRE9OTFksIDApKSB8fAorCSAgICAoKGZk ID0gZ2V0X3VudXNlZF9mZCgpKSA8IDApKSB7CisJCS8qIGZpcnN0IG9wZW4gYXR0ZW1wdCBv ZnRlbiBmYWlscywgYmUgcmVzaWxpZW50ICovCisJCWlmICghb3Blbl9mYWlsZWQpIHsKKwkJ CVdQUklOVEsoIlVuYWJsZSB0byBvcGVuIC9wcm9jL21lbWluZm8sIHJldHJ5aW5nLi4uXG4i KTsKKwkJCW9wZW5fZmFpbGVkID0gMTsKKwkJfQorCQlyZXR1cm4gMDsKKwl9CisJZnNub3Rp Znlfb3BlbihmLT5mX2RlbnRyeSk7CisJZmRfaW5zdGFsbChmZCxmKTsKKwkvKiBlbmQgb2Yg bWVzc2luZXNzICovCisJaWYgKChsZW4gPSBzeXNfcmVhZChmZCwgYnVmLCA5OTkpKSA8IDAp IHsKKwkJV1BSSU5USygiVW5hYmxlIHRvIHJlYWQgZnJvbSAvcHJvYy9tZW1pbmZvXG4iKTsK KwkJcmV0dXJuIDA7CisJfQorCXN5c19jbG9zZShmZCk7CisJYnVmW2xlbl0gPSAnXDAnOwor CXAgPSBzdHJzdHIoYnVmLCJDb21taXR0ZWRfQVMiKTsKKwlpZiAoIXApIHsKKwkJV1BSSU5U SygiTm8gQ29tbWl0dGVkX0FTIGluIC9wcm9jL21lbWluZm9cbiIpOworCQlyZXR1cm4gMDsK Kwl9CisJd2hpbGUgKCpwIDwgJzAnIHx8ICpwID4gJzknKSBwKys7CisJcSA9IHA7CisJd2hp bGUgKCpxID49ICcwJyAmJiAqcSA8PSAnOScpIHErKzsKKwkqcSA9ICdcMCc7CisJcmV0dXJu IChtZW1wYXJzZShwLCAmcSkgPj4gKFBBR0VfU0hJRlQgLSAxMCkpOworfQorI2VuZGlmCiAK IC8qIGJhbGxvb25fYXBwZW5kOiBhZGQgdGhlIGdpdmVuIHBhZ2UgdG8gdGhlIGJhbGxvb24u ICovCiBzdGF0aWMgdm9pZCBiYWxsb29uX2FwcGVuZChzdHJ1Y3QgcGFnZSAqcGFnZSkKQEAg LTM4MSw2ICs0NDcsMTYgQEAgc3RhdGljIGludCBkZWNyZWFzZV9yZXNlcnZhdGlvbih1bnNp Z25lZAogCXJldHVybiBuZWVkX3NsZWVwOwogfQogCisvKiBSZXNldHMgdGhlIFhlbiBsaW1p dCBhbmQgc2V0cyBuZXcgdGFyZ2V0LiAqLwordm9pZCBiYWxsb29uX3NldF9uZXdfdGFyZ2V0 KHVuc2lnbmVkIGxvbmcgdGFyZ2V0KQoreworCWlmICghdGFyZ2V0KSByZXR1cm47IC8qIGNv bXBpbGVkIGFzIG1vZHVsZSwgc2VsZmJhbGxvb24gb24gKi8KKwkvKiBObyBuZWVkIGZvciBs b2NrLiBOb3QgcmVhZC1tb2RpZnktd3JpdGUgdXBkYXRlcy4gKi8KKwlicy5oYXJkX2xpbWl0 ICAgPSB+MFVMOworCWJzLnRhcmdldF9wYWdlcyA9IG1heCh0YXJnZXQsIG1pbmltdW1fdGFy Z2V0KCkpOworfQorCisKIC8qCiAgKiBXZSBhdm9pZCBtdWx0aXBsZSB3b3JrZXIgcHJvY2Vz c2VzIGNvbmZsaWN0aW5nIHZpYSB0aGUgYmFsbG9vbiBtdXRleC4KICAqIFdlIG1heSBvZiBj b3Vyc2UgcmFjZSB1cGRhdGVzIG9mIHRoZSB0YXJnZXQgY291bnRzICh3aGljaCBhcmUgcHJv dGVjdGVkCkBAIC0zOTEsOSArNDY3LDI2IEBAIHN0YXRpYyB2b2lkIGJhbGxvb25fcHJvY2Vz cyh2b2lkICp1bnVzZWQKIHsKIAlpbnQgbmVlZF9zbGVlcCA9IDA7CiAJbG9uZyBjcmVkaXQ7 CisJdW5zaWduZWQgbG9uZyB0YXJnZXRfcGFnZXM7CiAKIAltdXRleF9sb2NrKCZiYWxsb29u X211dGV4KTsKIAorCWlmICh4ZW5zdG9yZWRfcmVhZHkpIHsKKwkJKHZvaWQpeGVuYnVzX3By aW50ZihYQlRfTklMLCAibWVtb3J5IiwgImFjdHVhbCIsICIlbHUiLAorCQkJdG90YWxyYW1f cGFnZXMgPDwgKFBBR0VfU0hJRlQgLSAxMCkpOworCQkodm9pZCl4ZW5idXNfcHJpbnRmKFhC VF9OSUwsICJtZW1vcnkiLCAibWluaW11bSIsICIlbHUiLAorCQkJbWluaW11bV90YXJnZXQo KSA8PCAoUEFHRV9TSElGVCAtIDEwKSk7CisJfQorCisJaWYgKHNlbGZiYWxsb29uKSB7CisJ CXRhcmdldF9wYWdlcyA9IGdldF92bV9jb21taXR0ZWQoKTsKKwkJYmFsbG9vbl9zZXRfbmV3 X3RhcmdldCh0YXJnZXRfcGFnZXMpOworCQlpZiAoeGVuc3RvcmVkX3JlYWR5KQorCQkJKHZv aWQpeGVuYnVzX3ByaW50ZihYQlRfTklMLCAibWVtb3J5IiwgInNlbGZ0YXJnZXQiLAorCQkJ CSIlbHUiLCB0YXJnZXRfcGFnZXMgPDwgKFBBR0VfU0hJRlQgLSAxMCkpOworLy8JCUlQUklO VEsoInNldHRpbmcgbmV3IHNlbGYtYmFsbG9vbmluZyB0YXJnZXQ9JWxkIGtCXG4iLAorLy8J CQl0YXJnZXRfcGFnZXMgPDwgKFBBR0VfU0hJRlQgLSAxMCkpOworCX0KIAlkbyB7CiAJCWNy ZWRpdCA9IGN1cnJlbnRfdGFyZ2V0KCkgLSBicy5jdXJyZW50X3BhZ2VzOwogCQlpZiAoY3Jl ZGl0ID4gMCkKQEAgLTQwOCwxOSArNTAxLDQwIEBAIHN0YXRpYyB2b2lkIGJhbGxvb25fcHJv Y2Vzcyh2b2lkICp1bnVzZWQKIAl9IHdoaWxlICgoY3JlZGl0ICE9IDApICYmICFuZWVkX3Ns ZWVwKTsKIAogCS8qIFNjaGVkdWxlIG1vcmUgd29yayBpZiB0aGVyZSBpcyBzb21lIHN0aWxs IHRvIGJlIGRvbmUuICovCi0JaWYgKGN1cnJlbnRfdGFyZ2V0KCkgIT0gYnMuY3VycmVudF9w YWdlcykKKwlpZiAoKGN1cnJlbnRfdGFyZ2V0KCkgIT0gYnMuY3VycmVudF9wYWdlcykgfHwg c2VsZmJhbGxvb24pCiAJCW1vZF90aW1lcigmYmFsbG9vbl90aW1lciwgamlmZmllcyArIEha KTsKIAogCW11dGV4X3VubG9jaygmYmFsbG9vbl9tdXRleCk7CiB9CiAKIC8qIFJlc2V0cyB0 aGUgWGVuIGxpbWl0LCBzZXRzIG5ldyB0YXJnZXQsIGFuZCBraWNrcyBvZmYgcHJvY2Vzc2lu Zy4gKi8KLXZvaWQgYmFsbG9vbl9zZXRfbmV3X3RhcmdldCh1bnNpZ25lZCBsb25nIHRhcmdl dCkKK3ZvaWQgYmFsbG9vbl9zdGFydF9uZXdfdGFyZ2V0KHVuc2lnbmVkIGxvbmcgdGFyZ2V0 KQogewotCS8qIE5vIG5lZWQgZm9yIGxvY2suIE5vdCByZWFkLW1vZGlmeS13cml0ZSB1cGRh dGVzLiAqLwotCWJzLmhhcmRfbGltaXQgICA9IH4wVUw7Ci0JYnMudGFyZ2V0X3BhZ2VzID0g bWF4KHRhcmdldCwgbWluaW11bV90YXJnZXQoKSk7CisJYmFsbG9vbl9zZXRfbmV3X3Rhcmdl dCh0YXJnZXQpOwogCXNjaGVkdWxlX3dvcmsoJmJhbGxvb25fd29ya2VyKTsKK30KKworc3Rh dGljIHN0cnVjdCB4ZW5idXNfd2F0Y2ggc2VsZmJhbGxvb25fd2F0Y2ggPQoreworCS5ub2Rl ID0gIm1lbW9yeS9zZWxmYmFsbG9vbiIKK307CisKKy8qIFJlYWN0IHRvIGEgY2hhbmdlIGlu IHRoZSBzZWxmYmFsbG9vbiBrZXkgKi8KK3N0YXRpYyB2b2lkIHdhdGNoX3NlbGZiYWxsb29u KHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLAorCQkJIGNvbnN0IGNoYXIgKip2ZWMsIHVu c2lnbmVkIGludCBsZW4pCit7CisJdW5zaWduZWQgbG9uZyBlbmFibGUsIHZtX3BhZ2VzOwor CWludCBlcnI7CisKKwllcnIgPSB4ZW5idXNfc2NhbmYoWEJUX05JTCwgIm1lbW9yeSIsICJz ZWxmYmFsbG9vbiIsICIlbHUiLCAmZW5hYmxlKTsKKwlpZiAoZXJyICE9IDEpIHsKKwkJLyog VGhpcyBpcyBvayAoZm9yIGRvbWFpbjAgYXQgbGVhc3QpIC0gc28ganVzdCByZXR1cm4gKi8K KwkJcmV0dXJuOworCX0KKwlzZWxmYmFsbG9vbiA9IGVuYWJsZTsKKwlpZiAoIWVuYWJsZSkg cmV0dXJuOworCXZtX3BhZ2VzID0gZ2V0X3ZtX2NvbW1pdHRlZCgpOworCWJhbGxvb25fc3Rh cnRfbmV3X3RhcmdldCh2bV9wYWdlcyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgeGVuYnVzX3dh dGNoIHRhcmdldF93YXRjaCA9CkBAIC00NDQsMTggKzU1OCwzNCBAQCBzdGF0aWMgdm9pZCB3 YXRjaF90YXJnZXQoc3RydWN0IHhlbmJ1c193CiAJLyogVGhlIGdpdmVuIG1lbW9yeS90YXJn ZXQgdmFsdWUgaXMgaW4gS2lCLCBzbyBpdCBuZWVkcyBjb252ZXJ0aW5nIHRvCiAJICogcGFn ZXMuIFBBR0VfU0hJRlQgY29udmVydHMgYnl0ZXMgdG8gcGFnZXMsIGhlbmNlIFBBR0VfU0hJ RlQgLSAxMC4KIAkgKi8KLQliYWxsb29uX3NldF9uZXdfdGFyZ2V0KG5ld190YXJnZXQgPj4g KFBBR0VfU0hJRlQgLSAxMCkpOworCWJhbGxvb25fc3RhcnRfbmV3X3RhcmdldChuZXdfdGFy Z2V0ID4+IChQQUdFX1NISUZUIC0gMTApKTsKIH0KIAogc3RhdGljIGludCBiYWxsb29uX2lu aXRfd2F0Y2hlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5vdGlmaWVyLAogCQkJCXVuc2ln bmVkIGxvbmcgZXZlbnQsCiAJCQkJdm9pZCAqZGF0YSkKIHsKKwl1bnNpZ25lZCBsb25nIGVu YWJsZSwgdm1fcGFnZXM7CiAJaW50IGVycjsKIAorCWVyciA9IHhlbmJ1c19zY2FuZihYQlRf TklMLCAibWVtb3J5IiwgInNlbGZiYWxsb29uIiwgIiVsdSIsICZlbmFibGUpOworCWlmIChl cnIgPT0gMSkgeworCQlzZWxmYmFsbG9vbiA9IGVuYWJsZTsKKwkJaWYgKGVuYWJsZSkgewor CQkJdm1fcGFnZXMgPSBnZXRfdm1fY29tbWl0dGVkKCk7CisJCQliYWxsb29uX3N0YXJ0X25l d190YXJnZXQodm1fcGFnZXMpOworCQl9CisJfQorCWVsc2UKKwkJKHZvaWQpeGVuYnVzX3By aW50ZihYQlRfTklMLCAibWVtb3J5IiwgInNlbGZiYWxsb29uIiwgIiVsdSIsCisJCQlzZWxm YmFsbG9vbiA/IDFVTCA6IDBVTCk7CisKIAllcnIgPSByZWdpc3Rlcl94ZW5idXNfd2F0Y2go JnRhcmdldF93YXRjaCk7CisJZXJyIHw9IHJlZ2lzdGVyX3hlbmJ1c193YXRjaCgmc2VsZmJh bGxvb25fd2F0Y2gpOwogCWlmIChlcnIpCiAJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRv IHNldCBiYWxsb29uIHdhdGNoZXJcbiIpOworCWVsc2UgeGVuc3RvcmVkX3JlYWR5ID0gMTsK KwogCiAJcmV0dXJuIE5PVElGWV9ET05FOwogfQpAQCAtNDY2LDExICs1OTYsMTIgQEAgc3Rh dGljIGludCBiYWxsb29uX3dyaXRlKHN0cnVjdCBmaWxlICpmaQogewogCWNoYXIgbWVtc3Ry aW5nWzY0XSwgKmVuZGNoYXI7CiAJdW5zaWduZWQgbG9uZyBsb25nIHRhcmdldF9ieXRlczsK Kwl1bnNpZ25lZCBsb25nIHZtX3BhZ2VzOwogCiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURN SU4pKQogCQlyZXR1cm4gLUVQRVJNOwogCi0JaWYgKGNvdW50IDw9IDEpCisJaWYgKCFjb3Vu dCkKIAkJcmV0dXJuIC1FQkFETVNHOyAvKiBydW50ICovCiAJaWYgKGNvdW50ID4gc2l6ZW9m KG1lbXN0cmluZykpCiAJCXJldHVybiAtRUZCSUc7ICAgLyogdG9vIGxvbmcgKi8KQEAgLTQ4 MCw3ICs2MTEsMTggQEAgc3RhdGljIGludCBiYWxsb29uX3dyaXRlKHN0cnVjdCBmaWxlICpm aQogCW1lbXN0cmluZ1tzaXplb2YobWVtc3RyaW5nKS0xXSA9ICdcMCc7CiAKIAl0YXJnZXRf Ynl0ZXMgPSBtZW1wYXJzZShtZW1zdHJpbmcsICZlbmRjaGFyKTsKLQliYWxsb29uX3NldF9u ZXdfdGFyZ2V0KHRhcmdldF9ieXRlcyA+PiBQQUdFX1NISUZUKTsKKwlpZiAodGFyZ2V0X2J5 dGVzIDw9IDEpIHsKKwkJc2VsZmJhbGxvb24gPSB0YXJnZXRfYnl0ZXM7CisJCWlmICh4ZW5z dG9yZWRfcmVhZHkpIHsgLyogbGV0IHdhdGNoX3NlbGZiYWxsb29uIGhhbmRsZSAqLworCQkJ KHZvaWQpeGVuYnVzX3ByaW50ZihYQlRfTklMLCAibWVtb3J5IiwKKwkJCQkic2VsZmJhbGxv b24iLCAiJWx1Iiwgc2VsZmJhbGxvb24gPyAxVUwgOiAwVUwpOworCQl9IGVsc2UgaWYgKHNl bGZiYWxsb29uKSB7CisJCQl2bV9wYWdlcyA9IGdldF92bV9jb21taXR0ZWQoKTsKKwkJCWJh bGxvb25fc3RhcnRfbmV3X3RhcmdldCh2bV9wYWdlcyk7CisJCX0KKwl9CisJZWxzZQorCQli YWxsb29uX3N0YXJ0X25ld190YXJnZXQodGFyZ2V0X2J5dGVzID4+IFBBR0VfU0hJRlQpOwog CiAJcmV0dXJuIGNvdW50OwogfQpAQCAtNDkyLDEyICs2MzQsMTQgQEAgc3RhdGljIGludCBi YWxsb29uX3JlYWQoY2hhciAqcGFnZSwgY2hhcgogCiAJbGVuID0gc3ByaW50ZigKIAkJcGFn ZSwKKwkJIlNlbGYtYmFsbG9vbmluZzogICAgJXNcbiIKIAkJIkN1cnJlbnQgYWxsb2NhdGlv bjogJThsdSBrQlxuIgogCQkiUmVxdWVzdGVkIHRhcmdldDogICAlOGx1IGtCXG4iCiAJCSJM b3ctbWVtIGJhbGxvb246ICAgICU4bHUga0JcbiIKIAkJIkhpZ2gtbWVtIGJhbGxvb246ICAg JThsdSBrQlxuIgogCQkiRHJpdmVyIHBhZ2VzOiAgICAgICAlOGx1IGtCXG4iCiAJCSJYZW4g aGFyZCBsaW1pdDogICAgICIsCisJCShzZWxmYmFsbG9vbj8ib24iOiJvZmYiKSwKIAkJUEFH RVMyS0IoYnMuY3VycmVudF9wYWdlcyksIFBBR0VTMktCKGJzLnRhcmdldF9wYWdlcyksIAog CQlQQUdFUzJLQihicy5iYWxsb29uX2xvdyksIFBBR0VTMktCKGJzLmJhbGxvb25faGlnaCks CiAJCVBBR0VTMktCKGJzLmRyaXZlcl9wYWdlcykpOwpAQCAtNTY0LDYgKzcwOCw3IEBAIHN0 YXRpYyBpbnQgX19pbml0IGJhbGxvb25faW5pdCh2b2lkKQogI2VuZGlmCiAKIAl0YXJnZXRf d2F0Y2guY2FsbGJhY2sgPSB3YXRjaF90YXJnZXQ7CisJc2VsZmJhbGxvb25fd2F0Y2guY2Fs bGJhY2sgPSB3YXRjaF9zZWxmYmFsbG9vbjsKIAl4ZW5zdG9yZV9ub3RpZmllci5ub3RpZmll cl9jYWxsID0gYmFsbG9vbl9pbml0X3dhdGNoZXI7CiAKIAlyZWdpc3Rlcl94ZW5zdG9yZV9u b3RpZmllcigmeGVuc3RvcmVfbm90aWZpZXIpOwo= ---------267b2476267b2476 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 ---------267b2476267b2476--