From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH RFC 8/8] golang/xenlight: Implement cpupool operations Date: Mon, 23 Jan 2017 11:43:37 -0500 Message-ID: <20170123164337.4205-8-ronladred@gmail.com> References: <20170123164337.4205-1-ronladred@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170123164337.4205-1-ronladred@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org, george.dunlap@citrix.com, ian.jackson@eu.citrix.com, wei.liu2@citrix.com Cc: Ronald Rojas List-Id: xen-devel@lists.xenproject.org SW5jbHVkZSBzb21lIHVzZWZ1bCAiVXRpbGl0eSIgZnVuY3Rpb25zOgotIENwdXBvb2xGaW5kQnlO YW1lCi0gQ3B1cG9vbE1ha2VGcmVlCgpTdGlsbCBuZWVkIHRvIGltcGxlbWVudCB0aGUgZm9sbG93 aW5nIGZ1bmN0aW9uczoKLSBsaWJ4bF9jcHVwb29sX3JlbmFtZQotIGxpYnhsX2NwdXBvb2xfY3B1 YWRkX25vZGUKLSBsaWJ4bF9jcHVwb29sX2NwdXJlbW92ZV9ub2RlCi0gbGlieGxfY3B1cG9vbF9t b3ZlZG9tYWluCgpTaWduZWQtb2ZmLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNp dHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IFJvbmFsZCBSb2phcyA8cm9ubGFkcmVkQGdtYWlsLmNv bT4KLS0tCiB0b29scy9nb2xhbmcveGVubGlnaHQveGVubGlnaHQuZ28gfCAyMzggKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMzggaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5nbyBi L3Rvb2xzL2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5nbwppbmRleCAwOTkwZjA3Li5jODU2Mjg0 IDEwMDY0NAotLS0gYS90b29scy9nb2xhbmcveGVubGlnaHQveGVubGlnaHQuZ28KKysrIGIvdG9v bHMvZ29sYW5nL3hlbmxpZ2h0L3hlbmxpZ2h0LmdvCkBAIC0yNzMsNiArMjczLDI0NCBAQCBmdW5j IFNjaGVkdWxlckZyb21TdHJpbmcobmFtZSBzdHJpbmcpIChzIFNjaGVkdWxlciwgZXJyIGVycm9y KSB7CiAJcmV0dXJuCiB9CiAKKworLy8gbGlieGxfY3B1cG9vbGluZm8gPSBTdHJ1Y3QoImNwdXBv b2xpbmZvIiwgWworLy8gICAgICgicG9vbGlkIiwgICAgICB1aW50MzIpLAorLy8gICAgICgicG9v bF9uYW1lIiwgICBzdHJpbmcpLAorLy8gICAgICgic2NoZWQiLCAgICAgICBsaWJ4bF9zY2hlZHVs ZXIpLAorLy8gICAgICgibl9kb20iLCAgICAgICB1aW50MzIpLAorLy8gICAgICgiY3B1bWFwIiwg ICAgICBsaWJ4bF9iaXRtYXApCisvLyAgICAgXSwgZGlyPURJUl9PVVQpCisKK3R5cGUgQ3B1cG9v bEluZm8gc3RydWN0IHsKKwlQb29saWQgICAgICB1aW50MzIKKwlQb29sTmFtZSAgICBzdHJpbmcK KwlTY2hlZHVsZXIgICBTY2hlZHVsZXIKKwlEb21haW5Db3VudCBpbnQKKwlDcHVtYXAgICAgICBC aXRtYXAKK30KKworZnVuYyAoY2NpIEMubGlieGxfY3B1cG9vbGluZm8pQ1RvR28gKCkoZ2NpIENw dXBvb2xJbmZvKSB7CisJZ2NpLlBvb2xpZCA9IHVpbnQzMihjY2kucG9vbGlkKQorCWdjaS5Qb29s TmFtZSA9IEMuR29TdHJpbmcoY2NpLnBvb2xfbmFtZSkKKwlnY2kuU2NoZWR1bGVyID0gU2NoZWR1 bGVyKGNjaS5zY2hlZCkKKwlnY2kuRG9tYWluQ291bnQgPSBpbnQoY2NpLm5fZG9tKQorCWdjaS5D cHVtYXAgPSBjY2kuY3B1bWFwLkNUb0dvKCkKKworCXJldHVybgorfQorCisvLyBsaWJ4bF9jcHVw b29saW5mbyAqIGxpYnhsX2xpc3RfY3B1cG9vbChsaWJ4bF9jdHgqLCBpbnQgKm5iX3Bvb2xfb3V0 KTsKKy8vIHZvaWQgbGlieGxfY3B1cG9vbGluZm9fbGlzdF9mcmVlKGxpYnhsX2NwdXBvb2xpbmZv ICpsaXN0LCBpbnQgbmJfcG9vbCk7CitmdW5jIChDdHggKkNvbnRleHQpIExpc3RDcHVwb29sKCkg KGxpc3QgW11DcHVwb29sSW5mbykgeworCWVyciA6PSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIg IT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCisJdmFyIG5iUG9vbCBDLmludAorCisJY19jcHVwb29s X2xpc3QgOj0gQy5saWJ4bF9saXN0X2NwdXBvb2woQ3R4LmN0eCwgJm5iUG9vbCkKKworCWRlZmVy IEMubGlieGxfY3B1cG9vbGluZm9fbGlzdF9mcmVlKGNfY3B1cG9vbF9saXN0LCBuYlBvb2wpCisK KwlpZiBpbnQobmJQb29sKSA9PSAwIHsKKwkJcmV0dXJuCisJfQorCisJLy8gTWFnaWMKKwljcHVw b29sTGlzdFNsaWNlIDo9ICgqWzEgPDwgMzBdQy5saWJ4bF9jcHVwb29saW5mbykodW5zYWZlLlBv aW50ZXIoY19jcHVwb29sX2xpc3QpKVs6bmJQb29sOm5iUG9vbF0KKworCWZvciBpIDo9IHJhbmdl IGNwdXBvb2xMaXN0U2xpY2UgeworCQlpbmZvIDo9IGNwdXBvb2xMaXN0U2xpY2VbaV0uQ1RvR28o KQorCisJCWxpc3QgPSBhcHBlbmQobGlzdCwgaW5mbykKKwl9CisKKwlyZXR1cm4KK30KKworLy8g aW50IGxpYnhsX2NwdXBvb2xfaW5mbyhsaWJ4bF9jdHggKmN0eCwgbGlieGxfY3B1cG9vbGluZm8g KmluZm8sIHVpbnQzMl90IHBvb2xpZCk7CitmdW5jIChDdHggKkNvbnRleHQpIENwdXBvb2xJbmZv KFBvb2xpZCB1aW50MzIpIChwb29sIENwdXBvb2xJbmZvKSB7CisJZXJyIDo9IEN0eC5DaGVja09w ZW4oKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisKKwl2YXIgY19jcHVwb29sIEMu bGlieGxfY3B1cG9vbGluZm8KKworCXJldCA6PSBDLmxpYnhsX2NwdXBvb2xfaW5mbyhDdHguY3R4 LCAmY19jcHVwb29sLCBDLnVpbnQzMl90KFBvb2xpZCkpCisJaWYgcmV0ICE9IDAgeworCQllcnIg PSBFcnJvcigtcmV0KQorCQlyZXR1cm4KKwl9CisJZGVmZXIgQy5saWJ4bF9jcHVwb29saW5mb19k aXNwb3NlKCZjX2NwdXBvb2wpCisKKwlwb29sID0gY19jcHVwb29sLkNUb0dvKCkKKworCXJldHVy bgorfQorCisvLyBpbnQgbGlieGxfY3B1cG9vbF9jcmVhdGUobGlieGxfY3R4ICpjdHgsIGNvbnN0 IGNoYXIgKm5hbWUsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfc2NoZWR1bGVy IHNjaGVkLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2JpdG1hcCBjcHVtYXAs IGxpYnhsX3V1aWQgKnV1aWQsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg KnBvb2xpZCk7CisvLyBGSVhNRTogdXVpZAorLy8gRklYTUU6IFNldHRpbmcgcG9vbGlkCitmdW5j IChDdHggKkNvbnRleHQpIENwdXBvb2xDcmVhdGUoTmFtZSBzdHJpbmcsIFNjaGVkdWxlciBTY2hl ZHVsZXIsIENwdW1hcCBCaXRtYXApIChlcnIgZXJyb3IsIFBvb2xpZCB1aW50MzIpIHsKKwllcnIg PSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCisJcG9v bGlkIDo9IEMudWludDMyX3QoMCkKKwluYW1lIDo9IEMuQ1N0cmluZyhOYW1lKQorCWRlZmVyIEMu ZnJlZSh1bnNhZmUuUG9pbnRlcihuYW1lKSkKKworCS8vIEZvciBub3csIGp1c3QgZG8gd2hhdCB4 bCBkb2VzLCBhbmQgbWFrZSBhIG5ldyB1dWlkIGV2ZXJ5IHRpbWUgd2UgY3JlYXRlIHRoZSBwb29s CisJdmFyIHV1aWQgQy5saWJ4bF91dWlkCisJQy5saWJ4bF91dWlkX2dlbmVyYXRlKCZ1dWlkKQor CisJY2JtIDo9IENwdW1hcC5Hb1RvQygpCisJZGVmZXIgQy5saWJ4bF9iaXRtYXBfZGlzcG9zZSgm Y2JtKQorCisJcmV0IDo9IEMubGlieGxfY3B1cG9vbF9jcmVhdGUoQ3R4LmN0eCwgbmFtZSwgQy5s aWJ4bF9zY2hlZHVsZXIoU2NoZWR1bGVyKSwKKwkJY2JtLCAmdXVpZCwgJnBvb2xpZCkKKwlpZiBy ZXQgIT0gMCB7CisJCWVyciA9IEVycm9yKC1yZXQpCisJCXJldHVybgorCX0KKworCVBvb2xpZCA9 IHVpbnQzMihwb29saWQpCisKKwlyZXR1cm4KK30KKworLy8gaW50IGxpYnhsX2NwdXBvb2xfZGVz dHJveShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcG9vbGlkKTsKK2Z1bmMgKEN0eCAqQ29udGV4 dCkgQ3B1cG9vbERlc3Ryb3koUG9vbGlkIHVpbnQzMikgKGVyciBlcnJvcikgeworCWVyciA9IEN0 eC5DaGVja09wZW4oKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisKKwlyZXQgOj0g Qy5saWJ4bF9jcHVwb29sX2Rlc3Ryb3koQ3R4LmN0eCwgQy51aW50MzJfdChQb29saWQpKQorCWlm IHJldCAhPSAwIHsKKwkJZXJyID0gRXJyb3IoLXJldCkKKwkJcmV0dXJuCisJfQorCisJcmV0dXJu Cit9CisKKy8vIGludCBsaWJ4bF9jcHVwb29sX2NwdWFkZChsaWJ4bF9jdHggKmN0eCwgdWludDMy X3QgcG9vbGlkLCBpbnQgY3B1KTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9vbENwdWFkZChQ b29saWQgdWludDMyLCBDcHUgaW50KSAoZXJyIGVycm9yKSB7CisJZXJyID0gQ3R4LkNoZWNrT3Bl bigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKworCXJldCA6PSBDLmxpYnhsX2Nw dXBvb2xfY3B1YWRkKEN0eC5jdHgsIEMudWludDMyX3QoUG9vbGlkKSwgQy5pbnQoQ3B1KSkKKwlp ZiByZXQgIT0gMCB7CisJCWVyciA9IEVycm9yKC1yZXQpCisJCXJldHVybgorCX0KKworCXJldHVy bgorfQorCisvLyBpbnQgbGlieGxfY3B1cG9vbF9jcHVhZGRfY3B1bWFwKGxpYnhsX2N0eCAqY3R4 LCB1aW50MzJfdCBwb29saWQsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGxpYnhsX2JpdG1hcCAqY3B1bWFwKTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9vbENw dWFkZENwdW1hcChQb29saWQgdWludDMyLCBDcHVtYXAgQml0bWFwKSAoZXJyIGVycm9yKSB7CisJ ZXJyID0gQ3R4LkNoZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKwor CWNibSA6PSBDcHVtYXAuR29Ub0MoKQorCWRlZmVyIEMubGlieGxfYml0bWFwX2Rpc3Bvc2UoJmNi bSkKKworCXJldCA6PSBDLmxpYnhsX2NwdXBvb2xfY3B1YWRkX2NwdW1hcChDdHguY3R4LCBDLnVp bnQzMl90KFBvb2xpZCksICZjYm0pCisJaWYgcmV0ICE9IDAgeworCQllcnIgPSBFcnJvcigtcmV0 KQorCQlyZXR1cm4KKwl9CisKKwlyZXR1cm4KK30KKworLy8gaW50IGxpYnhsX2NwdXBvb2xfY3B1 cmVtb3ZlKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBwb29saWQsIGludCBjcHUpOworZnVuYyAo Q3R4ICpDb250ZXh0KSBDcHVwb29sQ3B1cmVtb3ZlKFBvb2xpZCB1aW50MzIsIENwdSBpbnQpIChl cnIgZXJyb3IpIHsKKwllcnIgPSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJ cmV0dXJuCisJfQorCisJcmV0IDo9IEMubGlieGxfY3B1cG9vbF9jcHVyZW1vdmUoQ3R4LmN0eCwg Qy51aW50MzJfdChQb29saWQpLCBDLmludChDcHUpKQorCWlmIHJldCAhPSAwIHsKKwkJZXJyID0g RXJyb3IoLXJldCkKKwkJcmV0dXJuCisJfQorCisJcmV0dXJuCit9CisKKy8vIGludCBsaWJ4bF9j cHVwb29sX2NwdXJlbW92ZV9jcHVtYXAobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IHBvb2xpZCwK Ky8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfYml0bWFw ICpjcHVtYXApOworZnVuYyAoQ3R4ICpDb250ZXh0KSBDcHVwb29sQ3B1cmVtb3ZlQ3B1bWFwKFBv b2xpZCB1aW50MzIsIENwdW1hcCBCaXRtYXApIChlcnIgZXJyb3IpIHsKKwllcnIgPSBDdHguQ2hl Y2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCisJY2JtIDo9IENwdW1h cC5Hb1RvQygpCisJZGVmZXIgQy5saWJ4bF9iaXRtYXBfZGlzcG9zZSgmY2JtKQorCisJcmV0IDo9 IEMubGlieGxfY3B1cG9vbF9jcHVyZW1vdmVfY3B1bWFwKEN0eC5jdHgsIEMudWludDMyX3QoUG9v bGlkKSwgJmNibSkKKwlpZiByZXQgIT0gMCB7CisJCWVyciA9IEVycm9yKC1yZXQpCisJCXJldHVy bgorCX0KKworCXJldHVybgorfQorCisvLyBpbnQgbGlieGxfY3B1cG9vbF9yZW5hbWUobGlieGxf Y3R4ICpjdHgsIGNvbnN0IGNoYXIgKm5hbWUsIHVpbnQzMl90IHBvb2xpZCk7CisvLyBpbnQgbGli eGxfY3B1cG9vbF9jcHVhZGRfbm9kZShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcG9vbGlkLCBp bnQgbm9kZSwgaW50ICpjcHVzKTsKKy8vIGludCBsaWJ4bF9jcHVwb29sX2NwdXJlbW92ZV9ub2Rl KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBwb29saWQsIGludCBub2RlLCBpbnQgKmNwdXMpOwor Ly8gaW50IGxpYnhsX2NwdXBvb2xfbW92ZWRvbWFpbihsaWJ4bF9jdHggKmN0eCwgdWludDMyX3Qg cG9vbGlkLCB1aW50MzJfdCBkb21pZCk7CisKKy8vCisvLyBVdGlsaXR5IGZ1bmN0aW9ucworLy8K K2Z1bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9vbEZpbmRCeU5hbWUobmFtZSBzdHJpbmcpIChpbmZv IENwdXBvb2xJbmZvLCBmb3VuZCBib29sKSB7CisJcGxpc3QgOj0gQ3R4Lkxpc3RDcHVwb29sKCkK KworCWZvciBpIDo9IHJhbmdlIHBsaXN0IHsKKwkJaWYgcGxpc3RbaV0uUG9vbE5hbWUgPT0gbmFt ZSB7CisJCQlmb3VuZCA9IHRydWUKKwkJCWluZm8gPSBwbGlzdFtpXQorCQkJcmV0dXJuCisJCX0K Kwl9CisJcmV0dXJuCit9CisKK2Z1bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9vbE1ha2VGcmVlKENw dW1hcCBCaXRtYXApIChlcnIgZXJyb3IpIHsKKwlwbGlzdCA6PSBDdHguTGlzdENwdXBvb2woKQor CisJZm9yIGkgOj0gcmFuZ2UgcGxpc3QgeworCQl2YXIgSW50ZXJzZWN0aW9uIEJpdG1hcAorCQlJ bnRlcnNlY3Rpb24gPSBDcHVtYXAuQW5kKHBsaXN0W2ldLkNwdW1hcCkKKwkJaWYgIUludGVyc2Vj dGlvbi5Jc0VtcHR5KCkgeworCQkJZXJyID0gQ3R4LkNwdXBvb2xDcHVyZW1vdmVDcHVtYXAocGxp c3RbaV0uUG9vbGlkLCBJbnRlcnNlY3Rpb24pCisJCQlpZiBlcnIgIT0gbmlsIHsKKwkJCQlyZXR1 cm4KKwkJCX0KKwkJfQorCX0KKwlyZXR1cm4KK30KKwogLyoKICAqIEJpdG1hcCBvcGVyYXRpb25z CiAgKi8KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==