From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH v4] xen: add steal_clock support on x86 Date: Fri, 20 May 2016 13:02:18 +0100 (BST) Message-ID: References: <1463729208-4238-1-git-send-email-jgross@suse.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 1b3j8Q-0008OP-Kp for xen-devel@lists.xenproject.org; Fri, 20 May 2016 12:02:30 +0000 In-Reply-To: <1463729208-4238-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Juergen Gross Cc: sstabellini@kernel.org, peterz@infradead.org, linux-kernel@vger.kernel.org, david.vrabel@citrix.com, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com List-Id: xen-devel@lists.xenproject.org T24gRnJpLCAyMCBNYXkgMjAxNiwgSnVlcmdlbiBHcm9zcyB3cm90ZToKPiBUaGUgcHZfdGltZV9v cHMgc3RydWN0dXJlIGNvbnRhaW5zIGEgZnVuY3Rpb24gcG9pbnRlciBmb3IgdGhlCj4gInN0ZWFs X2Nsb2NrIiBmdW5jdGlvbmFsaXR5IHVzZWQgb25seSBieSBLVk0gYW5kIFhlbiBvbiBBUk0uIFhl biBvbiB4ODYKPiB1c2VzIGl0cyBvd24gbWVjaGFuaXNtIHRvIGFjY291bnQgZm9yIHRoZSAic3Rv bGVuIiB0aW1lIGEgdGhyZWFkIHdhc24ndAo+IGFibGUgdG8gcnVuIGR1ZSB0byBoeXBlcnZpc29y IHNjaGVkdWxpbmcuCj4gCj4gQWRkIHN1cHBvcnQgaW4gWGVuIGFyY2ggaW5kZXBlbmRlbnQgdGlt ZSBoYW5kbGluZyBmb3IgdGhpcyBmZWF0dXJlIGJ5Cj4gbW92aW5nIGl0IG91dCBvZiB0aGUgYXJt IGFyY2ggaW50byBkcml2ZXJzL3hlbiBhbmQgcmVtb3ZlIHRoZSB4ODYgWGVuCj4gaGFjay4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Cj4gUmV2aWV3 ZWQtYnk6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CgpSZXZp ZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgoKCj4g VjQ6IG1pbm9yIGFkanVzdG1lbnRzIGFzIHJlcXVlc3RlZCBieSBTdGVmYW5vIFN0YWJlbGxpbmkg KHJlbW92ZQo+ICAgICBubyBsb25nZXIgbmVlZGVkICNpbmNsdWRlLCByZW1vdmUgX19pbml0IGZy b20gaGVhZGVyKQo+IFYzOiBhZGQgI2luY2x1ZGUgPGFzbS9wYXJhdmlydC5oPiB0byBhdm9pZCBi dWlsZCBlcnJvciBvbiBhcm0KPiBWMjogcmVtb3ZlIHRoZSB4ODYgZG9fc3RvbGVuX2FjY291bnRp bmcoKSBoYWNrCj4gLS0tCj4gIGFyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYyAgICB8IDE4ICsrLS0t LS0tLS0tLS0tLS0tLQo+ICBhcmNoL3g4Ni94ZW4vdGltZS5jICAgICAgICAgfCA0NCArKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL3hlbi90aW1l LmMgICAgICAgICAgfCAyMCArKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2xpbnV4L2tl cm5lbF9zdGF0LmggfCAgMSAtCj4gIGluY2x1ZGUveGVuL3hlbi1vcHMuaCAgICAgICB8ICAxICsK PiAga2VybmVsL3NjaGVkL2NwdXRpbWUuYyAgICAgIHwgMTAgLS0tLS0tLS0tLQo+ICA2IGZpbGVz IGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9hcmNoL2FybS94ZW4vZW5saWdodGVuLmMgYi9hcmNoL2FybS94ZW4vZW5saWdodGVuLmMK PiBpbmRleCA3NWNkNzM0Li43MWRiMzBjIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL3hlbi9lbmxp Z2h0ZW4uYwo+ICsrKyBiL2FyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYwo+IEBAIC0xMiw3ICsxMiw2 IEBACj4gICNpbmNsdWRlIDx4ZW4vcGFnZS5oPgo+ICAjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS9z Y2hlZC5oPgo+ICAjaW5jbHVkZSA8eGVuL3hlbi1vcHMuaD4KPiAtI2luY2x1ZGUgPGFzbS9wYXJh dmlydC5oPgo+ICAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+Cj4gICNpbmNsdWRlIDxh c20veGVuL2h5cGVyY2FsbC5oPgo+ICAjaW5jbHVkZSA8YXNtL3N5c3RlbV9taXNjLmg+Cj4gQEAg LTg0LDE5ICs4Myw2IEBAIGludCB4ZW5fdW5tYXBfZG9tYWluX2dmbl9yYW5nZShzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSwKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTCh4ZW5fdW5tYXBfZG9t YWluX2dmbl9yYW5nZSk7Cj4gIAo+IC1zdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHhlbl9zdG9s ZW5fYWNjb3VudGluZyhpbnQgY3B1KQo+IC17Cj4gLQlzdHJ1Y3QgdmNwdV9ydW5zdGF0ZV9pbmZv IHN0YXRlOwo+IC0KPiAtCUJVR19PTihjcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKTsKPiAtCj4g LQl4ZW5fZ2V0X3J1bnN0YXRlX3NuYXBzaG90KCZzdGF0ZSk7Cj4gLQo+IC0JV0FSTl9PTihzdGF0 ZS5zdGF0ZSAhPSBSVU5TVEFURV9ydW5uaW5nKTsKPiAtCj4gLQlyZXR1cm4gc3RhdGUudGltZVtS VU5TVEFURV9ydW5uYWJsZV0gKyBzdGF0ZS50aW1lW1JVTlNUQVRFX29mZmxpbmVdOwo+IC19Cj4g LQo+ICBzdGF0aWMgdm9pZCB4ZW5fcmVhZF93YWxsY2xvY2soc3RydWN0IHRpbWVzcGVjNjQgKnRz KQo+ICB7Cj4gIAl1MzIgdmVyc2lvbjsKPiBAQCAtMzU1LDggKzM0MSw4IEBAIHN0YXRpYyBpbnQg X19pbml0IHhlbl9ndWVzdF9pbml0KHZvaWQpCj4gIAo+ICAJcmVnaXN0ZXJfY3B1X25vdGlmaWVy KCZ4ZW5fY3B1X25vdGlmaWVyKTsKPiAgCj4gLQlwdl90aW1lX29wcy5zdGVhbF9jbG9jayA9IHhl bl9zdG9sZW5fYWNjb3VudGluZzsKPiAtCXN0YXRpY19rZXlfc2xvd19pbmMoJnBhcmF2aXJ0X3N0 ZWFsX2VuYWJsZWQpOwo+ICsJeGVuX3RpbWVfc2V0dXBfZ3Vlc3QoKTsKPiArCj4gIAlpZiAoeGVu X2luaXRpYWxfZG9tYWluKCkpCj4gIAkJcHZjbG9ja19ndG9kX3JlZ2lzdGVyX25vdGlmaWVyKCZ4 ZW5fcHZjbG9ja19ndG9kX25vdGlmaWVyKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hl bi90aW1lLmMgYi9hcmNoL3g4Ni94ZW4vdGltZS5jCj4gaW5kZXggYTBhNGU1NS4uNmJlMzFkZiAx MDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni94ZW4vdGltZS5jCj4gKysrIGIvYXJjaC94ODYveGVuL3Rp bWUuYwo+IEBAIC0xMSw4ICsxMSw2IEBACj4gICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4K PiAgI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jbG9j a2NoaXBzLmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgo+IC0jaW5jbHVkZSA8 bGludXgvbWF0aDY0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9nZnAuaD4KPiAgI2luY2x1ZGUgPGxp bnV4L3NsYWIuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3B2Y2xvY2tfZ3RvZC5oPgo+IEBAIC0zMSw0 NCArMjksNiBAQAo+ICAKPiAgLyogWGVuIG1heSBmaXJlIGEgdGltZXIgdXAgdG8gdGhpcyBtYW55 IG5zIGVhcmx5ICovCj4gICNkZWZpbmUgVElNRVJfU0xPUAkxMDAwMDAKPiAtI2RlZmluZSBOU19Q RVJfVElDSwkoMTAwMDAwMDAwMExMIC8gSFopCj4gLQo+IC0vKiBzbmFwc2hvdHMgb2YgcnVuc3Rh dGUgaW5mbyAqLwo+IC1zdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHZjcHVfcnVuc3RhdGVf aW5mbywgeGVuX3J1bnN0YXRlX3NuYXBzaG90KTsKPiAtCj4gLS8qIHVudXNlZCBucyBvZiBzdG9s ZW4gdGltZSAqLwo+IC1zdGF0aWMgREVGSU5FX1BFUl9DUFUodTY0LCB4ZW5fcmVzaWR1YWxfc3Rv bGVuKTsKPiAtCj4gLXN0YXRpYyB2b2lkIGRvX3N0b2xlbl9hY2NvdW50aW5nKHZvaWQpCj4gLXsK PiAtCXN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gc3RhdGU7Cj4gLQlzdHJ1Y3QgdmNwdV9ydW5z dGF0ZV9pbmZvICpzbmFwOwo+IC0JczY0IHJ1bm5hYmxlLCBvZmZsaW5lLCBzdG9sZW47Cj4gLQlj cHV0aW1lX3QgdGlja3M7Cj4gLQo+IC0JeGVuX2dldF9ydW5zdGF0ZV9zbmFwc2hvdCgmc3RhdGUp Owo+IC0KPiAtCVdBUk5fT04oc3RhdGUuc3RhdGUgIT0gUlVOU1RBVEVfcnVubmluZyk7Cj4gLQo+ IC0Jc25hcCA9IHRoaXNfY3B1X3B0cigmeGVuX3J1bnN0YXRlX3NuYXBzaG90KTsKPiAtCj4gLQkv KiB3b3JrIG91dCBob3cgbXVjaCB0aW1lIHRoZSBWQ1BVIGhhcyBub3QgYmVlbiBydW5uKmluZyog ICovCj4gLQlydW5uYWJsZSA9IHN0YXRlLnRpbWVbUlVOU1RBVEVfcnVubmFibGVdIC0gc25hcC0+ dGltZVtSVU5TVEFURV9ydW5uYWJsZV07Cj4gLQlvZmZsaW5lID0gc3RhdGUudGltZVtSVU5TVEFU RV9vZmZsaW5lXSAtIHNuYXAtPnRpbWVbUlVOU1RBVEVfb2ZmbGluZV07Cj4gLQo+IC0JKnNuYXAg PSBzdGF0ZTsKPiAtCj4gLQkvKiBBZGQgdGhlIGFwcHJvcHJpYXRlIG51bWJlciBvZiB0aWNrcyBv ZiBzdG9sZW4gdGltZSwKPiAtCSAgIGluY2x1ZGluZyBhbnkgbGVmdC1vdmVycyBmcm9tIGxhc3Qg dGltZS4gKi8KPiAtCXN0b2xlbiA9IHJ1bm5hYmxlICsgb2ZmbGluZSArIF9fdGhpc19jcHVfcmVh ZCh4ZW5fcmVzaWR1YWxfc3RvbGVuKTsKPiAtCj4gLQlpZiAoc3RvbGVuIDwgMCkKPiAtCQlzdG9s ZW4gPSAwOwo+IC0KPiAtCXRpY2tzID0gaXRlcl9kaXZfdTY0X3JlbShzdG9sZW4sIE5TX1BFUl9U SUNLLCAmc3RvbGVuKTsKPiAtCV9fdGhpc19jcHVfd3JpdGUoeGVuX3Jlc2lkdWFsX3N0b2xlbiwg c3RvbGVuKTsKPiAtCWFjY291bnRfc3RlYWxfdGlja3ModGlja3MpOwo+IC19Cj4gIAo+ICAvKiBH ZXQgdGhlIFRTQyBzcGVlZCBmcm9tIFhlbiAqLwo+ICBzdGF0aWMgdW5zaWduZWQgbG9uZyB4ZW5f dHNjX2toeih2b2lkKQo+IEBAIC0zMzUsOCArMjk1LDYgQEAgc3RhdGljIGlycXJldHVybl90IHhl bl90aW1lcl9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQo+ICAJCXJldCA9IElSUV9I QU5ETEVEOwo+ICAJfQo+ICAKPiAtCWRvX3N0b2xlbl9hY2NvdW50aW5nKCk7Cj4gLQo+ICAJcmV0 dXJuIHJldDsKPiAgfQo+ICAKPiBAQCAtNDMxLDYgKzM4OSw4IEBAIHN0YXRpYyB2b2lkIF9faW5p dCB4ZW5fdGltZV9pbml0KHZvaWQpCj4gIAl4ZW5fc2V0dXBfdGltZXIoY3B1KTsKPiAgCXhlbl9z ZXR1cF9jcHVfY2xvY2tldmVudHMoKTsKPiAgCj4gKwl4ZW5fdGltZV9zZXR1cF9ndWVzdCgpOwo+ ICsKPiAgCWlmICh4ZW5faW5pdGlhbF9kb21haW4oKSkKPiAgCQlwdmNsb2NrX2d0b2RfcmVnaXN0 ZXJfbm90aWZpZXIoJnhlbl9wdmNsb2NrX2d0b2Rfbm90aWZpZXIpOwo+ICB9Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMveGVuL3RpbWUuYyBiL2RyaXZlcnMveGVuL3RpbWUuYwo+IGluZGV4IDcxMDc4 NDIuLjIyNTdiNjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy94ZW4vdGltZS5jCj4gKysrIGIvZHJp dmVycy94ZW4vdGltZS5jCj4gQEAgLTYsNiArNiw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9tYXRo NjQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2dmcC5oPgo+ICAKPiArI2luY2x1ZGUgPGFzbS9wYXJh dmlydC5oPgo+ICAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+Cj4gICNpbmNsdWRlIDxh c20veGVuL2h5cGVyY2FsbC5oPgo+ICAKPiBAQCAtNzUsNiArNzYsMTUgQEAgYm9vbCB4ZW5fdmNw dV9zdG9sZW4oaW50IHZjcHUpCj4gIAlyZXR1cm4gcGVyX2NwdSh4ZW5fcnVuc3RhdGUsIHZjcHUp LnN0YXRlID09IFJVTlNUQVRFX3J1bm5hYmxlOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdTY0IHhlbl9z dGVhbF9jbG9jayhpbnQgY3B1KQo+ICt7Cj4gKwlzdHJ1Y3QgdmNwdV9ydW5zdGF0ZV9pbmZvIHN0 YXRlOwo+ICsKPiArCUJVR19PTihjcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKTsKPiArCXhlbl9n ZXRfcnVuc3RhdGVfc25hcHNob3QoJnN0YXRlKTsKPiArCXJldHVybiBzdGF0ZS50aW1lW1JVTlNU QVRFX3J1bm5hYmxlXSArIHN0YXRlLnRpbWVbUlVOU1RBVEVfb2ZmbGluZV07Cj4gK30KPiArCj4g IHZvaWQgeGVuX3NldHVwX3J1bnN0YXRlX2luZm8oaW50IGNwdSkKPiAgewo+ICAJc3RydWN0IHZj cHVfcmVnaXN0ZXJfcnVuc3RhdGVfbWVtb3J5X2FyZWEgYXJlYTsKPiBAQCAtODYsMyArOTYsMTMg QEAgdm9pZCB4ZW5fc2V0dXBfcnVuc3RhdGVfaW5mbyhpbnQgY3B1KQo+ICAJCUJVRygpOwo+ICB9 Cj4gIAo+ICt2b2lkIF9faW5pdCB4ZW5fdGltZV9zZXR1cF9ndWVzdCh2b2lkKQo+ICt7Cj4gKwlw dl90aW1lX29wcy5zdGVhbF9jbG9jayA9IHhlbl9zdGVhbF9jbG9jazsKPiArCj4gKwlzdGF0aWNf a2V5X3Nsb3dfaW5jKCZwYXJhdmlydF9zdGVhbF9lbmFibGVkKTsKPiArCS8qCj4gKwkgKiBXZSBj YW4ndCBzZXQgcGFyYXZpcnRfc3RlYWxfcnFfZW5hYmxlZCBhcyB0aGlzIHdvdWxkIHJlcXVpcmUg dGhlCj4gKwkgKiBjYXBhYmlsaXR5IHRvIHJlYWQgYW5vdGhlciBjcHUncyBydW5zdGF0ZSBpbmZv Lgo+ICsJICovCj4gK30KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9rZXJuZWxfc3RhdC5o IGIvaW5jbHVkZS9saW51eC9rZXJuZWxfc3RhdC5oCj4gaW5kZXggMjVhODIyZi4uNDRmZGE2NCAx MDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L2tlcm5lbF9zdGF0LmgKPiArKysgYi9pbmNsdWRl L2xpbnV4L2tlcm5lbF9zdGF0LmgKPiBAQCAtOTIsNyArOTIsNiBAQCBzdGF0aWMgaW5saW5lIHZv aWQgYWNjb3VudF9wcm9jZXNzX3RpY2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCB1c2Vy KQo+ICBleHRlcm4gdm9pZCBhY2NvdW50X3Byb2Nlc3NfdGljayhzdHJ1Y3QgdGFza19zdHJ1Y3Qg KiwgaW50IHVzZXIpOwo+ICAjZW5kaWYKPiAgCj4gLWV4dGVybiB2b2lkIGFjY291bnRfc3RlYWxf dGlja3ModW5zaWduZWQgbG9uZyB0aWNrcyk7Cj4gIGV4dGVybiB2b2lkIGFjY291bnRfaWRsZV90 aWNrcyh1bnNpZ25lZCBsb25nIHRpY2tzKTsKPiAgCj4gICNlbmRpZiAvKiBfTElOVVhfS0VSTkVM X1NUQVRfSCAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94ZW4tb3BzLmggYi9pbmNsdWRl L3hlbi94ZW4tb3BzLmgKPiBpbmRleCA4NmFiZTA3Li43N2JmOWQxIDEwMDY0NAo+IC0tLSBhL2lu Y2x1ZGUveGVuL3hlbi1vcHMuaAo+ICsrKyBiL2luY2x1ZGUveGVuL3hlbi1vcHMuaAo+IEBAIC0y MSw2ICsyMSw3IEBAIHZvaWQgeGVuX3Jlc3VtZV9ub3RpZmllcl91bnJlZ2lzdGVyKHN0cnVjdCBu b3RpZmllcl9ibG9jayAqbmIpOwo+ICAKPiAgYm9vbCB4ZW5fdmNwdV9zdG9sZW4oaW50IHZjcHUp Owo+ICB2b2lkIHhlbl9zZXR1cF9ydW5zdGF0ZV9pbmZvKGludCBjcHUpOwo+ICt2b2lkIHhlbl90 aW1lX3NldHVwX2d1ZXN0KHZvaWQpOwo+ICB2b2lkIHhlbl9nZXRfcnVuc3RhdGVfc25hcHNob3Qo c3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyAqcmVzKTsKPiAgCj4gIGludCB4ZW5fc2V0dXBfc2h1 dGRvd25fZXZlbnQodm9pZCk7Cj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9jcHV0aW1lLmMg Yi9rZXJuZWwvc2NoZWQvY3B1dGltZS5jCj4gaW5kZXggNzVmOThjNS4uOGM0YzZkYyAxMDA2NDQK PiAtLS0gYS9rZXJuZWwvc2NoZWQvY3B1dGltZS5jCj4gKysrIGIva2VybmVsL3NjaGVkL2NwdXRp bWUuYwo+IEBAIC00OTAsMTYgKzQ5MCw2IEBAIHZvaWQgYWNjb3VudF9wcm9jZXNzX3RpY2soc3Ry dWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgdXNlcl90aWNrKQo+ICB9Cj4gIAo+ICAvKgo+IC0gKiBB Y2NvdW50IG11bHRpcGxlIHRpY2tzIG9mIHN0ZWFsIHRpbWUuCj4gLSAqIEBwOiB0aGUgcHJvY2Vz cyBmcm9tIHdoaWNoIHRoZSBjcHUgdGltZSBoYXMgYmVlbiBzdG9sZW4KPiAtICogQHRpY2tzOiBu dW1iZXIgb2Ygc3RvbGVuIHRpY2tzCj4gLSAqLwo+IC12b2lkIGFjY291bnRfc3RlYWxfdGlja3Mo dW5zaWduZWQgbG9uZyB0aWNrcykKPiAtewo+IC0JYWNjb3VudF9zdGVhbF90aW1lKGppZmZpZXNf dG9fY3B1dGltZSh0aWNrcykpOwo+IC19Cj4gLQo+IC0vKgo+ICAgKiBBY2NvdW50IG11bHRpcGxl IHRpY2tzIG9mIGlkbGUgdGltZS4KPiAgICogQHRpY2tzOiBudW1iZXIgb2Ygc3RvbGVuIHRpY2tz Cj4gICAqLwo+IC0tIAo+IDIuNi42Cj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=