From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4] xen: add steal_clock support on x86 Date: Fri, 20 May 2016 09:26:48 +0200 Message-ID: <1463729208-4238-1-git-send-email-jgross__15789.3742005855$1463729291$gmane$org@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b3epi-0007Mw-0s for xen-devel@lists.xenproject.org; Fri, 20 May 2016 07:26:54 +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, linux-kernel@vger.kernel.org Cc: peterz@infradead.org, Juergen Gross , boris.ostrovsky@oracle.com, sstabellini@kernel.org, david.vrabel@citrix.com List-Id: xen-devel@lists.xenproject.org VGhlIHB2X3RpbWVfb3BzIHN0cnVjdHVyZSBjb250YWlucyBhIGZ1bmN0aW9uIHBvaW50ZXIgZm9y IHRoZQoic3RlYWxfY2xvY2siIGZ1bmN0aW9uYWxpdHkgdXNlZCBvbmx5IGJ5IEtWTSBhbmQgWGVu IG9uIEFSTS4gWGVuIG9uIHg4Ngp1c2VzIGl0cyBvd24gbWVjaGFuaXNtIHRvIGFjY291bnQgZm9y IHRoZSAic3RvbGVuIiB0aW1lIGEgdGhyZWFkIHdhc24ndAphYmxlIHRvIHJ1biBkdWUgdG8gaHlw ZXJ2aXNvciBzY2hlZHVsaW5nLgoKQWRkIHN1cHBvcnQgaW4gWGVuIGFyY2ggaW5kZXBlbmRlbnQg dGltZSBoYW5kbGluZyBmb3IgdGhpcyBmZWF0dXJlIGJ5Cm1vdmluZyBpdCBvdXQgb2YgdGhlIGFy bSBhcmNoIGludG8gZHJpdmVycy94ZW4gYW5kIHJlbW92ZSB0aGUgeDg2IFhlbgpoYWNrLgoKU2ln bmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog Qm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KLS0tClY0OiBtaW5v ciBhZGp1c3RtZW50cyBhcyByZXF1ZXN0ZWQgYnkgU3RlZmFubyBTdGFiZWxsaW5pIChyZW1vdmUK ICAgIG5vIGxvbmdlciBuZWVkZWQgI2luY2x1ZGUsIHJlbW92ZSBfX2luaXQgZnJvbSBoZWFkZXIp ClYzOiBhZGQgI2luY2x1ZGUgPGFzbS9wYXJhdmlydC5oPiB0byBhdm9pZCBidWlsZCBlcnJvciBv biBhcm0KVjI6IHJlbW92ZSB0aGUgeDg2IGRvX3N0b2xlbl9hY2NvdW50aW5nKCkgaGFjawotLS0K IGFyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYyAgICB8IDE4ICsrLS0tLS0tLS0tLS0tLS0tLQogYXJj aC94ODYveGVuL3RpbWUuYyAgICAgICAgIHwgNDQgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMveGVuL3RpbWUuYyAgICAgICAgICB8IDIwICsrKysr KysrKysrKysrKysrKysrCiBpbmNsdWRlL2xpbnV4L2tlcm5lbF9zdGF0LmggfCAgMSAtCiBpbmNs dWRlL3hlbi94ZW4tb3BzLmggICAgICAgfCAgMSArCiBrZXJuZWwvc2NoZWQvY3B1dGltZS5jICAg ICAgfCAxMCAtLS0tLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDY5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYyBiL2Fy Y2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYwppbmRleCA3NWNkNzM0Li43MWRiMzBjIDEwMDY0NAotLS0g YS9hcmNoL2FybS94ZW4vZW5saWdodGVuLmMKKysrIGIvYXJjaC9hcm0veGVuL2VubGlnaHRlbi5j CkBAIC0xMiw3ICsxMiw2IEBACiAjaW5jbHVkZSA8eGVuL3BhZ2UuaD4KICNpbmNsdWRlIDx4ZW4v aW50ZXJmYWNlL3NjaGVkLmg+CiAjaW5jbHVkZSA8eGVuL3hlbi1vcHMuaD4KLSNpbmNsdWRlIDxh c20vcGFyYXZpcnQuaD4KICNpbmNsdWRlIDxhc20veGVuL2h5cGVydmlzb3IuaD4KICNpbmNsdWRl IDxhc20veGVuL2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW1fbWlzYy5oPgpAQCAt ODQsMTkgKzgzLDYgQEAgaW50IHhlbl91bm1hcF9kb21haW5fZ2ZuX3JhbmdlKHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLAogfQogRVhQT1JUX1NZTUJPTF9HUEwoeGVuX3VubWFwX2RvbWFpbl9n Zm5fcmFuZ2UpOwogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHhlbl9zdG9sZW5fYWNjb3Vu dGluZyhpbnQgY3B1KQotewotCXN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gc3RhdGU7Ci0KLQlC VUdfT04oY3B1ICE9IHNtcF9wcm9jZXNzb3JfaWQoKSk7Ci0KLQl4ZW5fZ2V0X3J1bnN0YXRlX3Nu YXBzaG90KCZzdGF0ZSk7Ci0KLQlXQVJOX09OKHN0YXRlLnN0YXRlICE9IFJVTlNUQVRFX3J1bm5p bmcpOwotCi0JcmV0dXJuIHN0YXRlLnRpbWVbUlVOU1RBVEVfcnVubmFibGVdICsgc3RhdGUudGlt ZVtSVU5TVEFURV9vZmZsaW5lXTsKLX0KLQogc3RhdGljIHZvaWQgeGVuX3JlYWRfd2FsbGNsb2Nr KHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKIHsKIAl1MzIgdmVyc2lvbjsKQEAgLTM1NSw4ICszNDEs OCBAQCBzdGF0aWMgaW50IF9faW5pdCB4ZW5fZ3Vlc3RfaW5pdCh2b2lkKQogCiAJcmVnaXN0ZXJf Y3B1X25vdGlmaWVyKCZ4ZW5fY3B1X25vdGlmaWVyKTsKIAotCXB2X3RpbWVfb3BzLnN0ZWFsX2Ns b2NrID0geGVuX3N0b2xlbl9hY2NvdW50aW5nOwotCXN0YXRpY19rZXlfc2xvd19pbmMoJnBhcmF2 aXJ0X3N0ZWFsX2VuYWJsZWQpOworCXhlbl90aW1lX3NldHVwX2d1ZXN0KCk7CisKIAlpZiAoeGVu X2luaXRpYWxfZG9tYWluKCkpCiAJCXB2Y2xvY2tfZ3RvZF9yZWdpc3Rlcl9ub3RpZmllcigmeGVu X3B2Y2xvY2tfZ3RvZF9ub3RpZmllcik7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi90aW1l LmMgYi9hcmNoL3g4Ni94ZW4vdGltZS5jCmluZGV4IGEwYTRlNTUuLjZiZTMxZGYgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L3hlbi90aW1lLmMKKysrIGIvYXJjaC94ODYveGVuL3RpbWUuYwpAQCAtMTEs OCArMTEsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4 L2Nsb2Nrc291cmNlLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgotI2luY2x1ZGUg PGxpbnV4L2tlcm5lbF9zdGF0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CiAjaW5jbHVk ZSA8bGludXgvZ2ZwLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4 L3B2Y2xvY2tfZ3RvZC5oPgpAQCAtMzEsNDQgKzI5LDYgQEAKIAogLyogWGVuIG1heSBmaXJlIGEg dGltZXIgdXAgdG8gdGhpcyBtYW55IG5zIGVhcmx5ICovCiAjZGVmaW5lIFRJTUVSX1NMT1AJMTAw MDAwCi0jZGVmaW5lIE5TX1BFUl9USUNLCSgxMDAwMDAwMDAwTEwgLyBIWikKLQotLyogc25hcHNo b3RzIG9mIHJ1bnN0YXRlIGluZm8gKi8KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdmNw dV9ydW5zdGF0ZV9pbmZvLCB4ZW5fcnVuc3RhdGVfc25hcHNob3QpOwotCi0vKiB1bnVzZWQgbnMg b2Ygc3RvbGVuIHRpbWUgKi8KLXN0YXRpYyBERUZJTkVfUEVSX0NQVSh1NjQsIHhlbl9yZXNpZHVh bF9zdG9sZW4pOwotCi1zdGF0aWMgdm9pZCBkb19zdG9sZW5fYWNjb3VudGluZyh2b2lkKQotewot CXN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gc3RhdGU7Ci0Jc3RydWN0IHZjcHVfcnVuc3RhdGVf aW5mbyAqc25hcDsKLQlzNjQgcnVubmFibGUsIG9mZmxpbmUsIHN0b2xlbjsKLQljcHV0aW1lX3Qg dGlja3M7Ci0KLQl4ZW5fZ2V0X3J1bnN0YXRlX3NuYXBzaG90KCZzdGF0ZSk7Ci0KLQlXQVJOX09O KHN0YXRlLnN0YXRlICE9IFJVTlNUQVRFX3J1bm5pbmcpOwotCi0Jc25hcCA9IHRoaXNfY3B1X3B0 cigmeGVuX3J1bnN0YXRlX3NuYXBzaG90KTsKLQotCS8qIHdvcmsgb3V0IGhvdyBtdWNoIHRpbWUg dGhlIFZDUFUgaGFzIG5vdCBiZWVuIHJ1bm4qaW5nKiAgKi8KLQlydW5uYWJsZSA9IHN0YXRlLnRp bWVbUlVOU1RBVEVfcnVubmFibGVdIC0gc25hcC0+dGltZVtSVU5TVEFURV9ydW5uYWJsZV07Ci0J b2ZmbGluZSA9IHN0YXRlLnRpbWVbUlVOU1RBVEVfb2ZmbGluZV0gLSBzbmFwLT50aW1lW1JVTlNU QVRFX29mZmxpbmVdOwotCi0JKnNuYXAgPSBzdGF0ZTsKLQotCS8qIEFkZCB0aGUgYXBwcm9wcmlh dGUgbnVtYmVyIG9mIHRpY2tzIG9mIHN0b2xlbiB0aW1lLAotCSAgIGluY2x1ZGluZyBhbnkgbGVm dC1vdmVycyBmcm9tIGxhc3QgdGltZS4gKi8KLQlzdG9sZW4gPSBydW5uYWJsZSArIG9mZmxpbmUg KyBfX3RoaXNfY3B1X3JlYWQoeGVuX3Jlc2lkdWFsX3N0b2xlbik7Ci0KLQlpZiAoc3RvbGVuIDwg MCkKLQkJc3RvbGVuID0gMDsKLQotCXRpY2tzID0gaXRlcl9kaXZfdTY0X3JlbShzdG9sZW4sIE5T X1BFUl9USUNLLCAmc3RvbGVuKTsKLQlfX3RoaXNfY3B1X3dyaXRlKHhlbl9yZXNpZHVhbF9zdG9s ZW4sIHN0b2xlbik7Ci0JYWNjb3VudF9zdGVhbF90aWNrcyh0aWNrcyk7Ci19CiAKIC8qIEdldCB0 aGUgVFNDIHNwZWVkIGZyb20gWGVuICovCiBzdGF0aWMgdW5zaWduZWQgbG9uZyB4ZW5fdHNjX2to eih2b2lkKQpAQCAtMzM1LDggKzI5NSw2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB4ZW5fdGltZXJf aW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAJ fQogCi0JZG9fc3RvbGVuX2FjY291bnRpbmcoKTsKLQogCXJldHVybiByZXQ7CiB9CiAKQEAgLTQz MSw2ICszODksOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgeGVuX3RpbWVfaW5pdCh2b2lkKQogCXhl bl9zZXR1cF90aW1lcihjcHUpOwogCXhlbl9zZXR1cF9jcHVfY2xvY2tldmVudHMoKTsKIAorCXhl bl90aW1lX3NldHVwX2d1ZXN0KCk7CisKIAlpZiAoeGVuX2luaXRpYWxfZG9tYWluKCkpCiAJCXB2 Y2xvY2tfZ3RvZF9yZWdpc3Rlcl9ub3RpZmllcigmeGVuX3B2Y2xvY2tfZ3RvZF9ub3RpZmllcik7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi90aW1lLmMgYi9kcml2ZXJzL3hlbi90aW1lLmMK aW5kZXggNzEwNzg0Mi4uMjI1N2I2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jCisr KyBiL2RyaXZlcnMveGVuL3RpbWUuYwpAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9t YXRoNjQuaD4KICNpbmNsdWRlIDxsaW51eC9nZnAuaD4KIAorI2luY2x1ZGUgPGFzbS9wYXJhdmly dC5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPGFzbS94ZW4v aHlwZXJjYWxsLmg+CiAKQEAgLTc1LDYgKzc2LDE1IEBAIGJvb2wgeGVuX3ZjcHVfc3RvbGVuKGlu dCB2Y3B1KQogCXJldHVybiBwZXJfY3B1KHhlbl9ydW5zdGF0ZSwgdmNwdSkuc3RhdGUgPT0gUlVO U1RBVEVfcnVubmFibGU7CiB9CiAKK3N0YXRpYyB1NjQgeGVuX3N0ZWFsX2Nsb2NrKGludCBjcHUp Cit7CisJc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyBzdGF0ZTsKKworCUJVR19PTihjcHUgIT0g c21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwl4ZW5fZ2V0X3J1bnN0YXRlX3NuYXBzaG90KCZzdGF0ZSk7 CisJcmV0dXJuIHN0YXRlLnRpbWVbUlVOU1RBVEVfcnVubmFibGVdICsgc3RhdGUudGltZVtSVU5T VEFURV9vZmZsaW5lXTsKK30KKwogdm9pZCB4ZW5fc2V0dXBfcnVuc3RhdGVfaW5mbyhpbnQgY3B1 KQogewogCXN0cnVjdCB2Y3B1X3JlZ2lzdGVyX3J1bnN0YXRlX21lbW9yeV9hcmVhIGFyZWE7CkBA IC04NiwzICs5NiwxMyBAQCB2b2lkIHhlbl9zZXR1cF9ydW5zdGF0ZV9pbmZvKGludCBjcHUpCiAJ CUJVRygpOwogfQogCit2b2lkIF9faW5pdCB4ZW5fdGltZV9zZXR1cF9ndWVzdCh2b2lkKQorewor CXB2X3RpbWVfb3BzLnN0ZWFsX2Nsb2NrID0geGVuX3N0ZWFsX2Nsb2NrOworCisJc3RhdGljX2tl eV9zbG93X2luYygmcGFyYXZpcnRfc3RlYWxfZW5hYmxlZCk7CisJLyoKKwkgKiBXZSBjYW4ndCBz ZXQgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCBhcyB0aGlzIHdvdWxkIHJlcXVpcmUgdGhlCisJ ICogY2FwYWJpbGl0eSB0byByZWFkIGFub3RoZXIgY3B1J3MgcnVuc3RhdGUgaW5mby4KKwkgKi8K K30KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQuaCBiL2luY2x1ZGUvbGlu dXgva2VybmVsX3N0YXQuaAppbmRleCAyNWE4MjJmLi40NGZkYTY0IDEwMDY0NAotLS0gYS9pbmNs dWRlL2xpbnV4L2tlcm5lbF9zdGF0LmgKKysrIGIvaW5jbHVkZS9saW51eC9rZXJuZWxfc3RhdC5o CkBAIC05Miw3ICs5Miw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhY2NvdW50X3Byb2Nlc3NfdGlj ayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IHVzZXIpCiBleHRlcm4gdm9pZCBhY2NvdW50 X3Byb2Nlc3NfdGljayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgaW50IHVzZXIpOwogI2VuZGlmCiAK LWV4dGVybiB2b2lkIGFjY291bnRfc3RlYWxfdGlja3ModW5zaWduZWQgbG9uZyB0aWNrcyk7CiBl eHRlcm4gdm9pZCBhY2NvdW50X2lkbGVfdGlja3ModW5zaWduZWQgbG9uZyB0aWNrcyk7CiAKICNl bmRpZiAvKiBfTElOVVhfS0VSTkVMX1NUQVRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4v eGVuLW9wcy5oIGIvaW5jbHVkZS94ZW4veGVuLW9wcy5oCmluZGV4IDg2YWJlMDcuLjc3YmY5ZDEg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3hlbi1vcHMuaAorKysgYi9pbmNsdWRlL3hlbi94ZW4t b3BzLmgKQEAgLTIxLDYgKzIxLDcgQEAgdm9pZCB4ZW5fcmVzdW1lX25vdGlmaWVyX3VucmVnaXN0 ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CiAKIGJvb2wgeGVuX3ZjcHVfc3RvbGVuKGlu dCB2Y3B1KTsKIHZvaWQgeGVuX3NldHVwX3J1bnN0YXRlX2luZm8oaW50IGNwdSk7Cit2b2lkIHhl bl90aW1lX3NldHVwX2d1ZXN0KHZvaWQpOwogdm9pZCB4ZW5fZ2V0X3J1bnN0YXRlX3NuYXBzaG90 KHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gKnJlcyk7CiAKIGludCB4ZW5fc2V0dXBfc2h1dGRv d25fZXZlbnQodm9pZCk7CmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWQvY3B1dGltZS5jIGIva2Vy bmVsL3NjaGVkL2NwdXRpbWUuYwppbmRleCA3NWY5OGM1Li44YzRjNmRjIDEwMDY0NAotLS0gYS9r ZXJuZWwvc2NoZWQvY3B1dGltZS5jCisrKyBiL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmMKQEAgLTQ5 MCwxNiArNDkwLDYgQEAgdm9pZCBhY2NvdW50X3Byb2Nlc3NfdGljayhzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnAsIGludCB1c2VyX3RpY2spCiB9CiAKIC8qCi0gKiBBY2NvdW50IG11bHRpcGxlIHRpY2tz IG9mIHN0ZWFsIHRpbWUuCi0gKiBAcDogdGhlIHByb2Nlc3MgZnJvbSB3aGljaCB0aGUgY3B1IHRp bWUgaGFzIGJlZW4gc3RvbGVuCi0gKiBAdGlja3M6IG51bWJlciBvZiBzdG9sZW4gdGlja3MKLSAq Lwotdm9pZCBhY2NvdW50X3N0ZWFsX3RpY2tzKHVuc2lnbmVkIGxvbmcgdGlja3MpCi17Ci0JYWNj b3VudF9zdGVhbF90aW1lKGppZmZpZXNfdG9fY3B1dGltZSh0aWNrcykpOwotfQotCi0vKgogICog QWNjb3VudCBtdWx0aXBsZSB0aWNrcyBvZiBpZGxlIHRpbWUuCiAgKiBAdGlja3M6IG51bWJlciBv ZiBzdG9sZW4gdGlja3MKICAqLwotLSAKMi42LjYKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=