From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH RFC v3 8/8] golang/xenlight: Implement cpupool operations Date: Thu, 9 Mar 2017 14:00:47 -0500 Message-ID: <1489086047-11539-2-git-send-email-ronladred@gmail.com> References: <1489086047-11539-1-git-send-email-ronladred@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1489086047-11539-1-git-send-email-ronladred@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" Cc: Ronald Rojas , wei.liu2@citrix.com, ian.jackson@eu.citrix.com, George Dunlap , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SW5jbHVkZSBzb21lIHVzZWZ1bCAiVXRpbGl0eSIgZnVuY3Rpb25zOgotIENwdXBvb2xGaW5kQnlO YW1lCi0gQ3B1cG9vbE1ha2VGcmVlCgpTdGlsbCBuZWVkIHRvIGltcGxlbWVudCB0aGUgZm9sbG93 aW5nIGZ1bmN0aW9uczoKLSBsaWJ4bF9jcHVwb29sX3JlbmFtZQotIGxpYnhsX2NwdXBvb2xfY3B1 YWRkX25vZGUKLSBsaWJ4bF9jcHVwb29sX2NwdXJlbW92ZV9ub2RlCi0gbGlieGxfY3B1cG9vbF9t b3ZlZG9tYWluCgpTaWduZWQtb2ZmLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNp dHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IFJvbmFsZCBSb2phcyA8cm9ubGFkcmVkQGdtYWlsLmNv bT4KLS0tCgpDQzogeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKQ0M6IGdlb3JnZS5kdW5sYXBAY2l0 cml4LmNvbQpDQzogaWFuLmphY2tzb25AZXUuY2l0cml4LmNvbQpDQzogd2VpLmxpdTJAY2l0cml4 LmNvbQotLS0KIHRvb2xzL2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5nbyB8IDIzOCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIzOCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3hlbmxpZ2h0Lmdv IGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3hlbmxpZ2h0LmdvCmluZGV4IGQ0YTZiYzEuLjg1M2E2 MzQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2dvbGFuZy94ZW5saWdodC94ZW5saWdodC5nbworKysgYi90 b29scy9nb2xhbmcveGVubGlnaHQveGVubGlnaHQuZ28KQEAgLTM3Myw2ICszNzMsMjQ0IEBAIGZ1 bmMgU2NoZWR1bGVyRnJvbVN0cmluZyhuYW1lIHN0cmluZykgKHMgU2NoZWR1bGVyLCBlcnIgZXJy b3IpIHsKIAlyZXR1cm4KIH0KIAorCisvLyBsaWJ4bF9jcHVwb29saW5mbyA9IFN0cnVjdCgiY3B1 cG9vbGluZm8iLCBbCisvLyAgICAgKCJwb29saWQiLCAgICAgIHVpbnQzMiksCisvLyAgICAgKCJw b29sX25hbWUiLCAgIHN0cmluZyksCisvLyAgICAgKCJzY2hlZCIsICAgICAgIGxpYnhsX3NjaGVk dWxlciksCisvLyAgICAgKCJuX2RvbSIsICAgICAgIHVpbnQzMiksCisvLyAgICAgKCJjcHVtYXAi LCAgICAgIGxpYnhsX2JpdG1hcCkKKy8vICAgICBdLCBkaXI9RElSX09VVCkKKwordHlwZSBDcHVw b29sSW5mbyBzdHJ1Y3QgeworCVBvb2xpZCAgICAgIHVpbnQzMgorCVBvb2xOYW1lICAgIHN0cmlu ZworCVNjaGVkdWxlciAgIFNjaGVkdWxlcgorCURvbWFpbkNvdW50IGludAorCUNwdW1hcCAgICAg IEJpdG1hcAorfQorCitmdW5jIChjY2kgQy5saWJ4bF9jcHVwb29saW5mbylDVG9HbyAoKShnY2kg Q3B1cG9vbEluZm8pIHsKKwlnY2kuUG9vbGlkID0gdWludDMyKGNjaS5wb29saWQpCisJZ2NpLlBv b2xOYW1lID0gQy5Hb1N0cmluZyhjY2kucG9vbF9uYW1lKQorCWdjaS5TY2hlZHVsZXIgPSBTY2hl ZHVsZXIoY2NpLnNjaGVkKQorCWdjaS5Eb21haW5Db3VudCA9IGludChjY2kubl9kb20pCisJZ2Np LkNwdW1hcCA9IGNjaS5jcHVtYXAuQ1RvR28oKQorCisJcmV0dXJuCit9CisKKy8vIGxpYnhsX2Nw dXBvb2xpbmZvICogbGlieGxfbGlzdF9jcHVwb29sKGxpYnhsX2N0eCosIGludCAqbmJfcG9vbF9v dXQpOworLy8gdm9pZCBsaWJ4bF9jcHVwb29saW5mb19saXN0X2ZyZWUobGlieGxfY3B1cG9vbGlu Zm8gKmxpc3QsIGludCBuYl9wb29sKTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgTGlzdENwdXBvb2wo KSAobGlzdCBbXUNwdXBvb2xJbmZvKSB7CisJZXJyIDo9IEN0eC5DaGVja09wZW4oKQorCWlmIGVy ciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisKKwl2YXIgbmJQb29sIEMuaW50CisKKwljX2NwdXBv b2xfbGlzdCA6PSBDLmxpYnhsX2xpc3RfY3B1cG9vbChDdHguY3R4LCAmbmJQb29sKQorCisJZGVm ZXIgQy5saWJ4bF9jcHVwb29saW5mb19saXN0X2ZyZWUoY19jcHVwb29sX2xpc3QsIG5iUG9vbCkK KworCWlmIGludChuYlBvb2wpID09IDAgeworCQlyZXR1cm4KKwl9CisKKwkvLyBNYWdpYworCWNw dXBvb2xMaXN0U2xpY2UgOj0gKCpbMSA8PCAzMF1DLmxpYnhsX2NwdXBvb2xpbmZvKSh1bnNhZmUu UG9pbnRlcihjX2NwdXBvb2xfbGlzdCkpWzpuYlBvb2w6bmJQb29sXQorCisJZm9yIGkgOj0gcmFu Z2UgY3B1cG9vbExpc3RTbGljZSB7CisJCWluZm8gOj0gY3B1cG9vbExpc3RTbGljZVtpXS5DVG9H bygpCisKKwkJbGlzdCA9IGFwcGVuZChsaXN0LCBpbmZvKQorCX0KKworCXJldHVybgorfQorCisv LyBpbnQgbGlieGxfY3B1cG9vbF9pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9jcHVwb29saW5m byAqaW5mbywgdWludDMyX3QgcG9vbGlkKTsKK2Z1bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9vbElu Zm8oUG9vbGlkIHVpbnQzMikgKHBvb2wgQ3B1cG9vbEluZm8pIHsKKwllcnIgOj0gQ3R4LkNoZWNr T3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKworCXZhciBjX2NwdXBvb2wg Qy5saWJ4bF9jcHVwb29saW5mbworCisJcmV0IDo9IEMubGlieGxfY3B1cG9vbF9pbmZvKEN0eC5j dHgsICZjX2NwdXBvb2wsIEMudWludDMyX3QoUG9vbGlkKSkKKwlpZiByZXQgIT0gMCB7CisJCWVy ciA9IEVycm9yKC1yZXQpCisJCXJldHVybgorCX0KKwlkZWZlciBDLmxpYnhsX2NwdXBvb2xpbmZv X2Rpc3Bvc2UoJmNfY3B1cG9vbCkKKworCXBvb2wgPSBjX2NwdXBvb2wuQ1RvR28oKQorCisJcmV0 dXJuCit9CisKKy8vIGludCBsaWJ4bF9jcHVwb29sX2NyZWF0ZShsaWJ4bF9jdHggKmN0eCwgY29u c3QgY2hhciAqbmFtZSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zY2hlZHVs ZXIgc2NoZWQsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfYml0bWFwIGNwdW1h cCwgbGlieGxfdXVpZCAqdXVpZCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCAqcG9vbGlkKTsKKy8vIEZJWE1FOiB1dWlkCisvLyBGSVhNRTogU2V0dGluZyBwb29saWQKK2Z1 bmMgKEN0eCAqQ29udGV4dCkgQ3B1cG9vbENyZWF0ZShOYW1lIHN0cmluZywgU2NoZWR1bGVyIFNj aGVkdWxlciwgQ3B1bWFwIEJpdG1hcCkgKGVyciBlcnJvciwgUG9vbGlkIHVpbnQzMikgeworCWVy ciA9IEN0eC5DaGVja09wZW4oKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisKKwlw b29saWQgOj0gQy51aW50MzJfdCgwKQorCW5hbWUgOj0gQy5DU3RyaW5nKE5hbWUpCisJZGVmZXIg Qy5mcmVlKHVuc2FmZS5Qb2ludGVyKG5hbWUpKQorCisJLy8gRm9yIG5vdywganVzdCBkbyB3aGF0 IHhsIGRvZXMsIGFuZCBtYWtlIGEgbmV3IHV1aWQgZXZlcnkgdGltZSB3ZSBjcmVhdGUgdGhlIHBv b2wKKwl2YXIgdXVpZCBDLmxpYnhsX3V1aWQKKwlDLmxpYnhsX3V1aWRfZ2VuZXJhdGUoJnV1aWQp CisKKwljYm0gOj0gQ3B1bWFwLkdvVG9DKCkKKwlkZWZlciBDLmxpYnhsX2JpdG1hcF9kaXNwb3Nl KCZjYm0pCisKKwlyZXQgOj0gQy5saWJ4bF9jcHVwb29sX2NyZWF0ZShDdHguY3R4LCBuYW1lLCBD LmxpYnhsX3NjaGVkdWxlcihTY2hlZHVsZXIpLAorCQljYm0sICZ1dWlkLCAmcG9vbGlkKQorCWlm IHJldCAhPSAwIHsKKwkJZXJyID0gRXJyb3IoLXJldCkKKwkJcmV0dXJuCisJfQorCisJUG9vbGlk ID0gdWludDMyKHBvb2xpZCkKKworCXJldHVybgorfQorCisvLyBpbnQgbGlieGxfY3B1cG9vbF9k ZXN0cm95KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBwb29saWQpOworZnVuYyAoQ3R4ICpDb250 ZXh0KSBDcHVwb29sRGVzdHJveShQb29saWQgdWludDMyKSAoZXJyIGVycm9yKSB7CisJZXJyID0g Q3R4LkNoZWNrT3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCXJldHVybgorCX0KKworCXJldCA6 PSBDLmxpYnhsX2NwdXBvb2xfZGVzdHJveShDdHguY3R4LCBDLnVpbnQzMl90KFBvb2xpZCkpCisJ aWYgcmV0ICE9IDAgeworCQllcnIgPSBFcnJvcigtcmV0KQorCQlyZXR1cm4KKwl9CisKKwlyZXR1 cm4KK30KKworLy8gaW50IGxpYnhsX2NwdXBvb2xfY3B1YWRkKGxpYnhsX2N0eCAqY3R4LCB1aW50 MzJfdCBwb29saWQsIGludCBjcHUpOworZnVuYyAoQ3R4ICpDb250ZXh0KSBDcHVwb29sQ3B1YWRk KFBvb2xpZCB1aW50MzIsIENwdSBpbnQpIChlcnIgZXJyb3IpIHsKKwllcnIgPSBDdHguQ2hlY2tP cGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQorCisJcmV0IDo9IEMubGlieGxf Y3B1cG9vbF9jcHVhZGQoQ3R4LmN0eCwgQy51aW50MzJfdChQb29saWQpLCBDLmludChDcHUpKQor CWlmIHJldCAhPSAwIHsKKwkJZXJyID0gRXJyb3IoLXJldCkKKwkJcmV0dXJuCisJfQorCisJcmV0 dXJuCit9CisKKy8vIGludCBsaWJ4bF9jcHVwb29sX2NwdWFkZF9jcHVtYXAobGlieGxfY3R4ICpj dHgsIHVpbnQzMl90IHBvb2xpZCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGlieGxfYml0bWFwICpjcHVtYXApOworZnVuYyAoQ3R4ICpDb250ZXh0KSBDcHVwb29s Q3B1YWRkQ3B1bWFwKFBvb2xpZCB1aW50MzIsIENwdW1hcCBCaXRtYXApIChlcnIgZXJyb3IpIHsK KwllcnIgPSBDdHguQ2hlY2tPcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJcmV0dXJuCisJfQor CisJY2JtIDo9IENwdW1hcC5Hb1RvQygpCisJZGVmZXIgQy5saWJ4bF9iaXRtYXBfZGlzcG9zZSgm Y2JtKQorCisJcmV0IDo9IEMubGlieGxfY3B1cG9vbF9jcHVhZGRfY3B1bWFwKEN0eC5jdHgsIEMu dWludDMyX3QoUG9vbGlkKSwgJmNibSkKKwlpZiByZXQgIT0gMCB7CisJCWVyciA9IEVycm9yKC1y ZXQpCisJCXJldHVybgorCX0KKworCXJldHVybgorfQorCisvLyBpbnQgbGlieGxfY3B1cG9vbF9j cHVyZW1vdmUobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IHBvb2xpZCwgaW50IGNwdSk7CitmdW5j IChDdHggKkNvbnRleHQpIENwdXBvb2xDcHVyZW1vdmUoUG9vbGlkIHVpbnQzMiwgQ3B1IGludCkg KGVyciBlcnJvcikgeworCWVyciA9IEN0eC5DaGVja09wZW4oKQorCWlmIGVyciAhPSBuaWwgewor CQlyZXR1cm4KKwl9CisKKwlyZXQgOj0gQy5saWJ4bF9jcHVwb29sX2NwdXJlbW92ZShDdHguY3R4 LCBDLnVpbnQzMl90KFBvb2xpZCksIEMuaW50KENwdSkpCisJaWYgcmV0ICE9IDAgeworCQllcnIg PSBFcnJvcigtcmV0KQorCQlyZXR1cm4KKwl9CisKKwlyZXR1cm4KK30KKworLy8gaW50IGxpYnhs X2NwdXBvb2xfY3B1cmVtb3ZlX2NwdW1hcChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcG9vbGlk LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9iaXRt YXAgKmNwdW1hcCk7CitmdW5jIChDdHggKkNvbnRleHQpIENwdXBvb2xDcHVyZW1vdmVDcHVtYXAo UG9vbGlkIHVpbnQzMiwgQ3B1bWFwIEJpdG1hcCkgKGVyciBlcnJvcikgeworCWVyciA9IEN0eC5D aGVja09wZW4oKQorCWlmIGVyciAhPSBuaWwgeworCQlyZXR1cm4KKwl9CisKKwljYm0gOj0gQ3B1 bWFwLkdvVG9DKCkKKwlkZWZlciBDLmxpYnhsX2JpdG1hcF9kaXNwb3NlKCZjYm0pCisKKwlyZXQg Oj0gQy5saWJ4bF9jcHVwb29sX2NwdXJlbW92ZV9jcHVtYXAoQ3R4LmN0eCwgQy51aW50MzJfdChQ b29saWQpLCAmY2JtKQorCWlmIHJldCAhPSAwIHsKKwkJZXJyID0gRXJyb3IoLXJldCkKKwkJcmV0 dXJuCisJfQorCisJcmV0dXJuCit9CisKKy8vIGludCBsaWJ4bF9jcHVwb29sX3JlbmFtZShsaWJ4 bF9jdHggKmN0eCwgY29uc3QgY2hhciAqbmFtZSwgdWludDMyX3QgcG9vbGlkKTsKKy8vIGludCBs aWJ4bF9jcHVwb29sX2NwdWFkZF9ub2RlKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBwb29saWQs IGludCBub2RlLCBpbnQgKmNwdXMpOworLy8gaW50IGxpYnhsX2NwdXBvb2xfY3B1cmVtb3ZlX25v ZGUobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IHBvb2xpZCwgaW50IG5vZGUsIGludCAqY3B1cyk7 CisvLyBpbnQgbGlieGxfY3B1cG9vbF9tb3ZlZG9tYWluKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJf dCBwb29saWQsIHVpbnQzMl90IGRvbWlkKTsKKworLy8KKy8vIFV0aWxpdHkgZnVuY3Rpb25zCisv LworZnVuYyAoQ3R4ICpDb250ZXh0KSBDcHVwb29sRmluZEJ5TmFtZShuYW1lIHN0cmluZykgKGlu Zm8gQ3B1cG9vbEluZm8sIGZvdW5kIGJvb2wpIHsKKwlwbGlzdCA6PSBDdHguTGlzdENwdXBvb2wo KQorCisJZm9yIGkgOj0gcmFuZ2UgcGxpc3QgeworCQlpZiBwbGlzdFtpXS5Qb29sTmFtZSA9PSBu YW1lIHsKKwkJCWZvdW5kID0gdHJ1ZQorCQkJaW5mbyA9IHBsaXN0W2ldCisJCQlyZXR1cm4KKwkJ fQorCX0KKwlyZXR1cm4KK30KKworZnVuYyAoQ3R4ICpDb250ZXh0KSBDcHVwb29sTWFrZUZyZWUo Q3B1bWFwIEJpdG1hcCkgKGVyciBlcnJvcikgeworCXBsaXN0IDo9IEN0eC5MaXN0Q3B1cG9vbCgp CisKKwlmb3IgaSA6PSByYW5nZSBwbGlzdCB7CisJCXZhciBJbnRlcnNlY3Rpb24gQml0bWFwCisJ CUludGVyc2VjdGlvbiA9IENwdW1hcC5BbmQocGxpc3RbaV0uQ3B1bWFwKQorCQlpZiAhSW50ZXJz ZWN0aW9uLklzRW1wdHkoKSB7CisJCQllcnIgPSBDdHguQ3B1cG9vbENwdXJlbW92ZUNwdW1hcChw bGlzdFtpXS5Qb29saWQsIEludGVyc2VjdGlvbikKKwkJCWlmIGVyciAhPSBuaWwgeworCQkJCXJl dHVybgorCQkJfQorCQl9CisJfQorCXJldHVybgorfQorCiAvKgogICogQml0bWFwIG9wZXJhdGlv bnMKICAqLwotLSAKMi43LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK