From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH] vlapic/viridian: abort existing APIC assist if any vector is pending in ISR Date: Tue, 7 Mar 2017 14:58:04 +0000 Message-ID: <1488898684-8105-1-git-send-email-paul.durrant@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 1clGYz-0007xT-Sd for xen-devel@lists.xenproject.org; Tue, 07 Mar 2017 14:58:09 +0000 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 Cc: Andrew Cooper , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIHZsYXBpYyBjb2RlIGFscmVhZHkgYWJvcnRzIGFuIEFQSUMgYXNzaXN0IGlmIGFuIGludGVy cnVwdCBpcyBkZWZlcnJlZApiZWNhdXNlIGEgaGlnaGVyIHByaW9yaXR5IGludGVycnVwdCBoYXMg YWxyZWFkeSBiZWVuIGRlbGl2ZXJlZCAoYW5kIGhlbmNlCml0cyB2ZWN0b3IgaXMgcGVuZGluZyBp biB0aGUgSVNSKS4KCkhvd2V2ZXIsIGl0IGlzIGFsc28gbmVjZXNzYXJ5IHRvIGFib3J0IGFuIEFQ SUMgYXNzaXN0IGluIHRoZSBjYXNlIHdoZXJlIGEKaGlnaGVyIHByaW9yaXR5IGlzIGFib3V0IHRv IGJlIGRlbGl2ZXJlZCBiZWNhdXNlLCBpbiBlaXRoZXIgY2FzZSwgYXQgbGVhc3QKdHdvIHZlY3Rv cnMgd2lsbCBiZSBwZW5kaW5nIGluIHRoZSBJU1IgYW5kIGhlbmNlIGFuIEVPSSBpcyBuZWNlc3Nh cnkuCgpBbHNvLCBmb2xsb3dpbmcgb24gZnJvbSB0aGUgYWJvdmUgcmVhc29uaW5nLCB0aGUgZGVj aXNpb24gdG8gc3RhcnQgYSBuZXcKQVBJQyBhc3Npc3Qgc2hvdWxkIGNsZWFybHkgYmUgYmFzZWQg dXBvbiB3aGV0aGVyIGFueSBvdGhlciB2ZWN0b3IgaXMKcGVuZGluZyBpbiB0aGUgSVNSLCByZWdh cmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgbG93ZXIgb3IgaGlnaGVyIGluCnByaW9yaXR5LiAoSW4g ZmFjdCB0aGUgY29kZSBpbiBxdWVzdGlvbiBjYW5ub3QgYmUgcmVhY2hlZCBpZiB0aGUKdmVjdG9y IGlzIGxvd2VyIGluIHByaW9yaXR5KS4gVGh1cyB0aGUgc2luZ2xlIHVzZSBvZgp2bGFwaWNfZmlu ZF9sb3dlc3RfdmVjdG9yKCkgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBjYWxsIHRvCnZsYXBpY19m aW5kX2hpZ2hlc3RfaXNyKCkgYW5kIHRoZSBmb3JtZXIgZnVuY3Rpb24gcmVtb3ZlZC4KCldpdGhv dXQgdGhpcyBwYXRjaCwgYmVjYXVzZSB0aGUgbG9naWMgaXMgZmxhd2VkLCBhIGRvbWFpbl9jcmFz aCgpIHJlc3VsdHMKd2hlbiBhbiBhdHRlbXB0IGlzIG1hZGUgdG8gZXJyb25lb3VzbHkgc3RhcnQg YSBuZXcgQVBJQyBhc3Npc3QuCgpSZXBvcnRlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNv b3BlcjNAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJh bnRAY2l0cml4LmNvbT4KLS0tCkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KIHhlbi9hcmNo L3g4Ni9odm0vdmxhcGljLmMgfCA1NCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDM1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMgYi94ZW4vYXJj aC94ODYvaHZtL3ZsYXBpYy5jCmluZGV4IDNmYTM3MjcuLjE0MzU2YTcgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vdmxhcGljLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYwpA QCAtOTUsMTkgKzk1LDYgQEAgc3RhdGljIGludCB2bGFwaWNfZmluZF9oaWdoZXN0X3ZlY3Rvcihj b25zdCB2b2lkICpiaXRtYXApCiAgICAgcmV0dXJuIChmbHMod29yZFt3b3JkX29mZnNldCo0XSkg LSAxKSArICh3b3JkX29mZnNldCAqIDMyKTsKIH0KIAotc3RhdGljIGludCB2bGFwaWNfZmluZF9s b3dlc3RfdmVjdG9yKGNvbnN0IHZvaWQgKmJpdG1hcCkKLXsKLSAgICBjb25zdCB1aW50MzJfdCAq d29yZCA9IGJpdG1hcDsKLSAgICB1bnNpZ25lZCBpbnQgd29yZF9vZmZzZXQ7Ci0KLSAgICAvKiBX b3JrIGZvcndhcmRzIHRocm91Z2ggdGhlIGJpdG1hcCAoZmlyc3QgMzItYml0IHdvcmQgaW4gZXZl cnkgZm91cikuICovCi0gICAgZm9yICggd29yZF9vZmZzZXQgPSAwOyB3b3JkX29mZnNldCA8IE5S X1ZFQ1RPUlMgLyAzMjsgd29yZF9vZmZzZXQrKykKLSAgICAgICAgaWYgKCB3b3JkW3dvcmRfb2Zm c2V0ICogNF0gKQotICAgICAgICAgICAgcmV0dXJuIChmZnMod29yZFt3b3JkX29mZnNldCAqIDRd KSAtIDEpICsgKHdvcmRfb2Zmc2V0ICogMzIpOwotCi0gICAgcmV0dXJuIC0xOwotfQotCiAvKgog ICogSVJSLXNwZWNpZmljIGJpdG1hcCB1cGRhdGUgJiBzZWFyY2ggcm91dGluZXMuCiAgKi8KQEAg LTEyMDEsMTkgKzExODgsMTcgQEAgaW50IHZsYXBpY19oYXNfcGVuZGluZ19pcnEoc3RydWN0IHZj cHUgKnYpCiAgICAgICAgIHZsYXBpY19jbGVhcl92ZWN0b3IodmVjdG9yLCAmdmxhcGljLT5yZWdz LT5kYXRhW0FQSUNfSVNSXSk7CiAKICAgICBpc3IgPSB2bGFwaWNfZmluZF9oaWdoZXN0X2lzcih2 bGFwaWMpOwotICAgIGlzciA9IChpc3IgIT0gLTEpID8gaXNyIDogMDsKLSAgICBpZiAoIChpc3Ig JiAweGYwKSA+PSAoaXJyICYgMHhmMCkgKQotICAgIHsKLSAgICAgICAgLyoKLSAgICAgICAgICog VGhlcmUncyBhbHJlYWR5IGEgaGlnaGVyIHByaW9yaXR5IHZlY3RvciBwZW5kaW5nIHNvCi0gICAg ICAgICAqIHdlIG5lZWQgdG8gYWJvcnQgYW55IHByZXZpb3VzIEFQSUMgYXNzaXN0IHRvIGVuc3Vy ZSB0aGVyZQotICAgICAgICAgKiBpcyBhbiBFT0kuCi0gICAgICAgICAqLwotICAgICAgICB2aXJp ZGlhbl9hYm9ydF9hcGljX2Fzc2lzdCh2KTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAg ICBpZiAoIGlzciA9PSAtMSApCisgICAgICAgIHJldHVybiBpcnI7CiAKLSAgICByZXR1cm4gaXJy OworICAgIC8qCisgICAgICogQSB2ZWN0b3IgaXMgcGVuZGluZyBpbiB0aGUgSVNSIHNvLCByZWdh cmRsZXNzIG9mIHdoZXRoZXIgdGhlIG5ldworICAgICAqIHZlY3RvciBpbiB0aGUgSVJSIGlzIGxv d2VyIG9yIGhpZ2hlciBpbiBwcmlvcml0eSwgYW55IHBlbmRpbmcKKyAgICAgKiBBUElDIGFzc2lz dCBtdXN0IGJlIGFib3J0ZWQgdG8gZW5zdXJlIGFuIEVPSS4KKyAgICAgKi8KKyAgICB2aXJpZGlh bl9hYm9ydF9hcGljX2Fzc2lzdCh2KTsKKworICAgIHJldHVybiAoKGlzciAmIDB4ZjApIDwgKGly ciAmIDB4ZjApKSA/IGlyciA6IC0xOwogfQogCiBpbnQgdmxhcGljX2Fja19wZW5kaW5nX2lycShz dHJ1Y3QgdmNwdSAqdiwgaW50IHZlY3RvciwgYm9vbF90IGZvcmNlX2FjaykKQEAgLTEyMzAsMTYg KzEyMTUsMTUgQEAgaW50IHZsYXBpY19hY2tfcGVuZGluZ19pcnEoc3RydWN0IHZjcHUgKnYsIGlu dCB2ZWN0b3IsIGJvb2xfdCBmb3JjZV9hY2spCiAgICAgICAgICB2bGFwaWNfdGVzdF92ZWN0b3Io dmVjdG9yLCAmdmxhcGljLT5yZWdzLT5kYXRhW0FQSUNfVE1SXSkgKQogICAgICAgICBnb3RvIGRv bmU7CiAKLSAgICBpc3IgPSB2bGFwaWNfZmluZF9sb3dlc3RfdmVjdG9yKCZ2bGFwaWMtPnJlZ3Mt PmRhdGFbQVBJQ19JU1JdKTsKLSAgICBpZiAoIGlzciA+PSAwICYmIGlzciA8IHZlY3RvciApCi0g ICAgICAgIGdvdG8gZG9uZTsKLQotICAgIC8qCi0gICAgICogVGhpcyB2ZWN0b3IgaXMgZWRnZSB0 cmlnZ2VyZWQgYW5kIHRoZXJlIGFyZSBubyBsb3dlciBwcmlvcml0eQotICAgICAqIHZlY3RvcnMg cGVuZGluZywgc28gd2UgY2FuIHVzZSBBUElDIGFzc2lzdCB0byBhdm9pZCBleGl0aW5nCi0gICAg ICogZm9yIEVPSS4KLSAgICAgKi8KLSAgICB2aXJpZGlhbl9zdGFydF9hcGljX2Fzc2lzdCh2LCB2 ZWN0b3IpOworICAgIGlzciA9IHZsYXBpY19maW5kX2hpZ2hlc3RfaXNyKHZsYXBpYyk7CisgICAg aWYgKCBpc3IgPT0gLTEgKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhpcyB2ZWN0 b3IgaXMgZWRnZSB0cmlnZ2VyZWQgYW5kIG5vIG90aGVyIHZlY3RvcnMgYXJlIHBlbmRpbmcKKyAg ICAgICAgICogaW4gdGhlIElTUiBzbyB3ZSBjYW4gdXNlIEFQSUMgYXNzaXN0IHRvIGF2b2lkIGV4 aXRpbmcgZm9yIEVPSS4KKyAgICAgICAgICovCisgICAgICAgIHZpcmlkaWFuX3N0YXJ0X2FwaWNf YXNzaXN0KHYsIHZlY3Rvcik7CisgICAgfQogCiAgZG9uZToKICAgICB2bGFwaWNfc2V0X3ZlY3Rv cih2ZWN0b3IsICZ2bGFwaWMtPnJlZ3MtPmRhdGFbQVBJQ19JU1JdKTsKLS0gCjIuMS40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==