From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v3 8/8] x86/vioapic: allow PVHv2 Dom0 to have more than one IO APIC Date: Wed, 29 Mar 2017 15:47:33 +0100 Message-ID: <20170329144733.4709-7-roger.pau@citrix.com> References: <20170329143918.4445-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ctEtg-0008Qp-8w for xen-devel@lists.xenproject.org; Wed, 29 Mar 2017 14:48:28 +0000 In-Reply-To: <20170329143918.4445-1-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, konrad.wilk@oracle.com, boris.ostrovsky@oracle.com Cc: Andrew Cooper , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VGhlIGJhc2UgYWRkcmVzcywgaWQgYW5kIG51bWJlciBvZiBwaW5zIG9mIHRoZSB2SU8gQVBJQ3Mg ZXhwb3NlZCB0byBQVkh2MiBEb20wCmlzIHRoZSBzYW1lIGFzIHRoZSB2YWx1ZXMgZm91bmQgb24g YmFyZSBtZXRhbC4KClNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj aXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgot LS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIg PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2h2bS9kb20wX2J1 aWxkLmMgfCAzMyArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4 Ni9odm0vaHZtLmMgICAgICAgIHwgIDggKysrKystLS0KIHhlbi9hcmNoL3g4Ni9odm0vdmlvYXBp Yy5jICAgIHwgMjkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDMgZmlsZXMgY2hhbmdl ZCwgNDAgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L2h2bS9kb20wX2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RvbTBfYnVpbGQuYwpp bmRleCBkYWE3OTFkM2Y0Li5kYjliZTg3NjEyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RvbTBfYnVpbGQuYwpAQCAtNjgx LDEyICs2ODEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwdmhfc2V0dXBfYWNwaV9tYWR0KHN0cnVj dCBkb21haW4gKmQsIHBhZGRyX3QgKmFkZHIpCiAgICAgbWF4X3ZjcHVzID0gZG9tMF9tYXhfdmNw dXMoKTsKICAgICAvKiBDYWxjdWxhdGUgdGhlIHNpemUgb2YgdGhlIGNyYWZ0ZWQgTUFEVC4gKi8K ICAgICBzaXplID0gc2l6ZW9mKCptYWR0KTsKLSAgICAvKgotICAgICAqIEZJWE1FOiB0aGUgY3Vy cmVudCB2SU8tQVBJQyBjb2RlIGp1c3Qgc3VwcG9ydHMgb25lIElPLUFQSUMgaW5zdGFuY2UKLSAg ICAgKiBwZXIgZG9tYWluLiBUaGlzIG11c3QgYmUgZml4ZWQgaW4gb3JkZXIgdG8gcHJvdmlkZSB0 aGUgc2FtZSBhbW91bnQgb2YKLSAgICAgKiBJTyBBUElDcyBhcyBhdmFpbGFibGUgb24gYmFyZSBt ZXRhbC4KLSAgICAgKi8KLSAgICBzaXplICs9IHNpemVvZigqaW9fYXBpYyk7CisgICAgc2l6ZSAr PSBzaXplb2YoKmlvX2FwaWMpICogbnJfaW9hcGljczsKICAgICBzaXplICs9IHNpemVvZigqaW50 c3Jjb3ZyKSAqIGFjcGlfaW50cl9vdmVycmlkZXM7CiAgICAgc2l6ZSArPSBzaXplb2YoKm5taXNy YykgKiBhY3BpX25taV9zb3VyY2VzOwogICAgIHNpemUgKz0gc2l6ZW9mKCp4MmFwaWMpICogbWF4 X3ZjcHVzOwpAQCAtNzE2LDIzICs3MTEsMTkgQEAgc3RhdGljIGludCBfX2luaXQgcHZoX3NldHVw X2FjcGlfbWFkdChzdHJ1Y3QgZG9tYWluICpkLCBwYWRkcl90ICphZGRyKQogICAgICAqLwogICAg IG1hZHQtPmhlYWRlci5yZXZpc2lvbiA9IG1pbl90KHVuc2lnbmVkIGNoYXIsIHRhYmxlLT5yZXZp c2lvbiwgNCk7CiAKLSAgICAvKgotICAgICAqIFNldHVwIHRoZSBJTyBBUElDIGVudHJ5LgotICAg ICAqIEZJWE1FOiB0aGUgY3VycmVudCB2SU8tQVBJQyBjb2RlIGp1c3Qgc3VwcG9ydHMgb25lIElP LUFQSUMgaW5zdGFuY2UKLSAgICAgKiBwZXIgZG9tYWluLiBUaGlzIG11c3QgYmUgZml4ZWQgaW4g b3JkZXIgdG8gcHJvdmlkZSB0aGUgc2FtZSBhbW91bnQgb2YKLSAgICAgKiBJTyBBUElDcyBhcyBh dmFpbGFibGUgb24gYmFyZSBtZXRhbCwgYW5kIHdpdGggdGhlIHNhbWUgSURzIGFzIGZvdW5kIGlu Ci0gICAgICogdGhlIG5hdGl2ZSBJTyBBUElDIE1BRFQgZW50cmllcy4KLSAgICAgKi8KLSAgICBp ZiAoIG5yX2lvYXBpY3MgPiAxICkKLSAgICAgICAgcHJpbnRrKCJXQVJOSU5HOiBmb3VuZCAlZCBJ TyBBUElDcywgRG9tMCB3aWxsIG9ubHkgaGF2ZSBhY2Nlc3MgdG8gMSBlbXVsYXRlZCBJTyBBUElD XG4iLAotICAgICAgICAgICAgICAgbnJfaW9hcGljcyk7CisgICAgLyogU2V0dXAgdGhlIElPIEFQ SUMgZW50cmllcy4gKi8KICAgICBpb19hcGljID0gKHZvaWQgKikobWFkdCArIDEpOwotICAgIGlv X2FwaWMtPmhlYWRlci50eXBlID0gQUNQSV9NQURUX1RZUEVfSU9fQVBJQzsKLSAgICBpb19hcGlj LT5oZWFkZXIubGVuZ3RoID0gc2l6ZW9mKCppb19hcGljKTsKLSAgICBpb19hcGljLT5pZCA9IGRv bWFpbl92aW9hcGljKGQsIDApLT5pZDsKLSAgICBpb19hcGljLT5hZGRyZXNzID0gVklPQVBJQ19E RUZBVUxUX0JBU0VfQUREUkVTUzsKKyAgICBmb3IgKCBpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkr KyApCisgICAgeworICAgICAgICBpb19hcGljLT5oZWFkZXIudHlwZSA9IEFDUElfTUFEVF9UWVBF X0lPX0FQSUM7CisgICAgICAgIGlvX2FwaWMtPmhlYWRlci5sZW5ndGggPSBzaXplb2YoKmlvX2Fw aWMpOworICAgICAgICBpb19hcGljLT5pZCA9IGRvbWFpbl92aW9hcGljKGQsIGkpLT5pZDsKKyAg ICAgICAgaW9fYXBpYy0+YWRkcmVzcyA9IGRvbWFpbl92aW9hcGljKGQsIGkpLT5iYXNlX2FkZHJl c3M7CisgICAgICAgIGlvX2FwaWMtPmdsb2JhbF9pcnFfYmFzZSA9IGlvX2FwaWNfZ3NpX2Jhc2Uo aSk7CisgICAgICAgIGlvX2FwaWMrKzsKKyAgICB9CiAKLSAgICB4MmFwaWMgPSAodm9pZCAqKShp b19hcGljICsgMSk7CisgICAgeDJhcGljID0gKHZvaWQgKilpb19hcGljOwogICAgIGZvciAoIGkg PSAwOyBpIDwgbWF4X3ZjcHVzOyBpKysgKQogICAgIHsKICAgICAgICAgeDJhcGljLT5oZWFkZXIu dHlwZSA9IEFDUElfTUFEVF9UWVBFX0xPQ0FMX1gyQVBJQzsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDZjM2M5NDRhYmQu LjlhOTczMmIzMDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVu L2FyY2gveDg2L2h2bS9odm0uYwpAQCAtNTk1LDYgKzU5NSw3IEBAIHN0YXRpYyBpbnQgaHZtX3By aW50X2xpbmUoCiAKIGludCBodm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCkK IHsKKyAgICB1bnNpZ25lZCBpbnQgbnJfZ3NpczsKICAgICBpbnQgcmM7CiAKICAgICBpZiAoICFo dm1fZW5hYmxlZCApCkBAIC02MTYsMTkgKzYxNywyMCBAQCBpbnQgaHZtX2RvbWFpbl9pbml0aWFs aXNlKHN0cnVjdCBkb21haW4gKmQpCiAgICAgaWYgKCByYyAhPSAwICkKICAgICAgICAgZ290byBm YWlsMDsKIAorICAgIG5yX2dzaXMgPSBpc19oYXJkd2FyZV9kb21haW4oZCkgPyBucl9pcnFzX2dz aSA6IE5SX0hWTV9ET01VX0lSUVM7CiAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBsX3RpbWUgPSB4 emFsbG9jKHN0cnVjdCBwbF90aW1lKTsKICAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zID0g eHphbGxvY19hcnJheSh1aW50NjRfdCwgSFZNX05SX1BBUkFNUyk7CiAgICAgZC0+YXJjaC5odm1f ZG9tYWluLmlvX2hhbmRsZXIgPSB4emFsbG9jX2FycmF5KHN0cnVjdCBodm1faW9faGFuZGxlciwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlJfSU9f SEFORExFUlMpOwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi5pcnEgPSB4emFsbG9jX2J5dGVzKGh2 bV9pcnFfc2l6ZShOUl9IVk1fRE9NVV9JUlFTKSk7CisgICAgZC0+YXJjaC5odm1fZG9tYWluLmly cSA9IHh6YWxsb2NfYnl0ZXMoaHZtX2lycV9zaXplKG5yX2dzaXMpKTsKIAogICAgIHJjID0gLUVO T01FTTsKICAgICBpZiAoICFkLT5hcmNoLmh2bV9kb21haW4ucGxfdGltZSB8fCAhZC0+YXJjaC5o dm1fZG9tYWluLmlycSB8fAogICAgICAgICAgIWQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXMgIHx8 ICFkLT5hcmNoLmh2bV9kb21haW4uaW9faGFuZGxlciApCiAgICAgICAgIGdvdG8gZmFpbDE7CiAK LSAgICAvKiBTZXQgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIEdTSXMgKi8KLSAgICBodm1fZG9tYWlu X2lycShkKS0+bnJfZ3NpcyA9IE5SX0hWTV9ET01VX0lSUVM7CisgICAgLyogU2V0IHRoZSBudW1i ZXIgb2YgR1NJcyAqLworICAgIGh2bV9kb21haW5faXJxKGQpLT5ucl9nc2lzID0gbnJfZ3NpczsK IAogICAgIEJVSUxEX0JVR19PTihOUl9IVk1fRE9NVV9JUlFTIDwgTlJfSVNBSVJRUyk7CiAgICAg QVNTRVJUKGh2bV9kb21haW5faXJxKGQpLT5ucl9nc2lzID49IE5SX0lTQUlSUVMpOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMgYi94ZW4vYXJjaC94ODYvaHZtL3Zpb2Fw aWMuYwppbmRleCA5OTBhZDcwN2VjLi4wMmFlNThiYTVmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL3Zpb2FwaWMuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3Zpb2FwaWMuYwpAQCAtNTM0 LDEwICs1MzQsMjAgQEAgdm9pZCB2aW9hcGljX3Jlc2V0KHN0cnVjdCBkb21haW4gKmQpCiAgICAg ICAgIG1lbXNldCh2aW9hcGljLCAwLCBodm1fdmlvYXBpY19zaXplKG5yX3BpbnMpKTsKICAgICAg ICAgZm9yICggaiA9IDA7IGogPCBucl9waW5zOyBqKysgKQogICAgICAgICAgICAgdmlvYXBpYy0+ cmVkaXJ0Ymxbal0uZmllbGRzLm1hc2sgPSAxOwotICAgICAgICBBU1NFUlQoIWkpOwotICAgICAg ICB2aW9hcGljLT5iYXNlX2FkZHJlc3MgPSBWSU9BUElDX0RFRkFVTFRfQkFTRV9BRERSRVNTICsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVklPQVBJQ19NRU1fTEVOR1RIICogaTsK LSAgICAgICAgdmlvYXBpYy0+aWQgPSBpOworCisgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2Rv bWFpbihkKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCghaSk7CisgICAgICAgICAg ICB2aW9hcGljLT5iYXNlX2FkZHJlc3MgPSBWSU9BUElDX0RFRkFVTFRfQkFTRV9BRERSRVNTICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZJT0FQSUNfTUVNX0xFTkdUSCAq IGk7CisgICAgICAgICAgICB2aW9hcGljLT5pZCA9IGk7CisgICAgICAgIH0KKyAgICAgICAgZWxz ZQorICAgICAgICB7CisgICAgICAgICAgICB2aW9hcGljLT5iYXNlX2FkZHJlc3MgPSBtcF9pb2Fw aWNzW2ldLm1wY19hcGljYWRkcjsKKyAgICAgICAgICAgIHZpb2FwaWMtPmlkID0gbXBfaW9hcGlj c1tpXS5tcGNfYXBpY2lkOworICAgICAgICB9CisKICAgICAgICAgdmlvYXBpYy0+bnJfcGlucyA9 IG5yX3BpbnM7CiAgICAgICAgIHZpb2FwaWMtPmRvbWFpbiA9IGQ7CiAgICAgfQpAQCAtNTU0LDgg KzU2NCw3IEBAIHN0YXRpYyB2b2lkIHZpb2FwaWNfZnJlZShjb25zdCBzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBpbnQgbnJfdmlvYXBpY3MpCiAKIGludCB2aW9hcGljX2luaXQoc3RydWN0IGRv bWFpbiAqZCkKIHsKLSAgICB1bnNpZ25lZCBpbnQgaSwgbnJfdmlvYXBpY3MgPSAxOwotICAgIHVu c2lnbmVkIGludCBucl9waW5zID0gQVJSQVlfU0laRShkb21haW5fdmlvYXBpYyhkLCAwKS0+ZG9t VS5yZWRpcnRibCk7CisgICAgdW5zaWduZWQgaW50IGksIG5yX3Zpb2FwaWNzLCBucl9nc2lzID0g MDsKIAogICAgIGlmICggIWhhc192aW9hcGljKGQpICkKICAgICB7CkBAIC01NjMsNiArNTcyLDgg QEAgaW50IHZpb2FwaWNfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICByZXR1cm4gMDsK ICAgICB9CiAKKyAgICBucl92aW9hcGljcyA9IGlzX2hhcmR3YXJlX2RvbWFpbihkKSA/IG5yX2lv YXBpY3MgOiAxOworCiAgICAgaWYgKCAoZC0+YXJjaC5odm1fZG9tYWluLnZpb2FwaWMgPT0gTlVM TCkgJiYKICAgICAgICAgICgoZC0+YXJjaC5odm1fZG9tYWluLnZpb2FwaWMgPQogICAgICAgICAg ICB4emFsbG9jX2FycmF5KHN0cnVjdCBodm1fdmlvYXBpYyAqLCBucl92aW9hcGljcykpID09IE5V TEwpICkKQEAgLTU3MCw2ICs1ODEsOSBAQCBpbnQgdmlvYXBpY19pbml0KHN0cnVjdCBkb21haW4g KmQpCiAKICAgICBmb3IgKCBpID0gMDsgaSA8IG5yX3Zpb2FwaWNzOyBpKysgKQogICAgIHsKKyAg ICAgICAgdW5zaWduZWQgaW50IG5yX3BpbnMgPSBpc19oYXJkd2FyZV9kb21haW4oZCkgPyBucl9p b2FwaWNfZW50cmllc1tpXSA6CisgICAgICAgICAgICBBUlJBWV9TSVpFKGRvbWFpbl92aW9hcGlj KGQsIDApLT5kb21VLnJlZGlydGJsKTsKKwogICAgICAgICBpZiAoIChkb21haW5fdmlvYXBpYyhk LCBpKSA9CiAgICAgICAgICAgICAgIHhtYWxsb2NfYnl0ZXMoaHZtX3Zpb2FwaWNfc2l6ZShucl9w aW5zKSkpID09IE5VTEwgKQogICAgICAgICB7CkBAIC01NzcsOCArNTkxLDExIEBAIGludCB2aW9h cGljX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwog ICAgICAgICB9CiAgICAgICAgIGRvbWFpbl92aW9hcGljKGQsIGkpLT5ucl9waW5zID0gbnJfcGlu czsKKyAgICAgICAgbnJfZ3NpcyArPSBucl9waW5zOwogICAgIH0KIAorICAgIEFTU0VSVChodm1f ZG9tYWluX2lycShkKS0+bnJfZ3NpcyA9PSBucl9nc2lzKTsKKwogICAgIGQtPmFyY2guaHZtX2Rv bWFpbi5ucl92aW9hcGljcyA9IG5yX3Zpb2FwaWNzOwogICAgIHZpb2FwaWNfcmVzZXQoZCk7CiAK LS0gCjIuMTEuMCAoQXBwbGUgR2l0LTgxKQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=