From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joao Martins Subject: [PATCH v2 6/6] x86/time: implement PVCLOCK_TSC_STABLE_BIT Date: Tue, 29 Mar 2016 14:44:11 +0100 Message-ID: <1459259051-4943-7-git-send-email-joao.m.martins@oracle.com> References: <1459259051-4943-1-git-send-email-joao.m.martins@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1459259051-4943-1-git-send-email-joao.m.martins@oracle.com> 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: Andrew Cooper , Joao Martins , Keir Fraser , Jan Beulich List-Id: xen-devel@lists.xenproject.org V2hlbiB1c2luZyBUU0MgYXMgY2xvY2tzb3VyY2Ugd2Ugd2lsbCBzb2xlbHkgcmVseSBvbiBUU0Mg Zm9yIHVwZGF0aW5nCnZjcHUgdGltZSBpbmZvcyAocHZ0aSkuIFJpZ2h0IG5vdywgZWFjaCB2Q1BV IHRha2VzIHRoZSB0c2NfdGltZXN0YW1wCmF0IGRpZmZlcmVudCBpbnN0YW50cyBtZWFuaW5nIGV2 ZXJ5IEVQT0NIICsgZGVsdGEuICBUaGlzIGRlbHRhIGlzCnZhcmlhYmxlIGRlcGVuZGluZyBvbiB0 aGUgdGltZSB0aGUgQ1BVIGNhbGlicmF0ZXMgd2l0aCBDUFUgMCAobWFzdGVyKSwKYW5kIHdpbGwg bGlrZWx5IGJlIGRpZmZlcmVudCBhbmQgdmFyaWFibGUgYWNyb3NzIHZDUFVTLiBUaGlzIG1lYW5z CnRoYXQgZWFjaCBWQ1BVIHB2dGkgd29uJ3QgYWNjb3VudCB0byBpdHMgY2FsaWJyYXRpb24gZXJy b3Igd2hpY2ggY291bGQKbGVhZCB0byB0aW1lIGdvaW5nIGJhY2t3YXJkcywgYW5kIGFsbG93aW5n IGEgc2l0dWF0aW9uIHdoZXJlIHRpbWUgcmVhZApvbiBWQ1BVIEIgaW1tZWRpYXRlbHkgYWZ0ZXIg QSBiZWluZyBzbWFsbGVyLiBXaGlsZSB0aGlzIGRvZXNuJ3QgaGFwcGVuCmEgbG90LCBJIHdhcyBh YmxlIHRvIG9ic2VydmUgKGZvciBjbG9ja3NvdXJjZT10c2MpIGFyb3VuZCA1MCB0aW1lcyBpbgph biBob3VyIGhhdmluZyB3YXJwcyBvZiA8IDEwMCBucy4KClRoaXMgcGF0Y2ggcHJvcG9zZXMgcmVs eWluZyBvbiBob3N0IFRTQyBzeW5jaHJvbml6YXRpb24gYW5kCnBhc3N0aHJvdWdoIHRvIHRoZSBn dWVzdCwgd2hlbiBydW5uaW5nIG9uIGEgVFNDLXNhZmUgcGxhdGZvcm0uIE9uCnRpbWVfY2FsaWJy YXRpb24gd2UgcmV0cmlldmUgdGhlIHBsYXRmb3JtIHRpbWUgaW4gbnMgYW5kIHRoZSBjb3VudGVy CnJlYWQgYnkgdGhlIGNsb2Nrc291cmNlIHRoYXQgd2FzIHVzZWQgdG8gY29tcHV0ZSBzeXN0ZW0g dGltZS4gV2UKaW50cm9kdWNlIGEgbmV3IHJlbmRlem91cyBmdW5jdGlvbiB3aGljaCBkb2Vzbid0 IHJlcXVpcmUKc3luY2hyb25pemF0aW9uIGJldHdlZW4gbWFzdGVyIGFuZCBzbGF2ZSBDUFVTIGFu ZCBqdXN0IHJlYWRzCmNhbGlicmF0aW9uX3JlbmRlenZvdXMgc3RydWN0IGFuZCB3cml0ZXMgaXQg ZG93biB0aGUgc3RpbWUgYW5kIHN0YW1wCnRvIHRoZSBjcHVfY2FsaWJyYXRpb24gc3RydWN0IHRv IGJlIHVzZWQgbGF0ZXIgb24uIFdlIGNhbiBndWFyYW50ZWUgdGhhdApvbiBhIHBsYXRmb3JtIHdp dGggYSBjb25zdGFudCBhbmQgcmVsaWFibGUgVFNDLCB0aGF0IHRoZSB0aW1lIHJlYWQgb24KdmNw dSBCIHJpZ2h0IGFmdGVyIEEgaXMgYmlnZ2VyIGluZGVwZW5kZW50bHkgb2YgdGhlIENQVSBjYWxp YnJhdGlvbgplcnJvci4gU2luY2UgcHZjbG9jayB0aW1lIGluZm9zIGFyZSBtb25vdG9uaWMgYXMg c2VlbiBieSBhbnkgdkNQVSBzZXQKUFZDTE9DS19UU0NfU1RBQkxFX0JJVCwgd2hpY2ggdGhlbiBl bmFibGVzIHVzYWdlIG9mIFZEU08gb24gTGludXguCklJVUMsIHRoaXMgaXMgc2ltaWxhciB0byBo b3cgaXQncyBpbXBsZW1lbnRlZCBvbiBLVk0uCgpOb3RlIHRoYXQgUFZDTE9DS19UU0NfU1RBQkxF X0JJVCBpcyBzZXQgb25seSB3aGVuIENQVSBob3RwbHVnIGlzbid0Cm1lYW50IHRvIGJlIHBlcmZv cm1lZCBvbiB0aGUgaG9zdCwgd2hpY2ggd2lsbCBlaXRoZXIgYmUgd2hlbiBtYXggdmNwdXMKYW5k IG51bV9wcmVzZW50X2NwdSBhcmUgdGhlIHNhbWUgb3IgaWYgIm5vY3B1aG90cGx1ZyIgY29tbWFu ZCBsaW5lCnBhcmFtZXRlciBpcyB1c2VkLiBUaGlzIGlzIGJlY2F1c2UgYSBuZXdseSBob3RwbHVn Z2VkIENQVSBtYXkgbm90CnNhdGlzZnkgdGhlIGNvbmRpdGlvbiBvZiBoYXZpbmcgYWxsIFRTQ3Mg c3luY2hyb25pemVkLgoKU2lnbmVkLW9mZi1ieTogSm9hbyBNYXJ0aW5zIDxqb2FvLm0ubWFydGlu c0BvcmFjbGUuY29tPgotLS0KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNjOiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v cGVyM0BjaXRyaXguY29tPgoKUGVyaGFwcyAiY3B1aG90cGx1Z3NhZmUiIHdvdWxkIGJlIGEgYmV0 dGVyIG5hbWUsIHNpbmNlIHBvdGVudGlhbGx5CmhhcmR3YXJlIGNvdWxkIGd1YXJhbnRlZSBUU0Nz IGFyZSBzeW5jaHJvbml6ZWQgb24gaG90cGx1Zz8KCkNoYW5nZXMgc2luY2UgdjE6CiAtIENoYW5n ZSBhcHByb2FjaCB0byBmb2xsb3cgQW5kcmV3J3MgZ3VpZGVsaW5lIHRvCiBza2lwIHN0ZF9yZW5k ZXp2b3VzLiBBbmQgZG9pbmcgc28gYnkgaW50cm9kdWNpbmcgYSBub3BfcmVuZGV6dm91cwogLSBD aGFuZ2UgY29tbWl0IG1lc3NhZ2UgcmVmbGVjdGluZyB0aGUgY2hhbmdlIGFib3ZlLgogLSBVc2Ug VFNDX1NUQUJMRV9CSVQgb25seSBpZiBjcHUgaG90cGx1ZyBpc24ndCBwb3NzaWJsZS4KIC0gQWRk IGNvbW1hbmQgbGluZSBvcHRpb24gdG8gb3ZlcnJpZGUgaXQgaWYgbm8gY3B1IGhvdHBsdWcgaXMK IGludGVuZGVkLgotLS0KIHhlbi9hcmNoL3g4Ni90aW1lLmMgfCA0MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNDMgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90aW1lLmMgYi94ZW4vYXJjaC94ODYvdGlt ZS5jCmluZGV4IDEyM2FhNDIuLjFkY2Q0YWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90aW1l LmMKKysrIGIveGVuL2FyY2gveDg2L3RpbWUuYwpAQCAtNDMsNiArNDMsMTAgQEAKIHN0YXRpYyBj aGFyIF9faW5pdGRhdGEgb3B0X2Nsb2Nrc291cmNlWzEwXTsKIHN0cmluZ19wYXJhbSgiY2xvY2tz b3VyY2UiLCBvcHRfY2xvY2tzb3VyY2UpOwogCisvKiBvcHRfbm9jcHVob3RwbHVnOiBTZXQgaWYg Q1BVIGhvdHBsdWcgaXNuJ3QgbWVhbnQgdG8gYmUgdXNlZCAqLworc3RhdGljIGJvb2xfdCBfX2lu aXRkYXRhIG9wdF9ub2NwdWhvdHBsdWc7Citib29sZWFuX3BhcmFtKCJub2NwdWhvdHBsdWciLCBv cHRfbm9jcHVob3RwbHVnKTsKKwogdW5zaWduZWQgbG9uZyBfX3JlYWRfbW9zdGx5IGNwdV9raHo7 ICAvKiBDUFUgY2xvY2sgZnJlcXVlbmN5IGluIGtIei4gKi8KIERFRklORV9TUElOTE9DSyhydGNf bG9jayk7CiB1bnNpZ25lZCBsb25nIHBpdDBfdGlja3M7CkBAIC00MzUsNiArNDM5LDcgQEAgdWlu dDY0X3QgbnNfdG9fYWNwaV9wbV90aWNrKHVpbnQ2NF90IG5zKQogICogUExBVEZPUk0gVElNRVIg NDogVFNDCiAgKi8KIHN0YXRpYyBib29sX3QgY2xvY2tzb3VyY2VfaXNfdHNjOworc3RhdGljIGJv b2xfdCB1c2VfdHNjX3N0YWJsZV9iaXQ7CiBzdGF0aWMgdTY0IHRzY19mcmVxOwogc3RhdGljIHVu c2lnbmVkIGxvbmcgdHNjX21heF93YXJwOwogc3RhdGljIHZvaWQgdHNjX2NoZWNrX3JlbGlhYmls aXR5KHZvaWQpOwpAQCAtNDY4LDYgKzQ3MywxMSBAQCBzdGF0aWMgaW50IF9faW5pdCBpbml0X3Rz Y3RpbWVyKHN0cnVjdCBwbGF0Zm9ybV90aW1lc291cmNlICpwdHMpCiAKICAgICBwdHMtPmZyZXF1 ZW5jeSA9IHRzY19mcmVxOwogICAgIGNsb2Nrc291cmNlX2lzX3RzYyA9IHRzY19yZWxpYWJsZTsK KyAgICB1c2VfdHNjX3N0YWJsZV9iaXQgPSBjbG9ja3NvdXJjZV9pc190c2MgJiYKKyAgICAgICAg KChucl9jcHVfaWRzID09IG51bV9wcmVzZW50X2NwdXMoKSkgfHwgb3B0X25vY3B1aG90cGx1Zyk7 CisKKyAgICBpZiAoIGNsb2Nrc291cmNlX2lzX3RzYyAmJiAhdXNlX3RzY19zdGFibGVfYml0ICkK KyAgICAgICAgcHJpbnRrKFhFTkxPR19JTkZPICJUU0M6IENQVSBIb3RwbHVnIGludGVuZGVkLCBu b3Qgc2V0dGluZyBzdGFibGUgYml0XG4iKTsKIAogICAgIHJldHVybiB0c2NfcmVsaWFibGU7CiB9 CkBAIC05NTAsNiArOTYwLDggQEAgc3RhdGljIHZvaWQgX191cGRhdGVfdmNwdV9zeXN0ZW1fdGlt ZShzdHJ1Y3QgdmNwdSAqdiwgaW50IGZvcmNlKQogCiAgICAgX3UudHNjX3RpbWVzdGFtcCA9IHRz Y19zdGFtcDsKICAgICBfdS5zeXN0ZW1fdGltZSAgID0gdC0+c3RpbWVfbG9jYWxfc3RhbXA7Cisg ICAgaWYgKCB1c2VfdHNjX3N0YWJsZV9iaXQgKQorICAgICAgICBfdS5mbGFncyAgICB8PSBQVkNM T0NLX1RTQ19TVEFCTEVfQklUOwogCiAgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICkKICAgICAg ICAgX3UudHNjX3RpbWVzdGFtcCArPSB2LT5hcmNoLmh2bV92Y3B1LmNhY2hlX3RzY19vZmZzZXQ7 CkBAIC0xNDMxLDYgKzE0NDMsMjIgQEAgc3RhdGljIHZvaWQgdGltZV9jYWxpYnJhdGlvbl9zdGRf cmVuZGV6dm91cyh2b2lkICpfcikKICAgICByYWlzZV9zb2Z0aXJxKFRJTUVfQ0FMSUJSQVRFX1NP RlRJUlEpOwogfQogCisvKgorICogUmVuZGV6dm91cyBmdW5jdGlvbiB1c2VkIHdoZW4gY2xvY2tz b3VyY2UgaXMgVFNDIGFuZAorICogbm8gQ1BVIGhvdHBsdWcgd2lsbCBiZSBwZXJmb3JtZWQuCisg Ki8KK3N0YXRpYyB2b2lkIHRpbWVfY2FsaWJyYXRpb25fbm9wX3JlbmRlenZvdXModm9pZCAqX3Ip Cit7CisgICAgc3RydWN0IGNwdV9jYWxpYnJhdGlvbiAqYyA9ICZ0aGlzX2NwdShjcHVfY2FsaWJy YXRpb24pOworICAgIHN0cnVjdCBjYWxpYnJhdGlvbl9yZW5kZXp2b3VzICpyID0gX3I7CisKKyAg ICBjLT5sb2NhbF90c2Nfc3RhbXAgPSByLT5tYXN0ZXJfdHNjX3N0YW1wOworICAgIGMtPnN0aW1l X2xvY2FsX3N0YW1wID0gZ2V0X3NfdGltZSgpOworICAgIGMtPnN0aW1lX21hc3Rlcl9zdGFtcCA9 IHItPm1hc3Rlcl9zdGltZTsKKworICAgIHJhaXNlX3NvZnRpcnEoVElNRV9DQUxJQlJBVEVfU09G VElSUSk7Cit9CisKIHN0YXRpYyB2b2lkICgqdGltZV9jYWxpYnJhdGlvbl9yZW5kZXp2b3VzX2Zu KSh2b2lkICopID0KICAgICB0aW1lX2NhbGlicmF0aW9uX3N0ZF9yZW5kZXp2b3VzOwogCkBAIC0x NDQwLDYgKzE0NjgsMTMgQEAgc3RhdGljIHZvaWQgdGltZV9jYWxpYnJhdGlvbih2b2lkICp1bnVz ZWQpCiAgICAgICAgIC5zZW1hcGhvcmUgPSBBVE9NSUNfSU5JVCgwKQogICAgIH07CiAKKyAgICBp ZiAoIHVzZV90c2Nfc3RhYmxlX2JpdCApCisgICAgeworICAgICAgICBsb2NhbF9pcnFfZGlzYWJs ZSgpOworICAgICAgICByLm1hc3Rlcl9zdGltZSA9IHJlYWRfcGxhdGZvcm1fc3RpbWUoJnIubWFz dGVyX3RzY19zdGFtcCk7CisgICAgICAgIGxvY2FsX2lycV9lbmFibGUoKTsKKyAgICB9CisKICAg ICBjcHVtYXNrX2NvcHkoJnIuY3B1X2NhbGlicmF0aW9uX21hcCwgJmNwdV9vbmxpbmVfbWFwKTsK IAogICAgIC8qIEB3YWl0PTEgYmVjYXVzZSB3ZSBtdXN0IHdhaXQgZm9yIGFsbCBjcHVzIGJlZm9y ZSBmcmVlaW5nIEByLiAqLwpAQCAtMTU1NSw2ICsxNTkwLDE0IEBAIHN0YXRpYyBpbnQgX19pbml0 IHZlcmlmeV90c2NfcmVsaWFiaWxpdHkodm9pZCkKIAogICAgICAgICAgICAgaW5pdF9wZXJjcHVf dGltZSgpOwogCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogV2Ugd29uJ3QgZG8gQ1BV IEhvdHBsdWcgYW5kIFRTQyBjbG9ja3NvdXJjZSBpcyBiZWluZyB1c2VkIHdoaWNoCisJICAgICAq IG1lYW5zIHdlIGhhdmUgYSByZWxpYWJsZSBUU0MsIHBsdXMgd2UgZG9uJ3Qgc3luYyB3aXRoIGFu eSBvdGhlcgorCSAgICAgKiBjbG9ja3NvdXJjZSBzbyBubyBuZWVkIGZvciByZW5kZXp2b3VzLgor ICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoIHVzZV90c2Nfc3RhYmxlX2JpdCApCisg ICAgICAgICAgICAgICAgdGltZV9jYWxpYnJhdGlvbl9yZW5kZXp2b3VzX2ZuID0gdGltZV9jYWxp YnJhdGlvbl9ub3BfcmVuZGV6dm91czsKKwogICAgICAgICAgICAgaW5pdF90aW1lcigmY2FsaWJy YXRpb25fdGltZXIsIHRpbWVfY2FsaWJyYXRpb24sIE5VTEwsIDApOwogICAgICAgICAgICAgc2V0 X3RpbWVyKCZjYWxpYnJhdGlvbl90aW1lciwgTk9XKCkgKyBFUE9DSCk7CiAgICAgICAgIH0KLS0g CjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK