From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dulloor Subject: [PATCH 10/11] [PVOPS] Use enlightenment to setup nodes Date: Sun, 4 Apr 2010 15:30:43 -0400 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016e6dab0529b3b2504836e3f47 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 --0016e6dab0529b3b2504836e3f47 Content-Type: text/plain; charset=ISO-8859-1 The patch uses the virtual(pv) NUMA enlightenment to setup the nodes (and NUMA layout), if the guest is compiled with the support. The method used is the same as that in faking nodes on a non-NUMA system. -dulloor Signed-off-by: Dulloor Rao --0016e6dab0529b3b2504836e3f47 Content-Type: text/x-patch; charset=US-ASCII; name="linux-02-pv-numa-enlightenment.patch" Content-Disposition: attachment; filename="linux-02-pv-numa-enlightenment.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g7m8t9nm0 ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9pbnRlcmZhY2UuaCBiL2FyY2gv eDg2L2luY2x1ZGUvYXNtL3hlbi9pbnRlcmZhY2UuaAppbmRleCA5NTM5OTk4Li5jNDdiOWZhIDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaW50ZXJmYWNlLmgKKysrIGIvYXJj aC94ODYvaW5jbHVkZS9hc20veGVuL2ludGVyZmFjZS5oCkBAIC0zMiw2ICszMiw3IEBACiAJfSB3 aGlsZSAoMCkKICNlbGlmIGRlZmluZWQoX194ODZfNjRfXykKICNkZWZpbmUgc2V0X3hlbl9ndWVz dF9oYW5kbGUoaG5kLCB2YWwpCWRvIHsgKGhuZCkucCA9IHZhbDsgfSB3aGlsZSAoMCkKKyNkZWZp bmUgZ2V0X3hlbl9ndWVzdF9oYW5kbGUodmFsLCBobmQpICBkbyB7IHZhbCA9IChobmQpLnA7IH0g d2hpbGUgKDApCiAjZW5kaWYKICNlbHNlCiAjaWYgZGVmaW5lZChfX2kzODZfXykKQEAgLTQzLDYg KzQ0LDcgQEAKIAl9IHdoaWxlICgwKQogI2VsaWYgZGVmaW5lZChfX3g4Nl82NF9fKQogI2RlZmlu ZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZShobmQsIHZhbCkJZG8geyAoaG5kKSA9IHZhbDsgfSB3aGls ZSAoMCkKKyNkZWZpbmUgZ2V0X3hlbl9ndWVzdF9oYW5kbGUodmFsLCBobmQpICBkbyB7IHZhbCA9 IChobmQpLnA7IH0gd2hpbGUgKDApCiAjZW5kaWYKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9rZXJuZWwvc2V0dXAuYyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cC5jCmluZGV4IGRmMjBm MTUuLjNlM2Y1NDYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cC5jCisrKyBiL2Fy Y2gveDg2L2tlcm5lbC9zZXR1cC5jCkBAIC05NDIsNyArOTQyLDggQEAgdm9pZCBfX2luaXQgc2V0 dXBfYXJjaChjaGFyICoqY21kbGluZV9wKQogCS8qCiAJICogUGFyc2UgU1JBVCB0byBkaXNjb3Zl ciBub2Rlcy4KIAkgKi8KLQlhY3BpX251bWFfaW5pdCgpOworICAgIGlmIChhY3BpX251bWEgPiAw KQorCSAgICBhY3BpX251bWFfaW5pdCgpOwogI2VuZGlmCiAKIAlpbml0bWVtX2luaXQoMCwgbWF4 X3Bmbik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9udW1hXzY0LmMgYi9hcmNoL3g4Ni9tbS9u dW1hXzY0LmMKaW5kZXggNDU5OTEzYi4uM2E4NTZkYyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0v bnVtYV82NC5jCisrKyBiL2FyY2gveDg2L21tL251bWFfNjQuYwpAQCAtMTEsNyArMTEsMTEgQEAK ICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2lu Y2x1ZGUgPGxpbnV4L25vZGVtYXNrLmg+CisjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgogI2lu Y2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVk ZSA8eGVuL2ludGVyZmFjZS94ZW4uaD4KKyNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL21lbW9yeS5o PgogCiAjaW5jbHVkZSA8YXNtL2U4MjAuaD4KICNpbmNsdWRlIDxhc20vcHJvdG8uaD4KQEAgLTE5 LDYgKzIzLDggQEAKICNpbmNsdWRlIDxhc20vbnVtYS5oPgogI2luY2x1ZGUgPGFzbS9hY3BpLmg+ CiAjaW5jbHVkZSA8YXNtL2s4Lmg+CisjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+Cisj aW5jbHVkZSA8YXNtL3hlbi9oeXBlcmNhbGwuaD4KIAogc3RydWN0IHBnbGlzdF9kYXRhICpub2Rl X2RhdGFbTUFYX05VTU5PREVTXSBfX3JlYWRfbW9zdGx5OwogRVhQT1JUX1NZTUJPTChub2RlX2Rh dGEpOwpAQCAtNDI4LDcgKzQzNCw2IEBAIHN0YXRpYyBpbnQgX19pbml0IG51bWFfZW11bGF0aW9u KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGxhc3RfcGZuCiAJICovCiAJ aWYgKCFzdHJjaHIoY21kbGluZSwgJyonKSAmJiAhc3RyY2hyKGNtZGxpbmUsICcsJykpIHsKIAkJ bG9uZyBuID0gc2ltcGxlX3N0cnRvbChjbWRsaW5lLCBOVUxMLCAwKTsKLQogCQludW1fbm9kZXMg PSBzcGxpdF9ub2Rlc19lcXVhbGx5KG5vZGVzLCAmYWRkciwgbWF4X2FkZHIsIDAsIG4pOwogCQlp ZiAobnVtX25vZGVzIDwgMCkKIAkJCXJldHVybiBudW1fbm9kZXM7CkBAIC01MjIsNiArNTI3LDI0 NiBAQCBvdXQ6CiAJbnVtYV9pbml0X2FycmF5KCk7CiAJcmV0dXJuIDA7CiB9CisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisjaWZkZWYgQ09ORklHX1hFTl9OVU1BX0dVRVNUCisvKiBYRU4gUFYgR1VFU1Qg TlVNQSAqLworc3RydWN0IHhlbl9kb21haW5fbnVtYV9sYXlvdXQgSFlQRVJWSVNPUl9wdl9udW1h X2xheW91dDsKKworc3RhdGljIGlubGluZSB2b2lkIF9faW5pdAorYml0bWFwX2J5dGVfdG9fbG9u Zyh1bnNpZ25lZCBsb25nICpscCwgY29uc3QgdWludDhfdCAqYnAsIGludCBuYml0cykKK3sKKwkv KiBXZSBtYXkgbmVlZCB0byBwYWQgdGhlIGZpbmFsIGxvbmd3b3JkIHdpdGggemVyb2VzLiAqLwor CWlmIChuYml0cyAmIChCSVRTX1BFUl9MT05HLTEpKQorCQlscFtCSVRTX1RPX0xPTkdTKG5iaXRz KS0xXSA9IDA7CisJbWVtY3B5KGxwLCBicCwgKG5iaXRzKzcpLzgpOworfQorCitzdGF0aWMgdm9p ZCBfX2luaXQKK3hlbmN0bF9jcHVtYXNrX3RvX2NwdW1hc2soY3B1bWFza190ICpjcHVtYXNrLCBz dHJ1Y3QgeGVuY3RsX2NwdW1hc2sgKnhjcHVtYXNrKQoreworICAgIHVuc2lnbmVkIGludCBucl9j cHVzOworICAgIHVpbnQ4X3QgKmJ5dGVtYXA7CisKKyAgICBieXRlbWFwID0geGNwdW1hc2stPmJp dHM7CisKKyAgICBucl9jcHVzID0KKyAgICAgICAgbWluX3QodW5zaWduZWQgaW50LCBYRU5DVExf TlJfQ1BVUywgTlJfQ1BVUyk7CisKKyAgICBjcHVtYXNrX2NsZWFyKGNwdW1hc2spOworICAgIGJp dG1hcF9ieXRlX3RvX2xvbmcoY3B1c19hZGRyKCpjcHVtYXNrKSwgYnl0ZW1hcCwgbnJfY3B1cyk7 Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdAoreGVuX2R1bXBfbnVtYV9sYXlvdXQoc3RydWN0IHhl bl9kb21haW5fbnVtYV9sYXlvdXQgKmxheW91dCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaSwgajsK KyAgICBjaGFyIHZjcHVtYXNrc3RyWzEyOF07CisgICAgcHJpbnRrKCJOVU1BLUxBWU9VVCA6IHZj cHVzKCV1KSwgdm5vZGVzKCV1KSwgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlv dXQtPm1heF92Y3B1cywgbGF5b3V0LT5tYXhfdm5vZGVzKTsKKyAgICBzd2l0Y2ggKGxheW91dC0+ dHlwZSkKKyAgICB7CisgICAgICAgIGNhc2UgWEVOX0RPTV9OVU1BX0NPTkZJTkVEOgorICAgICAg ICAgICAgcHJpbnRrKCJ0eXBlKENPTkZJTkVEKVxuIik7CisgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgY2FzZSBYRU5fRE9NX05VTUFfU1BMSVQ6CisgICAgICAgICAgICBwcmludGsoInR5cGUo U1BMSVQpXG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhFTl9ET01fTlVN QV9TVFJJUEVEOgorICAgICAgICAgICAgcHJpbnRrKCJ0eXBlKFNUUklQRUQpXG4iKTsKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcHJpbnRrKCJ0eXBl KFVOREVGSU5FRClcbiIpOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBsYXlvdXQtPm1h eF92bm9kZXM7IGkrKykKKyAgICB7CisgICAgICAgIGNwdW1hc2tfdCB2Y3B1X21hc2s7CisgICAg ICAgIHN0cnVjdCB4ZW5jdGxfY3B1bWFzayAqeHZjcHVtYXNrOworICAgICAgICBzdHJ1Y3QgeGVu X3Zub2RlX2RhdGEgKnZub2RlX2RhdGEgPSAmbGF5b3V0LT52bm9kZV9kYXRhW2ldOworICAgICAg ICB4dmNwdW1hc2sgPSAmdm5vZGVfZGF0YS0+dmNwdV9tYXNrOworICAgICAgICB4ZW5jdGxfY3B1 bWFza190b19jcHVtYXNrKCZ2Y3B1X21hc2ssIHh2Y3B1bWFzayk7CisgICAgICAgIGNwdW1hc2tf c2NucHJpbnRmKHZjcHVtYXNrc3RyLCBzaXplb2YodmNwdW1hc2tzdHIpLCAmdmNwdV9tYXNrKTsK KyAgICAgICAgcHJpbnRrKCJ2bm9kZVsldV06bW5vZGUoJXUpLCBub2RlX25yX3BhZ2VzKCVseCks IHZjcHVfbWFzayglcylcbiIsIAorICAgICAgICAgICAgICAgIHZub2RlX2RhdGEtPnZub2RlX2lk LCB2bm9kZV9kYXRhLT5tbm9kZV9pZCwKKyAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZyl2 bm9kZV9kYXRhLT5ucl9wYWdlcywgdmNwdW1hc2tzdHIpOworICAgIH0KKworICAgIHByaW50aygi dm5vZGUgZGlzdGFuY2VzIDpcbiIpOworICAgIGZvciAoaSA9IDA7IGkgPCBsYXlvdXQtPm1heF92 bm9kZXM7IGkrKykKKyAgICAgICAgcHJpbnRrKCJcdHZub2RlWyV1XSIsIGkpOworICAgIGZvciAo aSA9IDA7IGkgPCBsYXlvdXQtPm1heF92bm9kZXM7IGkrKykKKyAgICB7CisgICAgICAgIHByaW50 aygiXG52bm9kZVsldV0iLCBpKTsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IGxheW91dC0+bWF4 X3Zub2RlczsgaisrKQorICAgICAgICAgICAgcHJpbnRrKCJcdCV1IiwgbGF5b3V0LT52bm9kZV9k aXN0YW5jZVtpKmxheW91dC0+bWF4X3Zub2RlcyArIGpdKTsKKyAgICAgICAgcHJpbnRrKCJcbiIp OworICAgIH0KKyAgICByZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCB4ZW5faW5pdF9z bGl0X3RhYmxlKHN0cnVjdCB4ZW5fZG9tYWluX251bWFfbGF5b3V0ICpsYXlvdXQpCit7CisgICAg LyogQ29uc3RydWN0IGEgc2xpdCB0YWJsZSAodXNpbmcgbGF5b3V0LT52bm9kZV9kaXN0YW5jZSku CisgICAgICogQ29weSBpdCB0byBhY3BpX3NsaXQuICovCisgICAgcmV0dXJuOworfQorCisvKiBE aXN0cmlidXRlIHRoZSB2Y3B1cyBvdmVyIHRoZSB2bm9kZXMgYWNjb3JkaW5nIHRvIHRoZWlyIGFm ZmluaXR5ICovCitzdGF0aWMgdm9pZCBfX2luaXQgeGVuX2luaXRfbnVtYV9hcnJheShzdHJ1Y3Qg eGVuX2RvbWFpbl9udW1hX2xheW91dCAqbGF5b3V0KQoreworCWludCB2Y3B1LCB2bm9kZTsKKyAg IAorCXByaW50ayhLRVJOX0lORk8gInhlbl9udW1hX2luaXRfYXJyYXkgLSBjcHVfdG9fbm9kZSBp bml0aWFsaXphdGlvblxuIik7CisKKworICAgIGZvciAodm5vZGUgPSAwOyB2bm9kZSA8IGxheW91 dC0+bWF4X3Zub2Rlczsgdm5vZGUrKykKKyAgICB7CisgICAgICAgIHN0cnVjdCB4ZW5fdm5vZGVf ZGF0YSAqdm5vZGVfZGF0YSA9ICZsYXlvdXQtPnZub2RlX2RhdGFbdm5vZGVdOworICAgICAgICBz dHJ1Y3QgeGVuY3RsX2NwdW1hc2sgKnh2Y3B1X21hc2sgPSAmdm5vZGVfZGF0YS0+dmNwdV9tYXNr OworICAgICAgICBjcHVtYXNrX3QgdmNwdV9tYXNrOworCisgICAgICAgIHhlbmN0bF9jcHVtYXNr X3RvX2NwdW1hc2soJnZjcHVfbWFzaywgeHZjcHVfbWFzayk7CisgICAKKyAgICAgICAgZm9yICh2 Y3B1ID0gMDsgdmNwdSA8IGxheW91dC0+bWF4X3ZjcHVzOyB2Y3B1KyspCisgICAgICAgIHsKKyAg ICAgICAgICAgIGlmIChjcHVfaXNzZXQodmNwdSwgdmNwdV9tYXNrKSkKKyAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICBpZiAoZWFybHlfY3B1X3RvX25vZGUodmNwdSkgIT0gTlVNQV9OT19O T0RFKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5f SU5GTyAiRUFSTFkgdmNwdVslZF0gb24gdm5vZGVbJWRdXG4iLCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2Y3B1LCBlYXJseV9jcHVfdG9fbm9kZSh2Y3B1KSk7IAor ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAidmNwdVslZF0gb24gdm5vZGVbJWRdXG4iLCB2Y3B1 LCB2bm9kZSk7CisJCSAgICAgICAgbnVtYV9zZXRfbm9kZSh2Y3B1LCB2bm9kZSk7CisgICAgICAg ICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuOworfQorCitzdGF0aWMgaW50IF9f aW5pdCB4ZW5fbnVtYV9lbXVsYXRpb24oc3RydWN0IHhlbl9kb21haW5fbnVtYV9sYXlvdXQgKmxh eW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X3Bm biwgdW5zaWduZWQgbG9uZyBsYXN0X3BmbikKK3sKKwlpbnQgbnVtX3Zub2RlcywgaTsKKyAgICB1 NjQgbm9kZV9zdGFydF9hZGRyLCBub2RlX2VuZF9hZGRyLCBtYXhfYWRkcjsKKworICAgIHByaW50 ayhLRVJOX0lORk8gInhlbl9udW1hX2VtdWxhdGlvbiA6IG1heF92bm9kZXMoJWQpLCBtYXhfdmNw dXMoJWQpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQt Pm1heF92bm9kZXMsIGxheW91dC0+bWF4X3ZjcHVzKTsKKworICAgIGlmIChsYXlvdXQtPnR5cGUg IT0gWEVOX0RPTV9OVU1BX1NQTElUKQorICAgIHsKKyAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAi eGVuX251bWFfZW11bGF0aW9uIDogSW52YWxpZCBsYXlvdXQgdHlwZSIpOworICAgICAgICByZXR1 cm4gLTE7CisgICAgfQorCisJbWVtc2V0KCZub2RlcywgMCwgc2l6ZW9mKG5vZGVzKSk7CisKKyAg ICBudW1fdm5vZGVzID0gbGF5b3V0LT5tYXhfdm5vZGVzOworICAgIEJVR19PTihudW1fdm5vZGVz ID4gTUFYX05VTU5PREVTKTsKKworICAgIG1heF9hZGRyID0gbGFzdF9wZm4gPDwgUEFHRV9TSElG VDsKKworICAgIG5vZGVfc3RhcnRfYWRkciA9IHN0YXJ0X3BmbiA8PCBQQUdFX1NISUZUOworICAg IGZvciAoaSA9IDA7IGkgPCBudW1fdm5vZGVzOyBpKyspCisgICAgeworICAgICAgICBzdHJ1Y3Qg eGVuX3Zub2RlX2RhdGEgKnZub2RlX2RhdGEgPSAmbGF5b3V0LT52bm9kZV9kYXRhW2ldOworICAg ICAgICB1NjQgbm9kZV9zaXplID0gdm5vZGVfZGF0YS0+bnJfcGFnZXMgPDwgUEFHRV9TSElGVDsK KworCQlub2RlX3NpemUgJj0gRkFLRV9OT0RFX01JTl9IQVNIX01BU0s7IC8qIDY0TUIgYWxpZ25l ZCAqLworCisJCWlmIChpID09IChudW1fdm5vZGVzLTEpKQorCQkJbm9kZV9lbmRfYWRkciA9IG1h eF9hZGRyOworCQllbHNlCisgICAgICAgICAgICBub2RlX2VuZF9hZGRyID0gbm9kZV9zdGFydF9h ZGRyICsgbm9kZV9zaXplOworICAgICAgICAvKiBub2RlX3N0YXJ0X2FkZHIgdXBkYXRlZCBpbnNp ZGUgdGhlIGZ1bmN0aW9uICovCisgICAgICAgIGlmIChzZXR1cF9ub2RlX3JhbmdlKGksIG5vZGVz LCAmbm9kZV9zdGFydF9hZGRyLCAKKyAgICAgICAgICAgICAgICAgICAgKG5vZGVfZW5kX2FkZHIt bm9kZV9zdGFydF9hZGRyKSwgbWF4X2FkZHIrMSkpCisgICAgICAgICAgICBnb3RvIGZhaWxlZDsK KyAgICB9CisKKwlwcmludGsoS0VSTl9JTkZPICJYRU4gZG9tYWluIG51bWEgZW11bGF0aW9uIC0g c2V0dXAgbm9kZXNcbiIpOworCisgICAgbWVtbm9kZV9zaGlmdCA9IGNvbXB1dGVfaGFzaF9zaGlm dChub2RlcywgbnVtX3Zub2RlcywgTlVMTCk7CisgICAgaWYgKG1lbW5vZGVfc2hpZnQgPCAwKSB7 CisJICAgIHByaW50ayhLRVJOX0VSUiAiTm8gTlVNQSBoYXNoIGZ1bmN0aW9uIGZvdW5kLlxuIik7 CisgICAgICAgIGdvdG8gZmFpbGVkOworICAgIH0KKyAgICAvKiBYWFg6IFNob3VsZG4ndCBiZSBu ZWVkZWQgYmVjYXVzZSB3ZSBkaXNhYmxlZCBhY3BpX251bWEgdmVyeSBlYXJseSAhICovCisJLyoK KwkgKiBXZSBuZWVkIHRvIHZhY2F0ZSBhbGwgYWN0aXZlIHJhbmdlcyB0aGF0IG1heSBoYXZlIGJl ZW4gcmVnaXN0ZXJlZCBieQorCSAqIFNSQVQgYW5kIHNldCBhY3BpX251bWEgdG8gLTEgc28gdGhh dCBzcmF0X2Rpc2FibGVkKCkgYWx3YXlzIHJldHVybnMKKwkgKiB0cnVlLiAgTlVNQSBlbXVsYXRp b24gaGFzIHN1Y2NlZWRlZCBzbyB3ZSB3aWxsIG5vdCBzY2FuIEFDUEkgbm9kZXMuCisJICovCisJ cmVtb3ZlX2FsbF9hY3RpdmVfcmFuZ2VzKCk7CisKKyAgICBCVUdfT04oYWNwaV9udW1hID49IDAp OworCWZvcl9lYWNoX25vZGVfbWFzayhpLCBub2RlX3Bvc3NpYmxlX21hcCkgeworCQllODIwX3Jl Z2lzdGVyX2FjdGl2ZV9yZWdpb25zKGksIG5vZGVzW2ldLnN0YXJ0ID4+IFBBR0VfU0hJRlQsCisJ CQkJCQlub2Rlc1tpXS5lbmQgPj4gUEFHRV9TSElGVCk7CisJCXNldHVwX25vZGVfYm9vdG1lbShp LCBub2Rlc1tpXS5zdGFydCwgbm9kZXNbaV0uZW5kKTsKKwl9CisgICAgeGVuX2luaXRfc2xpdF90 YWJsZShsYXlvdXQpOworCXhlbl9pbml0X251bWFfYXJyYXkobGF5b3V0KTsKKwlyZXR1cm4gMDsK K2ZhaWxlZDoKKyAgICByZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0Cit4ZW5fZ2V0 X2RvbWFpbl9udW1hX2xheW91dChzdHJ1Y3QgeGVuX2RvbWFpbl9udW1hX2xheW91dCAqcHZfbGF5 b3V0KQoreworICAgIGludCByYzsKKyAgICBzdHJ1Y3QgeGVubWVtX251bWFfb3AgbWVtb3A7Cisg ICAgbWVtb3AuY21kID0gWEVOTUVNX2dldF9kb21haW5fbnVtYV9sYXlvdXQ7CisgICAgbWVtb3Au dS5kaW5mby5kb21pZCA9IERPTUlEX1NFTEY7CisgICAgbWVtb3AudS5kaW5mby52ZXJzaW9uID0g WEVOX0RPTV9OVU1BX0lOVEVSRkFDRV9WRVJTSU9OOworICAgIG1lbW9wLnUuZGluZm8uYnVmc2l6 ZSA9IHNpemVvZigqcHZfbGF5b3V0KTsKKyAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShtZW1vcC51 LmRpbmZvLmJ1ZiwgcHZfbGF5b3V0KTsKKworICAgIGlmICgocmMgPSBIWVBFUlZJU09SX21lbW9y eV9vcChYRU5NRU1fbnVtYV9vcCwgJm1lbW9wKSkpCisgICAgeworICAgICAgICBwcmludGsoS0VS Tl9JTkZPICJYRU4gTlVNQSBHVUVTVDp4ZW5fZ2V0X2RvbWFpbl9udW1hX2xheW91dCBmYWlsZWRc biIpOworICAgICAgICB4ZW5fc3RhcnRfaW5mby0+ZmxhZ3MgJj0gflNJRl9OVU1BX0RPTUFJTjsK KyAgICAgICAgZ290byBkb25lOworICAgIH0KKworICAgIGlmIChwdl9sYXlvdXQtPnZlcnNpb24g IT0gWEVOX0RPTV9OVU1BX0lOVEVSRkFDRV9WRVJTSU9OKQorICAgIHsKKyAgICAgICAgcHJpbnRr KEtFUk5fSU5GTyAiWEVOIE5VTUEgR1VFU1Q6IHZlcnNpb24gbWlzbWF0Y2ggKGRpc2FibGluZylc biIpOworICAgICAgICB4ZW5fc3RhcnRfaW5mby0+ZmxhZ3MgJj0gflNJRl9OVU1BX0RPTUFJTjsK KyAgICAgICAgcmMgPSAtMTsKKyAgICB9CisgICAgeGVuX2R1bXBfbnVtYV9sYXlvdXQocHZfbGF5 b3V0KTsKK2RvbmU6CisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IF9faW5pdAoreGVu X3B2X251bWEodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgbGFzdF9wZm4p Cit7CisgICAgaW50IHJjID0gMDsKKyAgICBpZiAoIXhlbl9wdl9kb21haW4oKSB8fCAhKHhlbl9z dGFydF9pbmZvLT5mbGFncyAmIFNJRl9OVU1BX0RPTUFJTikpCisgICAgeworICAgICAgICByYyA9 IC0xOworCSAgICBwcmludGsoS0VSTl9JTkZPICJ4ZW4gbnVtYSBlbXVsYXRpb24gZGlzYWJsZWRc biIpOworICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorICAgIGlmICgocmMgPSB4ZW5fZ2V0X2Rv bWFpbl9udW1hX2xheW91dCgmSFlQRVJWSVNPUl9wdl9udW1hX2xheW91dCkpKQorICAgICAgICBn b3RvIGRvbmU7CisgICAgcmMgPSB4ZW5fbnVtYV9lbXVsYXRpb24oJkhZUEVSVklTT1JfcHZfbnVt YV9sYXlvdXQsIHN0YXJ0X3BmbiwgbGFzdF9wZm4pOworZG9uZToKKyAgICByZXR1cm4gcmM7Cit9 CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgX19pbml0Cit4ZW5fcHZfbnVtYSh1bnNpZ25lZCBs b25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBsYXN0X3BmbikKK3sKKyAgICByZXR1cm4gLTE7 Cit9CisjZW5kaWYgLyogQ09ORklHX1hFTl9OVU1BX0dVRVNUICovCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LwogI2VuZGlmIC8qIENPTkZJR19OVU1BX0VNVSAqLwogCiB2b2lkIF9faW5pdCBpbml0bWVtX2lu aXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgbGFzdF9wZm4pCkBAIC01 MzIsNiArNzc3LDkgQEAgdm9pZCBfX2luaXQgaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3Rh cnRfcGZuLCB1bnNpZ25lZCBsb25nIGxhc3RfcGZuKQogCW5vZGVzX2NsZWFyKG5vZGVfb25saW5l X21hcCk7CiAKICNpZmRlZiBDT05GSUdfTlVNQV9FTVUKKyAgICBpZiAoIXhlbl9wdl9udW1hKHN0 YXJ0X3BmbiwgbGFzdF9wZm4pKQorICAgICAgICByZXR1cm47CisKIAlpZiAoY21kbGluZSAmJiAh bnVtYV9lbXVsYXRpb24oc3RhcnRfcGZuLCBsYXN0X3BmbikpCiAJCXJldHVybjsKIAlub2Rlc19j bGVhcihub2RlX3Bvc3NpYmxlX21hcCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vS2NvbmZp ZyBiL2FyY2gveDg2L3hlbi9LY29uZmlnCmluZGV4IDc2NzVmOWIuLjdjZjZhNGYgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L3hlbi9LY29uZmlnCisrKyBiL2FyY2gveDg2L3hlbi9LY29uZmlnCkBAIC03 MywzICs3MywxMiBAQCBjb25maWcgWEVOX1BDSV9QQVNTVEhST1VHSAogICAgICAgIGhlbHAKICAg ICAgICAgIEVuYWJsZSBzdXBwb3J0IGZvciBwYXNzaW5nIFBDSSBkZXZpY2VzIHRocm91Z2ggdG8K IAkgdW5wcml2aWxlZ2VkIGRvbWFpbnMuIChDT01QTEVURUxZIFVOVEVTVEVEKQorCitjb25maWcg WEVOX05VTUFfR1VFU1QKKyAgICBib29sICJFbmFibGUgc3VwcG9ydCBOVU1BIGF3YXJlIFhlbiBk b21haW5zIgorICAgIGRlcGVuZHMgb24gWEVOICYmIFg4Nl82NCAmJiBOVU1BICYmIE5VTUFfRU1V CisgICAgaGVscAorICAgICAgICBFbmFibGUgc3VwcG9ydCBmb3IgTlVNQSBhd2FyZSBYZW4gZG9t YWlucy4gV2l0aCB0aGlzCisgICAgICAgIG9wdGlvbiwgaWYgdGhlIG1lbW9yeSBmb3IgdGhlIGRv bWFpbiBpcyBhbGxvY2F0ZWQgCisgICAgICAgIGZyb20gZGlmZmVyZW50IG1lbW9yeSBub2Rlcywg dGhlIGRvbWFpbiBpcyBtYWRlIGF3YXJlCisgICAgICAgIG9mIHRoaXMgdGhyb3VnaCBhIFZpcnR1 YWwgTlVNQSBlbmxpZ2h0ZW5tZW50LgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL3NldHVwLmMg Yi9hcmNoL3g4Ni94ZW4vc2V0dXAuYwppbmRleCBkZjNlODRjLi4yZWU5ZjBiIDEwMDY0NAotLS0g YS9hcmNoL3g4Ni94ZW4vc2V0dXAuYworKysgYi9hcmNoL3g4Ni94ZW4vc2V0dXAuYwpAQCAtMjg1 LDYgKzI4NSw4IEBAIHZvaWQgX19pbml0IHhlbl9hcmNoX3NldHVwKHZvaWQpCiAJCXByaW50ayhL RVJOX0lORk8gIkFDUEkgaW4gdW5wcml2aWxlZ2VkIGRvbWFpbiBkaXNhYmxlZFxuIik7CiAJCWRp c2FibGVfYWNwaSgpOwogCX0KKyAgICBhY3BpX251bWEgPSAtMTsKKyAgICBudW1hX29mZiA9IDE7 CiAjZW5kaWYKIAogCS8qIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL21lbW9y eS5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL21lbW9yeS5oCmluZGV4IDMyYWIwMDUuLjdmNWI4 NWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9tZW1vcnkuaAorKysgYi9pbmNs dWRlL3hlbi9pbnRlcmZhY2UvbWVtb3J5LmgKQEAgLTI0MCw2ICsyNDAsMTAyIEBAIERFRklORV9H VUVTVF9IQU5ETEVfU1RSVUNUKHhlbl9tZW1vcnlfbWFwKTsKICAqLwogI2RlZmluZSBYRU5NRU1f bWFjaGluZV9tZW1vcnlfbWFwICAgMTAKIAorLyogeGVuIGd1ZXN0IG51bWEgb3BlcmF0aW9ucyAq LworI2RlZmluZSBYRU5NRU1fbnVtYV9vcCAgICAgICAgICAgMTUKKworI2RlZmluZSBYRU5fRE9N X05VTUFfSU5URVJGQUNFX1ZFUlNJT04gIDB4MDAwMDAwMDEKKyNkZWZpbmUgWEVOQ1RMX05SX0NQ VVMgNjQKKyNkZWZpbmUgWEVOQ1RMX0JJVFNfUEVSX0JZVEUgOAorI2RlZmluZSBYRU5DVExfQklU U19UT19CWVRFUyhiaXRzKSBcCisgICAgKCgoYml0cykrWEVOQ1RMX0JJVFNfUEVSX0JZVEUtMSkv WEVOQ1RMX0JJVFNfUEVSX0JZVEUpCisKKyNkZWZpbmUgWEVOQ1RMX0RFQ0xBUkVfQklUTUFQKG5h bWUsYml0cykgXAorICAgIHVpbnQ4X3QgbmFtZVtYRU5DVExfQklUU19UT19CWVRFUyhiaXRzKV0K K3N0cnVjdCB4ZW5jdGxfY3B1bWFza3sgWEVOQ1RMX0RFQ0xBUkVfQklUTUFQKGJpdHMsIFhFTkNU TF9OUl9DUFVTKTsgfTsKKworLyogTm90IHVzZWQgaW4gZ3Vlc3QgKi8KKyNkZWZpbmUgWEVOTUVN X21hY2hpbmVfbnVtYV9sYXlvdXQgMHgwMQorc3RydWN0IHhlbm1lbV9ub2RlX2RhdGEgeworICAg IHVpbnQzMl90IG5vZGVfaWQ7CisgICAgdWludDY0X3Qgbm9kZV9tZW1zaXplOworICAgIHVpbnQ2 NF90IG5vZGVfbWVtZnJlZTsKKyAgICBzdHJ1Y3QgeGVuY3RsX2NwdW1hc2sgY3B1X21hc2s7IC8q IG5vZGVfdG9fY3B1bWFzayAqLworfTsKKworLyogTlVNQSBsYXlvdXQgZm9yIHRoZSBtYWNoaW5l LgorICogU3RydWN0dXJlIGhhcyB0byBmaXQgd2l0aGluIGEgcGFnZS4gKi8KK3N0cnVjdCB4ZW5t ZW1fbWFjaGluZV9udW1hX2xheW91dCB7CisgICAgdWludDMyX3QgbWF4X25vZGVzOworICAgIC8q IE9ubHkgKG1heF9ub2RlcyptYXhfbm9kZXMpIGVudHJpZXMgYXJlIGZpbGxlZCAqLworICAgIEdV RVNUX0hBTkRMRSh1aW50MzJfdCkgbm9kZV9kaXN0YW5jZTsKKyAgICAvKiBtYXhfdm5vZGVzIGVu dHJpZXMgb2YgeGVubWVtX25vZGVfZGF0YSB0eXBlICovCisgICAgR1VFU1RfSEFORExFKHZvaWQp IG5vZGVfZGF0YTsKK307CitERUZJTkVfR1VFU1RfSEFORExFX1NUUlVDVCh4ZW5tZW1fbWFjaGlu ZV9udW1hX2xheW91dCk7CisKKworI2RlZmluZSBYRU5NRU1fbWFjaGluZV9ub2RlbWFwICAweDAy CitzdHJ1Y3QgeGVubWVtX21hY2hpbmVfbm9kZW1hcCB7CisgICAgLyogT24gY2FsbCB0aGUgc2l6 ZSBvZiB0aGUgYXZhaWxhYmxlIGJ1ZmZlciAqLworICAgIHVpbnQzMl90IGJ1ZnNpemU7CisKKyAg ICAvKiBtZW1ub2RlIG1hcCBwYXJhbWV0ZXJzICovCisgICAgaW50MzJfdCBzaGlmdDsKKyAgICB1 aW50MzJfdCBtYXBzaXplOworICAgIEdVRVNUX0hBTkRMRSh2b2lkKSBtYXA7Cit9OworREVGSU5F X0dVRVNUX0hBTkRMRV9TVFJVQ1QoeGVubWVtX21hY2hpbmVfbm9kZW1hcCk7CisKKy8qIE5VTUEg bGF5b3V0IGZvciB0aGUgZG9tYWluIGF0IHRoZSB0aW1lIG9mIHN0YXJ0dXAuCisgKiBTdHJ1Y3R1 cmUgaGFzIHRvIGZpdCB3aXRoaW4gYSBwYWdlLiAqLworI2RlZmluZSBYRU5NRU1fc2V0X2RvbWFp bl9udW1hX2xheW91dCAweDAzCisjZGVmaW5lIFhFTk1FTV9nZXRfZG9tYWluX251bWFfbGF5b3V0 IDB4MDQKKworLyogTlVNQSBsYXlvdXQgZm9yIHRoZSBkb21haW4gYXQgdGhlIHRpbWUgb2Ygc3Rh cnR1cC4KKyAqIFN0cnVjdHVyZSBoYXMgdG8gZml0IHdpdGhpbiBhIHBhZ2UuICovCisjZGVmaW5l IFhFTl9NQVhfVk5PREVTIDgKKworc3RydWN0IHhlbl92bm9kZV9kYXRhIHsKKyAgICB1aW50MzJf dCB2bm9kZV9pZDsKKyAgICB1aW50MzJfdCBtbm9kZV9pZDsKKyAgICB1aW50NjRfdCBucl9wYWdl czsKKyAgICBzdHJ1Y3QgeGVuY3RsX2NwdW1hc2sgdmNwdV9tYXNrOyAvKiB2bm9kZV90b192Y3B1 bWFzayAqLworfTsKKworI2RlZmluZSBYRU5fRE9NX05VTUFfQ09ORklORUQgICAgICAgMHgwMQor I2RlZmluZSBYRU5fRE9NX05VTUFfU1BMSVQgICAgICAgICAgMHgwMgorI2RlZmluZSBYRU5fRE9N X05VTUFfU1RSSVBFRCAgICAgICAgIDB4MDMKK3N0cnVjdCB4ZW5fZG9tYWluX251bWFfbGF5b3V0 IHsKKyAgICB1aW50MzJfdCB2ZXJzaW9uOworICAgIHVpbnQzMl90IHR5cGU7CisKKyAgICB1aW50 MzJfdCBtYXhfdmNwdXM7CisgICAgdWludDMyX3QgbWF4X3Zub2RlczsKKworICAgIC8qIE9ubHkg KG1heF92bm9kZXMqbWF4X3Zub2RlcykgZW50cmllcyBhcmUgZmlsbGVkICovCisgICAgdWludDMy X3Qgdm5vZGVfZGlzdGFuY2VbWEVOX01BWF9WTk9ERVMgKiBYRU5fTUFYX1ZOT0RFU107CisgICAg LyogT25seSAobWF4X3Zub2RlcykgZW50cmllcyBhcmUgZmlsbGVkICovCisgICAgc3RydWN0IHhl bl92bm9kZV9kYXRhIHZub2RlX2RhdGFbWEVOX01BWF9WTk9ERVNdOworfTsKKworc3RydWN0IHhl bm1lbV9kb21haW5fbnVtYV9sYXlvdXQgeworICAgIGRvbWlkX3QgZG9taWQ7CisgICAgdWludDMy X3QgdmVyc2lvbjsKKworICAgIHVpbnQzMl90IGJ1ZnNpemU7CisgICAgR1VFU1RfSEFORExFKHZv aWQpIGJ1ZjsKK307CitERUZJTkVfR1VFU1RfSEFORExFX1NUUlVDVCh4ZW5tZW1fZG9tYWluX251 bWFfbGF5b3V0KTsKKworc3RydWN0IHhlbm1lbV9udW1hX29wIHsKKyAgICB1aW50MzJfdCBjbWQ7 CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgeGVubWVtX21hY2hpbmVfbnVtYV9sYXlvdXQg bWluZm87CisgICAgICAgIHN0cnVjdCB4ZW5tZW1fbWFjaGluZV9ub2RlbWFwIG1ub2RlbWFwOwor ICAgICAgICBzdHJ1Y3QgeGVubWVtX2RvbWFpbl9udW1hX2xheW91dCBkaW5mbzsKKyAgICB9IHU7 Cit9OworREVGSU5FX0dVRVNUX0hBTkRMRV9TVFJVQ1QoeGVubWVtX251bWFfb3ApOwogCiAvKgog ICogUHJldmVudCB0aGUgYmFsbG9vbiBkcml2ZXIgZnJvbSBjaGFuZ2luZyB0aGUgbWVtb3J5IHJl c2VydmF0aW9uCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UveGVuLmggYi9pbmNs dWRlL3hlbi9pbnRlcmZhY2UveGVuLmgKaW5kZXggOWZmYWVlMC4uMTdjYjE3ZCAxMDA2NDQKLS0t IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL3hlbi5oCisrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFj ZS94ZW4uaApAQCAtNDk0LDYgKzQ5NCw4IEBAIHN0cnVjdCBkb20wX3ZnYV9jb25zb2xlX2luZm8g ewogLyogVGhlc2UgZmxhZ3MgYXJlIHBhc3NlZCBpbiB0aGUgJ2ZsYWdzJyBmaWVsZCBvZiBzdGFy dF9pbmZvX3QuICovCiAjZGVmaW5lIFNJRl9QUklWSUxFR0VEICAgICgxPDwwKSAgLyogSXMgdGhl IGRvbWFpbiBwcml2aWxlZ2VkPyAqLwogI2RlZmluZSBTSUZfSU5JVERPTUFJTiAgICAoMTw8MSkg IC8qIElzIHRoaXMgdGhlIGluaXRpYWwgY29udHJvbCBkb21haW4/ICovCisjZGVmaW5lIFNJRl9N VUxUSUJPT1RfTU9EICgxPDwyKSAgLyogSXMgbW9kX3N0YXJ0IGEgbXVsdGlib290IG1vZHVsZT8g Ki8KKyNkZWZpbmUgU0lGX05VTUFfRE9NQUlOICAgKDE8PDMpICAvKiBJcyB0aGUgZG9tYWluIE5V TUEgYXdhcmUgPyAqLwogI2RlZmluZSBTSUZfUE1fTUFTSyAgICAgICAoMHhGRjw8OCkgLyogcmVz ZXJ2ZSAxIGJ5dGUgZm9yIHhlbi1wbSBvcHRpb25zICovCiAKIHR5cGVkZWYgdWludDY0X3QgY3B1 bWFwX3Q7CkBAIC01MDQsNiArNTA2LDcgQEAgdHlwZWRlZiB1aW50OF90IHhlbl9kb21haW5faGFu ZGxlX3RbMTZdOwogI2RlZmluZSBfX21rX3Vuc2lnbmVkX2xvbmcoeCkgeCAjIyBVTAogI2RlZmlu ZSBta191bnNpZ25lZF9sb25nKHgpIF9fbWtfdW5zaWduZWRfbG9uZyh4KQogCitERUZJTkVfR1VF U1RfSEFORExFKHVpbnQzMl90KTsKIERFRklORV9HVUVTVF9IQU5ETEUodWludDY0X3QpOwogCiAj ZWxzZSAvKiBfX0FTU0VNQkxZX18gKi8K --0016e6dab0529b3b2504836e3f47 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 --0016e6dab0529b3b2504836e3f47--