From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH 1/3] x86/vlapic: Fix vLAPIC Timer to behave more like real-hw Date: Thu, 23 Mar 2017 11:46:59 +0000 Message-ID: <20170323114701.25207-2-anthony.perard@citrix.com> References: <20170323114701.25207-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cr1D7-0003NR-54 for xen-devel@lists.xenproject.org; Thu, 23 Mar 2017 11:47:21 +0000 In-Reply-To: <20170323114701.25207-1-anthony.perard@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 Cc: Anthony PERARD , Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCB0YWtlcyBjYXJlIG9mIGNoYW5nZSBvZiB0aW1lciBtb2RlIGJldHdlZW4gcGVy aW9kaWMgYW5kCm9uZS1zaG90LCBiZWNhdXNlIHRoZSB0aW1lciBpcyBub3QgcmVzZXQgdGhpcyBo YXBwZW4uCgpUaGVyZSBpcyBzdGlsbCBjaGFuZ2Ugb2YgdGhlIERpdmlkZSBDb25maWd1cmF0aW9u IFJlZ2lzdGVyIHRoYXQgaXMgbm90CmhhbmRsZSBieSB0aGlzIHBhdGNoLCBidXQgd2lsbCBiZSBp bjoKeDg2L3ZsYXBpYzogSGFuZGxlIGNoYW5nZSBvZiB0aW1lciBEaXZpZGUgQ29uZmlndXJhdGlv biBSZWdpc3RlcgoKVGVzdGluZyBoYXMgYmVlbiBkb25lIHdpdGggWFRGKyhwYXRjaCAiQWRkIHZs YXBpYyB0aW1lciBjaGVja3MiKS4KClNpZ25lZC1vZmYtYnk6IEFudGhvbnkgUEVSQVJEIDxhbnRo b255LnBlcmFyZEBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMgfCAx MTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZsYXBpYy5jCmlu ZGV4IDE0MzU2YTc4ZmUuLjk3Yjc3NzRiNjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v dmxhcGljLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYwpAQCAtNTE4LDcgKzUxOCwx MSBAQCBzdGF0aWMgdWludDMyX3QgdmxhcGljX2dldF90bWNjdChzdHJ1Y3QgdmxhcGljICp2bGFw aWMpCiAgICAgY291bnRlcl9wYXNzZWQgPSAoKGh2bV9nZXRfZ3Vlc3RfdGltZSh2KSAtIHZsYXBp Yy0+dGltZXJfbGFzdF91cGRhdGUpCiAgICAgICAgICAgICAgICAgICAgICAgLyAoQVBJQ19CVVNf Q1lDTEVfTlMgKiB2bGFwaWMtPmh3LnRpbWVyX2Rpdmlzb3IpKTsKIAotICAgIGlmICggdG1pY3Qg IT0gMCApCisgICAgLyogSWYgdGltZXJfbGFzdF91cGRhdGUgaXMgMCwgdGhlbiBUTUNDVCBzaG91 bGQgYmUgMCBhcyB3ZWxsLgorICAgICAqIFRoaXMgaGFwcGVuIHdoZW4gdGhlIHRpbWVyIGlzIHNl dCB0byBwZXJpb2RpYyB3aXRoIFRNSUNUICE9IDAsIGJ1dCBUTUNDVAorICAgICAqIHdhcyBhbHJl YWR5IGRvd24gdG8gMC4KKyAgICAgKi8KKyAgICBpZiAoIHRtaWN0ICE9IDAgJiYgdmxhcGljLT50 aW1lcl9sYXN0X3VwZGF0ZSApCiAgICAgewogICAgICAgICBpZiAoIHZsYXBpY19sdnR0X3Blcmlv ZCh2bGFwaWMpICkKICAgICAgICAgICAgIGNvdW50ZXJfcGFzc2VkICU9IHRtaWN0OwpAQCAtNjY2 LDYgKzY3MCw4MiBAQCBzdGF0aWMgdm9pZCB2bGFwaWNfdGR0X3B0X2NiKHN0cnVjdCB2Y3B1ICp2 LCB2b2lkICpkYXRhKQogICAgIHZjcHVfdmxhcGljKHYpLT5ody50ZHRfbXNyID0gMDsKIH0KIAor c3RhdGljIHZvaWQgdmxhcGljX3VwZGF0ZV90aW1lcihzdHJ1Y3QgdmxhcGljICp2bGFwaWMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZhbCkKK3sKKworICAgIHVpbnQ2 NF90IHBlcmlvZDsKKyAgICB1aW50NjRfdCBkZWx0YSA9IDA7CisgICAgYm9vbCBpc19vbmVzaG90 LCBpc19wZXJpb2RpYzsKKworICAgIHN3aXRjaCAob2Zmc2V0KQorICAgIHsKKyAgICBjYXNlIEFQ SUNfTFZUVDoKKyAgICAgICAgcGVyaW9kID0gKHVpbnQ2NF90KXZsYXBpY19nZXRfcmVnKHZsYXBp YywgQVBJQ19UTUlDVCkKKyAgICAgICAgICAgICogQVBJQ19CVVNfQ1lDTEVfTlMgKiB2bGFwaWMt Pmh3LnRpbWVyX2Rpdmlzb3I7CisgICAgICAgIGlzX3BlcmlvZGljID0gKHZhbCAmIEFQSUNfVElN RVJfTU9ERV9NQVNLKSA9PSBBUElDX1RJTUVSX01PREVfUEVSSU9ESUM7CisgICAgICAgIGlzX29u ZXNob3QgPSAodmFsICYgQVBJQ19USU1FUl9NT0RFX01BU0spID09IEFQSUNfVElNRVJfTU9ERV9P TkVTSE9UOworCisgICAgICAgIC8qIENhbGN1bGF0ZSB0aGUgbmV4dCB0aW1lIHRoZSB0aW1lciBz aG91bGQgdHJpZ2dlciBhbiBpbnRlcnJ1cHQuICovCisgICAgICAgIGlmICggcGVyaW9kICYmIHZs YXBpYy0+dGltZXJfbGFzdF91cGRhdGUgKQorICAgICAgICB7CisgICAgICAgICAgICB1aW50NjRf dCB0aW1lX3Bhc3NlZCA9IGh2bV9nZXRfZ3Vlc3RfdGltZShjdXJyZW50KQorICAgICAgICAgICAg ICAgIC0gdmxhcGljLT50aW1lcl9sYXN0X3VwZGF0ZTsKKyAgICAgICAgICAgIGlmICggdmxhcGlj X2x2dHRfcGVyaW9kKHZsYXBpYykgKQorICAgICAgICAgICAgICAgIHRpbWVfcGFzc2VkICU9IHBl cmlvZDsKKyAgICAgICAgICAgIGlmICggdGltZV9wYXNzZWQgPCBwZXJpb2QgKQorICAgICAgICAg ICAgICAgIGRlbHRhID0gcGVyaW9kIC0gdGltZV9wYXNzZWQ7CisgICAgICAgIH0KKyAgICAgICAg YnJlYWs7CisgICAgY2FzZSBBUElDX1RNSUNUOgorICAgICAgICBwZXJpb2QgPSAodWludDY0X3Qp dmFsICogQVBJQ19CVVNfQ1lDTEVfTlMgKiB2bGFwaWMtPmh3LnRpbWVyX2Rpdmlzb3I7CisgICAg ICAgIGRlbHRhID0gcGVyaW9kOworCisgICAgICAgIGlzX3BlcmlvZGljID0gdmxhcGljX2x2dHRf cGVyaW9kKHZsYXBpYyk7CisgICAgICAgIGlzX29uZXNob3QgPSB2bGFwaWNfbHZ0dF9vbmVzaG90 KHZsYXBpYyk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEJVRygpOwor ICAgIH0KKworICAgIGlmICggKGlzX29uZXNob3QgfHwgaXNfcGVyaW9kaWMpICYmIGRlbHRhICE9 IDAgKQorICAgIHsKKyAgICAgICAgVFJBQ0VfMl9MT05HXzNEKFRSQ19IVk1fRU1VTF9MQVBJQ19T VEFSVF9USU1FUiwgVFJDX1BBUl9MT05HKGRlbHRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAg IFRSQ19QQVJfTE9ORyhpc19wZXJpb2RpYyA/IHBlcmlvZCA6IDBMTCksCisgICAgICAgICAgICAg ICAgICAgICAgICB2bGFwaWMtPnB0LmlycSk7CisKKyAgICAgICAgY3JlYXRlX3BlcmlvZGljX3Rp bWUoY3VycmVudCwgJnZsYXBpYy0+cHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl bHRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19wZXJpb2RpYyA/IHBlcmlvZCA6 IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZsYXBpYy0+cHQuaXJxLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpc19wZXJpb2RpYyA/IHZsYXBpY19wdF9jYiA6IE5VTEws CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2bGFwaWMtPnRpbWVyX2xhc3RfdXBkYXRl KTsKKworICAgICAgICAvKiBGb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIHRpbWVyIHdhcyBwZXJpb2Rp YyBhbmQgaXQgaXMgbm93CisgICAgICAgICAqIG9uZS1zaG90LCB0aW1lcl9sYXN0X3VwZGF0ZSBz aG91bGQgYmUgdGhlIHZhbHVlIG9mIHRoZSBsYXN0IHRpbWUKKyAgICAgICAgICogdGhlIGludGVy cnVwdCB3YXMgdHJpZ2dlcmVkLgorICAgICAgICAgKi8KKyAgICAgICAgdmxhcGljLT50aW1lcl9s YXN0X3VwZGF0ZSA9IHZsYXBpYy0+cHQubGFzdF9wbHRfZ3RpbWUgKyBkZWx0YSAtIHBlcmlvZDsK KworICAgICAgICBIVk1fREJHX0xPRyhEQkdfTEVWRUxfVkxBUElDLAorICAgICAgICAgICAgICAg ICAgICAiYnVzIGN5Y2xlIGlzICV1bnMsICIKKyAgICAgICAgICAgICAgICAgICAgImluaXRpYWwg Y291bnQgJXUsIHBlcmlvZCAlIlBSSXU2NCJucyIsCisgICAgICAgICAgICAgICAgICAgIEFQSUNf QlVTX0NZQ0xFX05TLAorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPT0gQVBJQ19UTUlDVAor ICAgICAgICAgICAgICAgICAgICA/IHZhbCA6IHZsYXBpY19nZXRfcmVnKHZsYXBpYywgQVBJQ19U TUlDVCksCisgICAgICAgICAgICAgICAgICAgIHBlcmlvZCk7CisgICAgfQorICAgIGVsc2UKKyAg ICB7CisgICAgICAgIFRSQUNFXzBEKFRSQ19IVk1fRU1VTF9MQVBJQ19TVE9QX1RJTUVSKTsKKyAg ICAgICAgZGVzdHJveV9wZXJpb2RpY190aW1lKCZ2bGFwaWMtPnB0KTsKKyAgICAgICAgLyogRnJv bSBub3csIFRNQ0NUIHNob3VsZCBiZSAwIHVudGlsIFRNSUNUIGlzIHNldC4gKi8KKyAgICAgICAg dmxhcGljLT50aW1lcl9sYXN0X3VwZGF0ZSA9IDA7CisgICAgfQorfQorCisKIHN0YXRpYyB2b2lk IHZsYXBpY19yZWdfd3JpdGUoc3RydWN0IHZjcHUgKnYsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQsIHVpbnQzMl90IHZhbCkKIHsKQEAgLTczMywxMyAr ODEzLDEwIEBAIHN0YXRpYyB2b2lkIHZsYXBpY19yZWdfd3JpdGUoc3RydWN0IHZjcHUgKnYsCiAg ICAgICAgIGlmICggKHZsYXBpY19nZXRfcmVnKHZsYXBpYywgb2Zmc2V0KSAmIEFQSUNfVElNRVJf TU9ERV9NQVNLKSAhPQogICAgICAgICAgICAgICh2YWwgJiBBUElDX1RJTUVSX01PREVfTUFTSykg KQogICAgICAgICB7Ci0gICAgICAgICAgICBUUkFDRV8wRChUUkNfSFZNX0VNVUxfTEFQSUNfU1RP UF9USU1FUik7Ci0gICAgICAgICAgICBkZXN0cm95X3BlcmlvZGljX3RpbWUoJnZsYXBpYy0+cHQp OwotICAgICAgICAgICAgdmxhcGljX3NldF9yZWcodmxhcGljLCBBUElDX1RNSUNULCAwKTsKLSAg ICAgICAgICAgIHZsYXBpY19zZXRfcmVnKHZsYXBpYywgQVBJQ19UTUNDVCwgMCk7CiAgICAgICAg ICAgICB2bGFwaWMtPmh3LnRkdF9tc3IgPSAwOwogICAgICAgICB9CiAgICAgICAgIHZsYXBpYy0+ cHQuaXJxID0gdmFsICYgQVBJQ19WRUNUT1JfTUFTSzsKKyAgICAgICAgdmxhcGljX3VwZGF0ZV90 aW1lcih2bGFwaWMsIEFQSUNfTFZUVCwgdmFsKTsKICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8K ICAgICBjYXNlIEFQSUNfTFZUVEhNUjogICAgICAvKiBMVlQgVGhlcm1hbCBNb25pdG9yICovCiAg ICAgY2FzZSBBUElDX0xWVFBDOiAgICAgICAgLyogTFZUIFBlcmZvcm1hbmNlIENvdW50ZXIgKi8K QEAgLTc2MywzNCArODQwLDEwIEBAIHN0YXRpYyB2b2lkIHZsYXBpY19yZWdfd3JpdGUoc3RydWN0 IHZjcHUgKnYsCiAKICAgICBjYXNlIEFQSUNfVE1JQ1Q6CiAgICAgewotICAgICAgICB1aW50NjRf dCBwZXJpb2Q7Ci0KICAgICAgICAgaWYgKCAhdmxhcGljX2x2dHRfb25lc2hvdCh2bGFwaWMpICYm ICF2bGFwaWNfbHZ0dF9wZXJpb2QodmxhcGljKSApCiAgICAgICAgICAgICBicmVhazsKLQorICAg ICAgICB2bGFwaWNfdXBkYXRlX3RpbWVyKHZsYXBpYywgQVBJQ19UTUlDVCwgdmFsKTsKICAgICAg ICAgdmxhcGljX3NldF9yZWcodmxhcGljLCBBUElDX1RNSUNULCB2YWwpOwotICAgICAgICBpZiAo IHZhbCA9PSAwICkKLSAgICAgICAgewotICAgICAgICAgICAgVFJBQ0VfMEQoVFJDX0hWTV9FTVVM X0xBUElDX1NUT1BfVElNRVIpOwotICAgICAgICAgICAgZGVzdHJveV9wZXJpb2RpY190aW1lKCZ2 bGFwaWMtPnB0KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgcGVy aW9kID0gKHVpbnQ2NF90KUFQSUNfQlVTX0NZQ0xFX05TICogdmFsICogdmxhcGljLT5ody50aW1l cl9kaXZpc29yOwotICAgICAgICBUUkFDRV8yX0xPTkdfM0QoVFJDX0hWTV9FTVVMX0xBUElDX1NU QVJUX1RJTUVSLCBUUkNfUEFSX0xPTkcocGVyaW9kKSwKLSAgICAgICAgICAgICAgICAgVFJDX1BB Ul9MT05HKHZsYXBpY19sdnR0X3BlcmlvZCh2bGFwaWMpID8gcGVyaW9kIDogMExMKSwKLSAgICAg ICAgICAgICAgICAgdmxhcGljLT5wdC5pcnEpOwotICAgICAgICBjcmVhdGVfcGVyaW9kaWNfdGlt ZShjdXJyZW50LCAmdmxhcGljLT5wdCwgcGVyaW9kLCAKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmxhcGljX2x2dHRfcGVyaW9kKHZsYXBpYykgPyBwZXJpb2QgOiAwLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2bGFwaWMtPnB0LmlycSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmxhcGljX2x2dHRfcGVyaW9kKHZsYXBpYykgPyB2bGFwaWNfcHRfY2IgOiBOVUxM LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmxhcGljLT50aW1lcl9sYXN0X3VwZGF0 ZSk7Ci0gICAgICAgIHZsYXBpYy0+dGltZXJfbGFzdF91cGRhdGUgPSB2bGFwaWMtPnB0Lmxhc3Rf cGx0X2d0aW1lOwotCi0gICAgICAgIEhWTV9EQkdfTE9HKERCR19MRVZFTF9WTEFQSUMsCi0gICAg ICAgICAgICAgICAgICAgICJidXMgY3ljbGUgaXMgJXVucywgIgotICAgICAgICAgICAgICAgICAg ICAiaW5pdGlhbCBjb3VudCAldSwgcGVyaW9kICUiUFJJdTY0Im5zIiwKLSAgICAgICAgICAgICAg ICAgICAgQVBJQ19CVVNfQ1lDTEVfTlMsIHZhbCwgcGVyaW9kKTsKICAgICB9CiAgICAgYnJlYWs7 CiAKLS0gCkFudGhvbnkgUEVSQVJECgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==