From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH RFC v1 33/74] x86/guest: enable event channels upcalls Date: Thu, 4 Jan 2018 13:05:44 +0000 Message-ID: <20180104130625.28605-34-wei.liu2@citrix.com> References: <20180104130625.28605-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eX5ZR-0003hA-V6 for xen-devel@lists.xenproject.org; Thu, 04 Jan 2018 13:28:33 +0000 In-Reply-To: <20180104130625.28605-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org RnJvbTogU2VyZ2V5IER5YXNsaSA8c2VyZ2V5LmR5YXNsaUBjaXRyaXguY29tPgoKU2lnbmVkLW9m Zi1ieTogU2VyZ2V5IER5YXNsaSA8c2VyZ2V5LmR5YXNsaUBjaXRyaXguY29tPgpTaWduZWQtb2Zm LWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KIHhlbi9h cmNoL3g4Ni9ndWVzdC94ZW4uYyAgICAgICAgICAgICAgfCA3NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L3NtcGJvb3QuYyAgICAgICAgICAgICAgICB8 ICA0ICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L2h5cGVyY2FsbC5oIHwgMTcgKysrKysr KysKIHhlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3QveGVuLmggICAgICAgfCAgNSArKysKIDQgZmls ZXMgY2hhbmdlZCwgMTAwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv Z3Vlc3QveGVuLmMgYi94ZW4vYXJjaC94ODYvZ3Vlc3QveGVuLmMKaW5kZXggNTk0ZWFlMDgyOC4u NzgxYmZhNDkzYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2d1ZXN0L3hlbi5jCisrKyBiL3hl bi9hcmNoL3g4Ni9ndWVzdC94ZW4uYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPHhlbi9p bml0Lmg+CiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CiAKKyNpbmNsdWRlIDxhc20vYXBpYy5oPgog I2luY2x1ZGUgPGFzbS9ndWVzdC5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KICNpbmNsdWRlIDxh c20vcHJvY2Vzc29yLmg+CkBAIC0zMCw2ICszMSw3IEBACiBib29sIHhlbl9ndWVzdDsKIAogc3Rh dGljIHVpbnQzMl90IHhlbl9jcHVpZF9iYXNlOworc3RhdGljIHVpbnQ4X3QgZXZ0Y2huX3VwY2Fs bF92ZWN0b3I7CiBleHRlcm4gY2hhciBoeXBlcmNhbGxfcGFnZVtdOwogCiBzdGF0aWMgdm9pZCBf X2luaXQgZmluZF94ZW5fbGVhdmVzKHZvaWQpCkBAIC05MSw5ICs5Myw4MSBAQCBzdGF0aWMgdm9p ZCBtYXBfc2hhcmVkX2luZm8oc3RydWN0IGU4MjBtYXAgKmU4MjApCiAgICAgc2V0X2ZpeG1hcChG SVhfWEVOX1NIQVJFRF9JTkZPLCBmcmFtZSk7CiB9CiAKK3N0YXRpYyB2b2lkIHhlbl9ldnRjaG5f dXBjYWxsKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQoreworICAgIHVuc2lnbmVkIGludCBj cHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisgICAgc3RydWN0IHZjcHVfaW5mbyAqdmNwdV9pbmZv ID0gJlhFTl9zaGFyZWRfaW5mby0+dmNwdV9pbmZvW2NwdV07CisKKyAgICB2Y3B1X2luZm8tPmV2 dGNobl91cGNhbGxfcGVuZGluZyA9IDA7CisgICAgeGNoZygmdmNwdV9pbmZvLT5ldnRjaG5fcGVu ZGluZ19zZWwsIDApOworCisgICAgYWNrX0FQSUNfaXJxKCk7Cit9CisKK3N0YXRpYyB2b2lkIGFw X3NldHVwX2V2ZW50X2NoYW5uZWxzKGJvb2wgY2xlYXIpCit7CisgICAgdW5zaWduZWQgaW50IGks IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgdmNwdV9pbmZvICp2Y3B1X2lu Zm8gPSAmWEVOX3NoYXJlZF9pbmZvLT52Y3B1X2luZm9bY3B1XTsKKyAgICBpbnQgcmM7CisKKyAg ICBBU1NFUlQoZXZ0Y2huX3VwY2FsbF92ZWN0b3IpOworICAgIEFTU0VSVChjcHUgPCBBUlJBWV9T SVpFKFhFTl9zaGFyZWRfaW5mby0+dmNwdV9pbmZvKSk7CisKKyAgICBpZiAoICFjbGVhciApCisg ICAgeworICAgICAgICAvKgorICAgICAgICAgKiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUg dGhhdCBhIENQVSB3aWxsIGJlIGludGVycnVwdGVkIGluIGNhc2UKKyAgICAgICAgICogb2YgYW4g ZXZlbnQgY2hhbm5lbCBub3RpZmljYXRpb24uCisgICAgICAgICAqLworICAgICAgICBBU1NFUlQo dmNwdV9pbmZvLT5ldnRjaG5fdXBjYWxsX3BlbmRpbmcgPT0gMCk7CisgICAgICAgIEFTU0VSVCh2 Y3B1X2luZm8tPmV2dGNobl9wZW5kaW5nX3NlbCA9PSAwKTsKKyAgICB9CisKKyAgICByYyA9IHhl bl9oeXBlcmNhbGxfc2V0X2V2dGNobl91cGNhbGxfdmVjdG9yKGNwdSwgZXZ0Y2huX3VwY2FsbF92 ZWN0b3IpOworICAgIGlmICggcmMgKQorICAgICAgICBwYW5pYygiVW5hYmxlIHRvIHNldCBldnRj aG4gdXBjYWxsIHZlY3RvcjogJWQiLCByYyk7CisKKyAgICBpZiAoIGNsZWFyICkKKyAgICB7Cisg ICAgICAgIC8qCisgICAgICAgICAqIENsZWFyIGFueSBwZW5kaW5nIHVwY2FsbCBiaXRzLiBUaGlz IG1ha2VzIHVzIGVmZmVjdGl2ZWx5IGlnbm9yZSBhbnkKKyAgICAgICAgICogcHJldmlvdXMgdXBj YWxscyB3aGljaCBtaWdodCBiZSBzdWJvcHRpbWFsLgorICAgICAgICAgKi8KKyAgICAgICAgdmNw dV9pbmZvLT5ldnRjaG5fdXBjYWxsX3BlbmRpbmcgPSAwOworICAgICAgICB4Y2hnKCZ2Y3B1X2lu Zm8tPmV2dGNobl9wZW5kaW5nX3NlbCwgMCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogZXZ0 Y2huX3BlbmRpbmcgY2FuIGJlIGNsZWFyZWQgb25seSBvbiB0aGUgYm9vdCBDUFUgYmVjYXVzZSBp dCdzCisgICAgICAgICAqIGxvY2F0ZWQgaW4gYSBzaGFyZWQgc3RydWN0dXJlLgorICAgICAgICAg Ki8KKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCA4OyBpKysgKQorICAgICAgICAgICAgeGNoZygm WEVOX3NoYXJlZF9pbmZvLT5ldnRjaG5fcGVuZGluZ1tpXSwgMCk7CisgICAgfQorfQorCitzdGF0 aWMgdm9pZCBfX2luaXQgaW5pdF9ldnRjaG4odm9pZCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsK KworICAgIGFsbG9jX2RpcmVjdF9hcGljX3ZlY3RvcigmZXZ0Y2huX3VwY2FsbF92ZWN0b3IsIHhl bl9ldnRjaG5fdXBjYWxsKTsKKworICAgIC8qIE1hc2sgYWxsIHVwY2FsbHMgKi8KKyAgICBmb3Ig KCBpID0gMDsgaSA8IDg7IGkrKyApCisgICAgICAgIHhjaGcoJlhFTl9zaGFyZWRfaW5mby0+ZXZ0 Y2huX21hc2tbaV0sIH4wdWwpOworCisgICAgYXBfc2V0dXBfZXZlbnRfY2hhbm5lbHModHJ1ZSk7 Cit9CisKIHZvaWQgX19pbml0IGh5cGVydmlzb3JfZWFybHlfc2V0dXAoc3RydWN0IGU4MjBtYXAg KmU4MjApCiB7CiAgICAgbWFwX3NoYXJlZF9pbmZvKGU4MjApOworCisgICAgaW5pdF9ldnRjaG4o KTsKK30KKwordm9pZCBoeXBlcnZpc29yX2FwX3NldHVwKHZvaWQpCit7CisgICAgYXBfc2V0dXBf ZXZlbnRfY2hhbm5lbHMoZmFsc2UpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3NtcGJvb3QuYyBiL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKaW5kZXggN2I5N2ZmODZjYi4uOWE5 ZmJjNmVlMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NtcGJvb3QuYworKysgYi94ZW4vYXJj aC94ODYvc21wYm9vdC5jCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8bWFjaF9hcGljLmg+ CiAjaW5jbHVkZSA8bWFjaF93YWtlY3B1Lmg+CiAjaW5jbHVkZSA8c21wYm9vdF9ob29rcy5oPgor I2luY2x1ZGUgPGFzbS9ndWVzdC5oPgogCiAvKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFn ZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KICN1bmRlZiBtZm5fdG9fcGFnZQpA QCAtMzcyLDYgKzM3Myw5IEBAIHZvaWQgc3RhcnRfc2Vjb25kYXJ5KHZvaWQgKnVudXNlZCkKICAg ICBjcHVtYXNrX3NldF9jcHUoY3B1LCAmY3B1X29ubGluZV9tYXApOwogICAgIHVubG9ja192ZWN0 b3JfbG9jaygpOwogCisgICAgaWYgKCB4ZW5fZ3Vlc3QgKQorICAgICAgICBoeXBlcnZpc29yX2Fw X3NldHVwKCk7CisKICAgICAvKiBXZSBjYW4gdGFrZSBpbnRlcnJ1cHRzIG5vdzogd2UncmUgb2Zm aWNpYWxseSAidXAiLiAqLwogICAgIGxvY2FsX2lycV9lbmFibGUoKTsKICAgICBtdHJyX2FwX2lu aXQoKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3QvaHlwZXJjYWxsLmgg Yi94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L2h5cGVyY2FsbC5oCmluZGV4IGQ1ZmU1MzVjMDMu LmQ2ZDRkMTk0NmIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3QvaHlwZXJj YWxsLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC9oeXBlcmNhbGwuaApAQCAtMjMs NiArMjMsNyBAQAogCiAjaW5jbHVkZSA8cHVibGljL3hlbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9z Y2hlZC5oPgorI2luY2x1ZGUgPHB1YmxpYy9odm0vaHZtX29wLmg+CiAKICNpZmRlZiBDT05GSUdf WEVOX0dVRVNUCiAKQEAgLTk2LDYgKzk3LDExIEBAIHN0YXRpYyBpbmxpbmUgbG9uZyB4ZW5faHlw ZXJjYWxsX21lbW9yeV9vcCh1bnNpZ25lZCBpbnQgY21kLCB2b2lkICphcmcpCiAgICAgcmV0dXJu IF9oeXBlcmNhbGw2NF8yKGxvbmcsIF9fSFlQRVJWSVNPUl9tZW1vcnlfb3AsIGNtZCwgYXJnKTsK IH0KIAorc3RhdGljIGlubGluZSBsb25nIHhlbl9oeXBlcmNhbGxfaHZtX29wKHVuc2lnbmVkIGlu dCBvcCwgdm9pZCAqYXJnKQoreworICAgIHJldHVybiBfaHlwZXJjYWxsNjRfMihsb25nLCBfX0hZ UEVSVklTT1JfaHZtX29wLCBvcCwgYXJnKTsKK30KKwogLyoKICAqIEhpZ2hlciBsZXZlbCBoeXBl cmNhbGwgaGVscGVycwogICovCkBAIC0xMTEsNiArMTE3LDE3IEBAIHN0YXRpYyBpbmxpbmUgbG9u ZyB4ZW5faHlwZXJjYWxsX3NodXRkb3duKHVuc2lnbmVkIGludCByZWFzb24pCiAgICAgcmV0dXJu IHhlbl9oeXBlcmNhbGxfc2NoZWRfb3AoU0NIRURPUF9zaHV0ZG93biwgJnJlYXNvbik7CiB9CiAK K3N0YXRpYyBpbmxpbmUgbG9uZyB4ZW5faHlwZXJjYWxsX3NldF9ldnRjaG5fdXBjYWxsX3ZlY3Rv cigKKyAgICB1bnNpZ25lZCBpbnQgY3B1LCB1bnNpZ25lZCBpbnQgdmVjdG9yKQoreworICAgIHN0 cnVjdCB4ZW5faHZtX2V2dGNobl91cGNhbGxfdmVjdG9yIGEgPSB7CisgICAgICAgIC52Y3B1ID0g Y3B1LAorICAgICAgICAudmVjdG9yID0gdmVjdG9yLAorICAgIH07CisKKyAgICByZXR1cm4geGVu X2h5cGVyY2FsbF9odm1fb3AoSFZNT1Bfc2V0X2V2dGNobl91cGNhbGxfdmVjdG9yLCAmYSk7Cit9 CisKICNlbHNlIC8qIENPTkZJR19YRU5fR1VFU1QgKi8KIAogc3RhdGljIGlubGluZSB2b2lkIHhl bl9oeXBlcmNhbGxfY29uc29sZV93cml0ZSgKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvZ3Vlc3QveGVuLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0L3hlbi5oCmluZGV4IDJm M2JjZDJmZTQuLjU2Y2FiYjE5MzQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vl c3QveGVuLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdC94ZW4uaApAQCAtMzIsNiAr MzIsNyBAQCBleHRlcm4gYm9vbCB4ZW5fZ3Vlc3Q7CiAKIHZvaWQgcHJvYmVfaHlwZXJ2aXNvcih2 b2lkKTsKIHZvaWQgaHlwZXJ2aXNvcl9lYXJseV9zZXR1cChzdHJ1Y3QgZTgyMG1hcCAqZTgyMCk7 Cit2b2lkIGh5cGVydmlzb3JfYXBfc2V0dXAodm9pZCk7CiAKICNlbHNlCiAKQEAgLTQyLDYgKzQz LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBoeXBlcnZpc29yX2Vhcmx5X3NldHVwKHN0cnVjdCBl ODIwbWFwICplODIwKQogewogICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwogfTsKK3N0YXRpYyBp bmxpbmUgdm9pZCBoeXBlcnZpc29yX2FwX3NldHVwKHZvaWQpCit7CisgICAgQVNTRVJUX1VOUkVB Q0hBQkxFKCk7Cit9OwogCiAjZW5kaWYgLyogQ09ORklHX1hFTl9HVUVTVCAqLwogI2VuZGlmIC8q IF9fWDg2X0dVRVNUX1hFTl9IX18gKi8KLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=