From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v2 3/5] VT-d PI: restrict the vcpu number on a given pcpu Date: Thu, 11 May 2017 14:04:10 +0800 Message-ID: <1494482652-42356-4-git-send-email-chao.gao@intel.com> References: <1494482652-42356-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1494482652-42356-1-git-send-email-chao.gao@intel.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 Cc: Andrew Cooper , Kevin Tian , Jan Beulich , Jun Nakajima , Chao Gao List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5LCBhIGJsb2NrZWQgdkNQVSBpcyBwdXQgaW4gaXRzIHBDUFUncyBwaSBibG9ja2lu ZyBsaXN0LiBJZgp0b28gbWFueSB2Q1BVcyBhcmUgYmxvY2tlZCBvbiBhIGdpdmVuIHBDUFUsIGl0 IHdpbGwgaW5jdXIgdGhhdCB0aGUgbGlzdApncm93cyB0b28gbG9uZy4gQWZ0ZXIgYSBzaW1wbGUg YW5hbHlzaXMsIHRoZXJlIGFyZSAzMmsgZG9tYWlucyBhbmQKMTI4IHZjcHUgcGVyIGRvbWFpbiwg dGh1cyBhYm91dCA0TSB2Q1BVcyBtYXkgYmUgYmxvY2tlZCBpbiBvbmUgcENQVSdzClBJIGJsb2Nr aW5nIGxpc3QuIFdoZW4gYSB3YWtldXAgaW50ZXJydXB0IGFycml2ZXMsIHRoZSBsaXN0IGlzCnRy YXZlcnNlZCB0byBmaW5kIHNvbWUgc3BlY2lmaWMgdkNQVXMgdG8gd2FrZSB0aGVtIHVwLiBUaGlz IHRyYXZlcnNhbCBpbgp0aGF0IGNhc2Ugd291bGQgY29uc3VtZSBtdWNoIHRpbWUuCgpUbyBtaXRp Z2F0ZSB0aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGxpbWl0cyB0aGUgdmNwdSBudW1iZXIgb24gYSBn aXZlbgpwQ1BVLCB0YWtpbmcgZmFjdG9ycyBzdWNoIGFzIHBlcmZvbWFuY2Ugb2YgY29tbW9uIGNh c2UsIGN1cnJlbnQgaHZtIHZjcHUKY291bnQgYW5kIGN1cnJlbnQgcGNwdSBjb3VudCBpbnRvIGNv bnNpZGVyYXRpb24uIFdpdGggdGhpcyBtZXRob2QsIGZvcgp0aGUgY29tbW9uIGNhc2UsIGl0IHdv cmtzIGZhc3QgYW5kIGZvciBzb21lIGV4dHJlbWUgY2FzZXMsIHRoZSBsaXN0Cmxlbmd0aCBpcyB1 bmRlciBjb250cm9sLgoKVGhlIGNoYW5nZSBpbiB2bXhfcGlfdW5ibG9ja192Y3B1KCkgaXMgZm9y IHRoZSBmb2xsb3dpbmcgY2FzZToKdmNwdSBpcyBydW5uaW5nIC0+IHRyeSB0byBibG9jayAodGhp cyBwYXRjaCBtYXkgY2hhbmdlIE5TRFQgdG8KYW5vdGhlciBwQ1BVKSBidXQgbm90aWZpY2F0aW9u IGNvbWVzIGluIHRpbWUsIHRodXMgdGhlIHZjcHUKZ29lcyBiYWNrIHRvIHJ1bm5pbmcgc3RhdGlv biAtPiBWTS1lbnRyeSAod2Ugc2hvdWxkIHNldCBOU0RUIGFnYWluLApyZXZlcnRpbmcgdGhlIGNo YW5nZSB3ZSBtYWtlIHRvIE5TRFQgaW4gdm14X3ZjcHVfYmxvY2soKSkKClNpZ25lZC1vZmYtYnk6 IENoYW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgv dm14LmMgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14 L3ZteC5jCmluZGV4IGVmZmY2Y2QuLmMwZDBiNTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9o dm0vdm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC0xMDAsMTYg KzEwMCw3MCBAQCB2b2lkIHZteF9waV9wZXJfY3B1X2luaXQodW5zaWduZWQgaW50IGNwdSkKICAg ICBzcGluX2xvY2tfaW5pdCgmcGVyX2NwdSh2bXhfcGlfYmxvY2tpbmcsIGNwdSkubG9jayk7CiB9 CiAKKy8qCisgKiBDaG9vc2UgYW4gYXBwcm9wcmlhdGUgcGNwdSB0byByZWNlaXZlIHdha2V1cCBp bnRlcnJ1cHQuCisgKiBCeSBkZWZhdWx0LCB0aGUgbG9jYWwgcGNwdSBpcyBjaG9zZW4gYXMgdGhl IGRlc3RpbmF0aW9uLiBCdXQgaWYgdGhlCisgKiB2Y3B1IG51bWJlciBvZiB0aGUgbG9jYWwgcGNw dSBleGNlZWRzIGEgbGltaXQsIGFub3RoZXIgcGNwdSBpcyBjaG9zZW4uCisgKgorICogQ3VycmVu dGx5LCBjaG9vc2UgKHZfdG90L3BfdG90KSArIEsgYXMgdGhlIGxpbWl0IG9mIHZjcHUsIHdoZXJl CisgKiB2X3RvdCBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHZjcHVzIG9uIHRoZSBzeXN0ZW0sIHBf dG90IGlzIHRoZSB0b3RhbAorICogbnVtYmVyIG9mIHBjcHVzIGluIHRoZSBzeXN0ZW0sIGFuZCBL IGlzIGEgZml4ZWQgbnVtYmVyLiBFeHBlcm1lbnRzIHNob3dzCisgKiB0aGUgbWF4aW1hbCB0aW1l IHRvIHdha2V1cCBhIHZjcHUgZnJvbSBhIDEyOC1lbnRyeSBibG9ja2luZyBsaXN0IGlzCisgKiBj b25zaWRlcmVkIGFjY2VwdGFibGUuIFNvIGNob29zZSAxMjggYXMgdGhlIGZpeGVkIG51bWJlciBL LgorICoKKyAqIFRoaXMgcG9saWN5IG1ha2VzIHN1cmU6CisgKiAxKSBmb3IgY29tbW9uIGNhc2Vz LCB0aGUgbGltaXQgd29uJ3QgYmUgcmVhY2hlZCBhbmQgdGhlIGxvY2FsIHBjcHUgaXMgdXNlZAor ICogd2hpY2ggaXMgYmVuZWZpY2lhbCB0byBwZXJmb3JtYW5jZSAoYXQgbGVhc3QsIGF2b2lkIGFu IElQSSB3aGVuIHVuYmxvY2tpbmcKKyAqIHZjcHUpLgorICogMikgZm9yIHRoZSB3b3JzdCBjYXNl LCB0aGUgYmxvY2tpbmcgbGlzdCBsZW5ndGggc2NhbGVzIHdpdGggdGhlIHZjcHUgY291bnQKKyAq IGRpdmlkZWQgYnkgdGhlIHBjcHUgY291bnQuCisgKi8KKyNkZWZpbmUgUElfTElTVF9GSVhFRF9O VU0gMTI4CisjZGVmaW5lIFBJX0xJU1RfTElNSVQgICAgIChhdG9taWNfcmVhZCgmbnVtX2h2bV92 Y3B1cykgLyBudW1fb25saW5lX2NwdXMoKSArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IFBJX0xJU1RfRklYRURfTlVNKQorCitzdGF0aWMgdW5zaWduZWQgaW50IHZteF9waV9jaG9vc2Vf ZGVzdF9jcHUoc3RydWN0IHZjcHUgKnYpCit7CisgICAgaW50IGNvdW50LCBsaW1pdCA9IFBJX0xJ U1RfTElNSVQ7CisgICAgdW5zaWduZWQgaW50IGRlc3QgPSB2LT5wcm9jZXNzb3I7CisKKyAgICBj b3VudCA9IGF0b21pY19yZWFkKCZwZXJfY3B1KHZteF9waV9ibG9ja2luZywgZGVzdCkuY291bnRl cik7CisgICAgd2hpbGUgKCB1bmxpa2VseShjb3VudCA+PSBsaW1pdCkgKQorICAgIHsKKyAgICAg ICAgZGVzdCA9IGNwdW1hc2tfY3ljbGUoZGVzdCwgJmNwdV9vbmxpbmVfbWFwKTsKKyAgICAgICAg Y291bnQgPSBhdG9taWNfcmVhZCgmcGVyX2NwdSh2bXhfcGlfYmxvY2tpbmcsIGRlc3QpLmNvdW50 ZXIpOworICAgIH0KKyAgICByZXR1cm4gZGVzdDsKK30KKwogc3RhdGljIHZvaWQgdm14X3ZjcHVf YmxvY2soc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKLSAgICB1 bnNpZ25lZCBpbnQgZGVzdDsKKyAgICB1bnNpZ25lZCBpbnQgZGVzdCwgZGVzdF9jcHU7CiAgICAg c3BpbmxvY2tfdCAqb2xkX2xvY2s7Ci0gICAgc3BpbmxvY2tfdCAqcGlfYmxvY2tpbmdfbGlzdF9s b2NrID0KLQkJJnBlcl9jcHUodm14X3BpX2Jsb2NraW5nLCB2LT5wcm9jZXNzb3IpLmxvY2s7CiAg ICAgc3RydWN0IHBpX2Rlc2MgKnBpX2Rlc2MgPSAmdi0+YXJjaC5odm1fdm14LnBpX2Rlc2M7Cisg ICAgc3BpbmxvY2tfdCAqcGlfYmxvY2tpbmdfbGlzdF9sb2NrOworCisgICAgLyoKKyAgICAgKiBB ZnRlciBwQ1BVIGdvZXMgZG93biwgdGhlIHBlci1jcHUgUEkgYmxvY2tpbmcgbGlzdCBpcyBjbGVh cmVkLgorICAgICAqIFRvIG1ha2Ugc3VyZSB0aGUgcGFyYW1ldGVyIHZDUFUgaXMgYWRkZWQgdG8g dGhlIGNob3NlbiBwQ1BVJ3MKKyAgICAgKiBQSSBibG9ja2luZyBsaXN0IGJlZm9yZSB0aGUgbGlz dCBpcyBjbGVhcmVkLCBqdXN0IHJldHJ5IHdoZW4KKyAgICAgKiBmaW5kaW5nIHRoZSBwQ1BVIGhh cyBnb25lIGRvd24uIEFsc28gcmV0cnkgdG8gY2hvb3NlIGFub3RoZXIKKyAgICAgKiBwQ1BVIHdo ZW4gZmluZGluZyB0aGUgbGlzdCBsZW5ndGggcmVhY2hzIHRoZSBsaW1pdC4KKyAgICAgKi8KKyBy ZXRyeToKKyAgICBkZXN0X2NwdSA9IHZteF9waV9jaG9vc2VfZGVzdF9jcHUodik7CisgICAgcGlf YmxvY2tpbmdfbGlzdF9sb2NrID0gJnBlcl9jcHUodm14X3BpX2Jsb2NraW5nLCBkZXN0X2NwdSku bG9jazsKIAogICAgIHNwaW5fbG9ja19pcnFzYXZlKHBpX2Jsb2NraW5nX2xpc3RfbG9jaywgZmxh Z3MpOworICAgIGlmICggdW5saWtlbHkoKCFjcHVfb25saW5lKGRlc3RfY3B1KSkgfHwKKyAgICAg ICAgICAgICAgICAgIChhdG9taWNfcmVhZCgmcGVyX2NwdSh2bXhfcGlfYmxvY2tpbmcsIGRlc3Rf Y3B1KS5jb3VudGVyKSA+PQorICAgICAgICAgICAgICAgICAgIFBJX0xJU1RfTElNSVQpKSApCisg ICAgeworICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKHBpX2Jsb2NraW5nX2xpc3RfbG9j aywgZmxhZ3MpOworICAgICAgICBnb3RvIHJldHJ5OworICAgIH0KKwogICAgIG9sZF9sb2NrID0g Y21weGNoZygmdi0+YXJjaC5odm1fdm14LnBpX2Jsb2NraW5nLmxvY2ssIE5VTEwsCiAgICAgICAg ICAgICAgICAgICAgICAgIHBpX2Jsb2NraW5nX2xpc3RfbG9jayk7CiAKQEAgLTEyMCwxMSArMTc0 LDExIEBAIHN0YXRpYyB2b2lkIHZteF92Y3B1X2Jsb2NrKHN0cnVjdCB2Y3B1ICp2KQogICAgICAq LwogICAgIEFTU0VSVChvbGRfbG9jayA9PSBOVUxMKTsKIAotICAgIGF0b21pY19pbmMoJnBlcl9j cHUodm14X3BpX2Jsb2NraW5nLCB2LT5wcm9jZXNzb3IpLmNvdW50ZXIpOwotICAgIEhWTVRSQUNF XzREKFBJX0xJU1RfQURELCB2LT5kb21haW4tPmRvbWFpbl9pZCwgdi0+dmNwdV9pZCwgdi0+cHJv Y2Vzc29yLAotICAgICAgICAgICAgICAgIGF0b21pY19yZWFkKCZwZXJfY3B1KHZteF9waV9ibG9j a2luZywgdi0+cHJvY2Vzc29yKS5jb3VudGVyKSk7CisgICAgYXRvbWljX2luYygmcGVyX2NwdSh2 bXhfcGlfYmxvY2tpbmcsIGRlc3RfY3B1KS5jb3VudGVyKTsKKyAgICBIVk1UUkFDRV80RChQSV9M SVNUX0FERCwgdi0+ZG9tYWluLT5kb21haW5faWQsIHYtPnZjcHVfaWQsIGRlc3RfY3B1LAorICAg ICAgICAgICAgICAgIGF0b21pY19yZWFkKCZwZXJfY3B1KHZteF9waV9ibG9ja2luZywgZGVzdF9j cHUpLmNvdW50ZXIpKTsKICAgICBsaXN0X2FkZF90YWlsKCZ2LT5hcmNoLmh2bV92bXgucGlfYmxv Y2tpbmcubGlzdCwKLSAgICAgICAgICAgICAgICAgICZwZXJfY3B1KHZteF9waV9ibG9ja2luZywg di0+cHJvY2Vzc29yKS5saXN0KTsKKyAgICAgICAgICAgICAgICAgICZwZXJfY3B1KHZteF9waV9i bG9ja2luZywgZGVzdF9jcHUpLmxpc3QpOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUocGlf YmxvY2tpbmdfbGlzdF9sb2NrLCBmbGFncyk7CiAKICAgICBBU1NFUlQoIXBpX3Rlc3Rfc24ocGlf ZGVzYykpOwpAQCAtMTM0LDYgKzE4OCwxMyBAQCBzdGF0aWMgdm9pZCB2bXhfdmNwdV9ibG9jayhz dHJ1Y3QgdmNwdSAqdikKICAgICBBU1NFUlQocGlfZGVzYy0+bmRzdCA9PQogICAgICAgICAgICAo eDJhcGljX2VuYWJsZWQgPyBkZXN0IDogTUFTS19JTlNSKGRlc3QsIFBJX3hBUElDX05EU1RfTUFT SykpKTsKIAorICAgIGlmICggdW5saWtlbHkoZGVzdF9jcHUgIT0gdi0+cHJvY2Vzc29yKSApCisg ICAgeworICAgICAgICBkZXN0ID0gY3B1X3BoeXNpY2FsX2lkKGRlc3RfY3B1KTsKKyAgICAgICAg d3JpdGVfYXRvbWljKCZwaV9kZXNjLT5uZHN0LAorICAgICAgICAgICAgICAgICAoeDJhcGljX2Vu YWJsZWQgPyBkZXN0IDogTUFTS19JTlNSKGRlc3QsIFBJX3hBUElDX05EU1RfTUFTSykpKTsKKyAg ICB9CisKICAgICB3cml0ZV9hdG9taWMoJnBpX2Rlc2MtPm52LCBwaV93YWtldXBfdmVjdG9yKTsK IH0KIApAQCAtMTYzLDYgKzIyNCw3IEBAIHN0YXRpYyB2b2lkIHZteF9waV91bmJsb2NrX3ZjcHUo c3RydWN0IHZjcHUgKnYpCiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBzcGlubG9ja190 ICpwaV9ibG9ja2luZ19saXN0X2xvY2s7CiAgICAgc3RydWN0IHBpX2Rlc2MgKnBpX2Rlc2MgPSAm di0+YXJjaC5odm1fdm14LnBpX2Rlc2M7CisgICAgdW5zaWduZWQgaW50IGRlc3QgPSBjcHVfcGh5 c2ljYWxfaWQodi0+cHJvY2Vzc29yKTsKIAogICAgIC8qCiAgICAgICogU2V0ICdOVicgZmllbGQg YmFjayB0byBwb3N0ZWRfaW50cl92ZWN0b3IsIHNvIHRoZQpAQCAtMTcwLDYgKzIzMiw4IEBAIHN0 YXRpYyB2b2lkIHZteF9waV91bmJsb2NrX3ZjcHUoc3RydWN0IHZjcHUgKnYpCiAgICAgICogaXQg aXMgcnVubmluZyBpbiBub24tcm9vdCBtb2RlLgogICAgICAqLwogICAgIHdyaXRlX2F0b21pYygm cGlfZGVzYy0+bnYsIHBvc3RlZF9pbnRyX3ZlY3Rvcik7CisgICAgd3JpdGVfYXRvbWljKCZwaV9k ZXNjLT5uZHN0LAorICAgICAgICAgICAgICAgICB4MmFwaWNfZW5hYmxlZCA/IGRlc3QgOiBNQVNL X0lOU1IoZGVzdCwgUElfeEFQSUNfTkRTVF9NQVNLKSk7CiAKICAgICBwaV9ibG9ja2luZ19saXN0 X2xvY2sgPSB2LT5hcmNoLmh2bV92bXgucGlfYmxvY2tpbmcubG9jazsKIAotLSAKMS44LjMuMQoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=