From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v3] x86/apicv: Enhance posted-interrupt processing Date: Thu, 2 Mar 2017 09:49:49 +0800 Message-ID: <1488419389-8016-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: 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: yang.zhang.wz@gmail.com, "Xuquan (Quan Xu)" , quan.xu0@gmail.com, Jun Nakajima , Andrew Cooper , Kevin Tian , Jan Beulich , Chao Gao List-Id: xen-devel@lists.xenproject.org X192bXhfZGVsaXZlcl9wb3N0ZWRfaW50ZXJydXB0KCkgd3JvbmdseSB1c2VkIGEgc29mdGlycSBi aXQgdG8gZGVjaWRlIHdoZXRoZXIKdG8gc3VwcHJlc3MgYW4gSVBJLiBJdHMgbG9naWMgd2FzOiB0 aGUgZmlyc3QgdGltZSBhbiBJUEkgd2FzIHNlbnQsIHdlIHNldAp0aGUgc29mdGlycSBiaXQuIE5l eHQgdGltZSwgd2Ugd291bGQgY2hlY2sgdGhhdCBzb2Z0aXJxIGJpdCBiZWZvcmUgc2VuZGluZwph bm90aGVyIElQSS4gSWYgdGhlIDFzdCBJUEkgYXJyaXZlZCBhdCB0aGUgcENQVSB3aGljaCB3YXMg aW4Kbm9uLXJvb3QgbW9kZSwgdGhlIGhhcmR3YXJlIHdvdWxkIGNvbnN1bWUgdGhlIElQSSBhbmQg c3luYyBQSVIgdG8gdklSUi4KRHVyaW5nIHRoZSBwcm9jZXNzLCBubyBvbmUgKGJvdGggaGFyZHdh cmUgYW5kIHNvZnR3YXJlKSB3aWxsIGNsZWFyIHRoZQpzb2Z0aXJxIGJpdC4gQXMgYSByZXN1bHQs IHRoZSBmb2xsb3dpbmcgSVBJIHdvdWxkIGJlIHdyb25nbHkgc3VwcHJlc3NlZC4KClRoaXMgcGF0 Y2ggZGlzY2FyZHMgdGhlIHN1cHByZXNzaW9uIGNoZWNrLCBhbHdheXMgc2VuZGluZyBJUEkuClRo ZSBzb2Z0aXJxIGFsc28gbmVlZCB0byBiZSByYWlzZWQuIEJ1dCB0aGVyZSBpcyBhIGxpdHRsZSBj aGFuZ2UuClRoaXMgcGF0Y2ggbW92ZXMgdGhlIHBsYWNlIHdoZXJlIHdlIHJhaXNlIGEgc29mdGly cSBmb3IKJ2NwdSAhPSBzbXBfcHJvY2Vzc29yX2lkKCknIGNhc2UgdG8gdGhlIElQSSBpbnRlcnJ1 cHQgaGFuZGxlci4KTmFtZWx5LCBkb24ndCByYWlzZSBhIHNvZnRpcnEgZm9yIHRoaXMgY2FzZSBh bmQgc2V0IHRoZSBpbnRlcnJ1cHQgaGFuZGxlcgp0byBwaV9ub3RpZmljYXRpb25faW50ZXJydXB0 KCkoaW4gd2hpY2ggYSBzb2Z0aXJxIGlzIHJhaXNlZCkgcmVnYXJkbGVzcyBvZgpwb3N0ZWQgaW50 ZXJydXB0IGVuYWJsZWQgb3Igbm90LiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHdoZW4gdGhlIElQ SSBhcnJpdmVzCmF0IHRoZSBwQ1BVIHdoaWNoIGlzIGhhcHBlbmVkIGluIG5vbi1yb290IG1vZGUs IHRoZSBwYXRjaCB3aWxsIG5vdCByYWlzZSBhCnVzZWxlc3Mgc29mdGlycSBzaW5jZSB0aGUgSVBJ IGlzIGNvbnN1bWVkIGJ5IGhhcmR3YXJlIHJhdGhlciB0aGFuIHJhaXNlIGEKc29mdGlycSB1bmNv bmRpdGlvbmFsbHkuCgpRdWFuIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggdGltZSB0byB1cHN0cmVhbSB0 aGlzIGZpeCBwYXRjaC4gSGUgYXNrcyBtZSB0byBkbwp0aGlzLiBNZXJnZSBhbm90aGVyIGhpcyBy ZWxhdGVkIHBhdGNoCihodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwv eGVuLWRldmVsLzIwMTctMDIvbXNnMDI4ODUuaHRtbCkuCgpTaWduZWQtb2ZmLWJ5OiBRdWFuIFh1 IDx4dXF1YW44QGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IENoYW8gR2FvIDxjaGFvLmdhb0Bp bnRlbC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgfCA1NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDkg aW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCmluZGV4IDViMTcxN2Qu LjlkYjRiZDAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC0xODQyLDEzICsxODQyLDU5IEBAIHN0YXRpYyB2 b2lkIF9fdm14X2RlbGl2ZXJfcG9zdGVkX2ludGVycnVwdChzdHJ1Y3QgdmNwdSAqdikKICAgICBi b29sX3QgcnVubmluZyA9IHYtPmlzX3J1bm5pbmc7CiAKICAgICB2Y3B1X3VuYmxvY2sodik7Cisg ICAgLyoKKyAgICAgKiBUaGUgdW5kZXJseWluZyAnSUYnIGV4Y2x1ZGVzIHR3byBjYXNlcyB3aGlj aCB3ZSBkb24ndCBuZWVkIGZ1cnRoZXIKKyAgICAgKiBvcGVyYXRpb24gdG8gbWFrZSBzdXJlIHRo ZSB0YXJnZXQgdkNQVSAoQHYpIHdpbGwgc3luYyBQSVIgdG8gdklSUiBBU0FQLgorICAgICAqIFNw ZWNpZmljYWxseSwgdGhlIHR3byBjYXNlcyBhcmU6CisgICAgICogMS4gVGhlIHRhcmdldCB2Q1BV IGlzIG5vdCBydW5uaW5nLCBtZWFuaW5nIGl0IGlzIGJsb2NrZWQgb3IgcnVubmFibGUuCisgICAg ICogU2luY2Ugd2UgaGF2ZSB1bmJsb2NrZWQgdGhlIHRhcmdldCB2Q1BVIGFib3ZlLCB0aGUgdGFy Z2V0IHZDUFUgd2lsbAorICAgICAqIHN5bmMgUElSIHRvIHZJUlIgd2hlbiBpdCBpcyBjaG9zZW4g dG8gcnVuLgorICAgICAqIDIuIFRoZSB0YXJnZXQgdkNQVSBpcyB0aGUgY3VycmVudCB2Q1BVIGFu ZCBpbl9pcnEoKSBpcyBmYWxzZS4gSXQgbWVhbnMKKyAgICAgKiB0aGUgZnVuY3Rpb24gaXMgY2Fs bGVkIGluIG5vbmludGVycnVwdCBjb250ZXh0LiBTaW5jZSB3ZSBkb24ndCBjYWxsCisgICAgICog dGhlIGZ1bmN0aW9uIGluIG5vbmludGVycnVwdCBjb250ZXh0IGFmdGVyIHRoZSBsYXN0IHRpbWUg YSB2Q1BVIHN5bmNzCisgICAgICogUElSIHRvIHZJUlIsIGV4Y2x1ZGluZyB0aGlzIGNhc2UgaXMg YWxzbyBzYWZlLgorICAgICAqLwogICAgIGlmICggcnVubmluZyAmJiAoaW5faXJxKCkgfHwgKHYg IT0gY3VycmVudCkpICkKICAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIE5vdGU6IE9ubHkg dHdvIGNhc2VzIHdpbGwgcmVhY2ggaGVyZToKKyAgICAgICAgICogMS4gVGhlIHRhcmdldCB2Q1BV IGlzIHJ1bm5pbmcgb24gb3RoZXIgcENQVS4KKyAgICAgICAgICogMi4gVGhlIHRhcmdldCB2Q1BV IGlzIHJ1bm5pbmcgb24gdGhlIHNhbWUgcENQVSB3aXRoIHRoZSBjdXJyZW50CisgICAgICAgICAq IHZDUFUgYW5kIHRoZSBjdXJyZW50IHZDUFUgaXMgaW4gaW50ZXJydXB0IGNvbnRleHQuIFRoYXQn cyB0byBzYXksCisgICAgICAgICAqIHRoZSB0YXJnZXQgdkNQVSBpcyB0aGUgY3VycmVudCB2Q1BV LgorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlMjogRG9uJ3Qgd29ycnkgdGhlIHYtPnByb2Nl c3NvciBtYXkgY2hhbmdlIHNpbmNlIGF0IGxlYXN0IHdoZW4KKyAgICAgICAgICogdGhlIHRhcmdl dCB2Q1BVIGlzIGNob3NlbiB0byBydW4gb3IgYmUgYmxvY2tlZCwgdGhlcmUgaXMgYSBjaGFuY2UK KyAgICAgICAgICogdG8gc3luYyBQSVIgdG8gdklSUi4KKyAgICAgICAgICovCiAgICAgICAgIHVu c2lnbmVkIGludCBjcHUgPSB2LT5wcm9jZXNzb3I7CiAKLSAgICAgICAgaWYgKCAhdGVzdF9hbmRf c2V0X2JpdChWQ1BVX0tJQ0tfU09GVElSUSwgJnNvZnRpcnFfcGVuZGluZyhjcHUpKQotICAgICAg ICAgICAgICYmIChjcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKSApCisgICAgICAgIC8qCisgICAg ICAgICAqIEZvciBjYXNlIDEsIHdlIHNlbmQgYSBJUEkgdG8gdGhlIHBDUFUuIFdoZW4gdGhlIElQ SSBhcnJpdmVzLCB0aGUKKyAgICAgICAgICogdGFyZ2V0IHZDUFUgbWF5YmUgaXMgcnVubmluZyBp biBub24tcm9vdCBtb2RlLCBydW5uaW5nIGluIHJvb3QKKyAgICAgICAgICogbW9kZSwgcnVubmFi bGUgb3IgYmxvY2tlZC4gSWYgdGhlIHRhcmdldCB2Q1BVIGlzIHJ1bm5pbmcgaW4KKyAgICAgICAg ICogbm9uLXJvb3QgbW9kZSwgdGhlIGhhcmR3YXJlIHdpbGwgc3luYyBQSVIgdG8gdklSUiBmb3Ig dGhlIElQSQorICAgICAgICAgKiB2ZWN0b3IgaXMgc3BlY2lhbCB0byB0aGUgcENQVS4gSWYgdGhl IHRhcmdldCB2Q1BVIGlzIHJ1bm5pbmcgaW4KKyAgICAgICAgICogcm9vdC1tb2RlLCB0aGUgaW50 ZXJydXB0IGhhbmRsZXIgc3RhcnRzIHRvIHJ1bi4gSW4gb3JkZXIgdG8gbWFrZQorICAgICAgICAg KiBzdXJlIHRoZSB0YXJnZXQgdkNQVSBjb3VsZCBnbyBiYWNrIHRvIHZteF9pbnRyX2Fzc2lzdCgp LCB0aGUKKyAgICAgICAgICogaW50ZXJydXB0IGhhbmRsZXIgc2hvdWxkIHJhaXNlIGEgc29mdGly cSBpZiBubyBwZW5kaW5nIHNvZnRpcnEuCisgICAgICAgICAqIElmIHRoZSB0YXJnZXQgdkNQVSBp cyBydW5uYWJsZSwgaXQgd2lsbCBzeW5jIFBJUiB0byB2SVJSIG5leHQgdGltZQorICAgICAgICAg KiBpdCBpcyBjaG9zZSB0byBydW4uIEluIHRoaXMgY2FzZSwgYSBJUEkgYW5kIGEgc29mdGlycSBp cyBzZW50IHRvCisgICAgICAgICAqIGEgd3JvbmcgdkNQVSB3aGljaCB3ZSB0aGluayBpdCBpcyBu b3QgYSBiaWcgaXNzdWUuIElmIHRoZSB0YXJnZXQKKyAgICAgICAgICogdkNQVSBpcyBibG9ja2Vk LCBzaW5jZSB2Y3B1X2Jsb2NrKCkgY2hlY2tzIHdoZXRoZXIgdGhlcmUgaXMgYW4KKyAgICAgICAg ICogZXZlbnQgdG8gYmUgZGVsaXZlcmVkIHRocm91Z2ggbG9jYWxfZXZlbnRzX25lZWRfZGVsaXZl cnkoKSBqdXN0CisgICAgICAgICAqIGFmdGVyIGJsb2NraW5nLCB0aGUgdkNQVSBtdXN0IGhhdmUg c3luY2VkIFBJUiB0byB2SVJSLiBTaW1pbGFybHksCisgICAgICAgICAqIHRoZXJlIGlzIGEgSVBJ IGFuZCBhIHNvZnRpcnEgc2VudCB0byBhIHdyb25nIHZDUFUuCisgICAgICAgICAqLworICAgICAg ICBpZiAoIGNwdSAhPSBzbXBfcHJvY2Vzc19pZCgpICkKICAgICAgICAgICAgIHNlbmRfSVBJX21h c2soY3B1bWFza19vZihjcHUpLCBwb3N0ZWRfaW50cl92ZWN0b3IpOworICAgICAgICAvKgorICAg ICAgICAgKiBGb3IgY2FzZSAyLCByYWlzaW5nIGEgc29mdGlycSBjYW4gY2F1c2Ugdm14X2ludHJf YXNzaXN0KCkgd2hlcmUgUElSCisgICAgICAgICAqIGhhcyBhIGNoYW5jZSB0byBiZSBzeW5jZWQg dG8gdklSUiB0byBiZSBjYWxsZWQuIEFzIGFuIG9wdGltaXphdGlvbiwKKyAgICAgICAgICogV2Ug b25seSBuZWVkIHRvIHJhaXNlIGEgc29mdGlycSB3aGVuIG5vIHBlbmRpbmcgc29mdGlycS4KKyAg ICAgICAgICovCisgICAgICAgIGVsc2UgaWYgKCAhc29mdGlycV9wZW5kaW5nKGNwdSkgKQorICAg ICAgICAgICAgcmFpc2Vfc29mdGlycShWQ1BVX0tJQ0tfU09GVElSUSk7CiAgICAgfQogfQogCkBA IC0yMjgxLDEzICsyMzI3LDkgQEAgY29uc3Qgc3RydWN0IGh2bV9mdW5jdGlvbl90YWJsZSAqIF9f aW5pdCBzdGFydF92bXgodm9pZCkKIAogICAgIGlmICggY3B1X2hhc192bXhfcG9zdGVkX2ludHJf cHJvY2Vzc2luZyApCiAgICAgeworICAgICAgICBhbGxvY19kaXJlY3RfYXBpY192ZWN0b3IoJnBv c3RlZF9pbnRyX3ZlY3RvciwgcGlfbm90aWZpY2F0aW9uX2ludGVycnVwdCk7CiAgICAgICAgIGlm ICggaW9tbXVfaW50cG9zdCApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGFsbG9jX2RpcmVjdF9h cGljX3ZlY3RvcigmcG9zdGVkX2ludHJfdmVjdG9yLCBwaV9ub3RpZmljYXRpb25faW50ZXJydXB0 KTsKICAgICAgICAgICAgIGFsbG9jX2RpcmVjdF9hcGljX3ZlY3RvcigmcGlfd2FrZXVwX3ZlY3Rv ciwgcGlfd2FrZXVwX2ludGVycnVwdCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAg ICAgICAgYWxsb2NfZGlyZWN0X2FwaWNfdmVjdG9yKCZwb3N0ZWRfaW50cl92ZWN0b3IsIGV2ZW50 X2NoZWNrX2ludGVycnVwdCk7CiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0tIAoxLjguMy4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==