From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH] [RFC] Building guests on monotonic Xen system time Date: Thu, 22 May 2008 09:46:12 +0100 Message-ID: References: <20080521130152890.00000007168@djm-pc> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="B_3294294376_2677993" Return-path: In-Reply-To: <20080521130152890.00000007168@djm-pc> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "dan.magenheimer@oracle.com" , "Xen-Devel (E-mail)" List-Id: xen-devel@lists.xenproject.org > This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --B_3294294376_2677993 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit Attached is a modified version (really just renames). However the new hvm_set_guest_time() interface doesn't work for vpt.c timer modes which allow progress of time to temporarily deviate across VCPUs. I guess you don't use those modes so might not notice this issue. I think hvm guest time handling may need to be integrated into vpt.c so that correct handling can be applied for the various different types of timer mode. Having a blanket per-domain stime offset and enforcing monotonicity regardless of timer mode doesn't fly. -- Keir On 21/5/08 20:01, "Dan Magenheimer" wrote: > OK, I think this version is ready for prime-time. > > Keir, please check-in to unstable. > > [PATCH] Build hvm guest platform timers on monotonic Xen system time > > This patch moves hvm platform timers from underlying physical CPU TSC > to Xen system time and ensures monotonicity. TSC on many systems may > skew between processors, thus hvm platform timer reads were not > monotonic which led to "Time going backwards" problems. > > Signed-off-by: Dan Magenheimer > >> -----Original Message----- >> From: Keir Fraser [mailto:keir.fraser@eu.citrix.com] >> Sent: Tuesday, May 20, 2008 1:37 AM >> To: dan.magenheimer@oracle.com; Xen-Devel (E-mail) >> Subject: Re: [Xen-devel] [PATCH] [RFC] Building guests on >> monotonic Xen >> system time >> >> >> On 19/5/08 19:27, "Dan Magenheimer" >> wrote: >> >>> Why? Scaling and adjusting of xen-time-based-tsc will >>> be very difficult to coordinate with processor-based-tsc. >>> We need to always ensure that A < B < C for a guest >>> executing: >>> >>> rdtsc(A) /* untrapped */ >>> emulated_rdtsc(B) >>> rdtsc(C) /* untrapped */ >>> >>> Further, OS's use TSC as a highest-resolution time source >>> with knowledge that TSCs on different processors may >>> not be synchronized, whereas they assume that a platform >>> timer is one-per-system and monotonically increasing. >>> >>> Keir, if you disagree and see guest-TSC-on-Xen-system-time >>> as an absolute must, please let me know. >> >> I am inclined to say we should have a >> guest-TSC-on-system-time mode where >> *all* RDTSC executions get trapped. This would at least be useful as a >> baseline for tracking down guest time problems, and also provide a >> guaranteed stable TSC timesource for those who care about >> that more than >> pure performance. >> >> *However* I would agree that, with TSC virtualisation as it >> currently is, >> there actually isn't really a way to build guest TSC on Xen >> system time >> without periodically warping the TSC back or forth. The guest >> TSC runs at >> the host TSC rate and that is that! >> >> I think my original point was that at least we should not >> build all our >> other virtual time sources on this dodgy 'guest TSC'. :-) >> >> -- Keir >> >> >> --B_3294294376_2677993 Content-type: application/octet-stream; name="stime.patch" Content-disposition: attachment; filename="stime.patch" Content-transfer-encoding: base64 ZGlmZiAtciBlNjRjM2E4YzYwZTEgeGVuL2FyY2gveDg2L2h2bS9ocGV0LmMKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9ocGV0LmMJV2VkIE1heSAyMSAxNjo1NToxMSAyMDA4ICswMTAwCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vaHBldC5jCVRodSBNYXkgMjIgMDk6Mzg6NTggMjAwOCAr MDEwMApAQCAtMjksOSArMjksOSBAQAogI2RlZmluZSBTX1RPX05TICAxMDAwMDAwMDAwVUxM ICAgICAgICAgICAvKiAxcyAgPSAxMF45ICBucyAqLwogI2RlZmluZSBTX1RPX0ZTICAxMDAw MDAwMDAwMDAwMDAwVUxMICAgICAvKiAxcyAgPSAxMF4xNSBmcyAqLwogCi0vKiBGcmVxdWVu Y3lfb2ZfVFNDIC8gZnJlcXVlbmN5X29mX0hQRVQgPSAzMiAqLwotI2RlZmluZSBUU0NfUEVS X0hQRVRfVElDSyAzMgotI2RlZmluZSBndWVzdF90aW1lX2hwZXQodikgKGh2bV9nZXRfZ3Vl c3RfdGltZSh2KSAvIFRTQ19QRVJfSFBFVF9USUNLKQorLyogRnJlcXVlbmN5X29mX1hlbl9z eXN0ZW1lX3RpbWUgLyBmcmVxdWVuY3lfb2ZfSFBFVCA9IDE2ICovCisjZGVmaW5lIFNUSU1F X1BFUl9IUEVUX1RJQ0sgMTYKKyNkZWZpbmUgZ3Vlc3RfdGltZV9ocGV0KHYpIChodm1fZ2V0 X2d1ZXN0X3RpbWUodikgLyBTVElNRV9QRVJfSFBFVF9USUNLKQogCiAjZGVmaW5lIEhQRVRf SUQgICAgICAgICAweDAwMAogI2RlZmluZSBIUEVUX1BFUklPRCAgICAgMHgwMDQKQEAgLTE5 Miw3ICsxOTIsNyBAQCBzdGF0aWMgdm9pZCBocGV0X3N0b3BfdGltZXIoSFBFVFN0YXRlICpo CiAKIC8qIHRoZSBudW1iZXIgb2YgSFBFVCB0aWNrIHRoYXQgc3RhbmRzIGZvcgogICogMS8o Ml4xMCkgc2Vjb25kLCBuYW1lbHksIDAuOTc2NTYyNSBtaWxsaXNlY29uZHMgKi8KLSNkZWZp bmUgIEhQRVRfVElOWV9USU1FX1NQQU4gICgoaC0+dHNjX2ZyZXEgPj4gMTApIC8gVFNDX1BF Ul9IUEVUX1RJQ0spCisjZGVmaW5lICBIUEVUX1RJTllfVElNRV9TUEFOICAoKGgtPnN0aW1l X2ZyZXEgPj4gMTApIC8gU1RJTUVfUEVSX0hQRVRfVElDSykKIAogc3RhdGljIHZvaWQgaHBl dF9zZXRfdGltZXIoSFBFVFN0YXRlICpoLCB1bnNpZ25lZCBpbnQgdG4pCiB7CkBAIC01NTgs MTcgKzU1OCwxNyBAQCB2b2lkIGhwZXRfaW5pdChzdHJ1Y3QgdmNwdSAqdikKICAgICBzcGlu X2xvY2tfaW5pdCgmaC0+bG9jayk7CiAKICAgICBoLT52Y3B1ID0gdjsKLSAgICBoLT50c2Nf ZnJlcSA9IHRpY2tzX3Blcl9zZWModik7Ci0KLSAgICBoLT5ocGV0X3RvX25zX3NjYWxlID0g KChTX1RPX05TICogVFNDX1BFUl9IUEVUX1RJQ0spIDw8IDEwKSAvIGgtPnRzY19mcmVxOwor ICAgIGgtPnN0aW1lX2ZyZXEgPSBTX1RPX05TOworCisgICAgaC0+aHBldF90b19uc19zY2Fs ZSA9ICgoU19UT19OUyAqIFNUSU1FX1BFUl9IUEVUX1RJQ0spIDw8IDEwKSAvIGgtPnN0aW1l X2ZyZXE7CiAgICAgaC0+aHBldF90b19uc19saW1pdCA9IH4wVUxMIC8gaC0+aHBldF90b19u c19zY2FsZTsKIAogICAgIC8qIDY0LWJpdCBtYWluIGNvdW50ZXI7IDMgdGltZXJzIHN1cHBv cnRlZDsgTGVnYWN5UmVwbGFjZW1lbnRSb3V0ZS4gKi8KICAgICBoLT5ocGV0LmNhcGFiaWxp dHkgPSAweDgwODZBMjAxVUxMOwogCiAgICAgLyogVGhpcyBpcyB0aGUgbnVtYmVyIG9mIGZl bXB0b3NlY29uZHMgcGVyIEhQRVQgdGljay4gKi8KLSAgICAvKiBIZXJlIHdlIGRlZmluZSBI UEVUJ3MgZnJlcXVlbmN5IHRvIGJlIDEvMzIgb2YgdGhlIFRTQydzICovCi0gICAgaC0+aHBl dC5jYXBhYmlsaXR5IHw9ICgoU19UT19GUypUU0NfUEVSX0hQRVRfVElDSy9oLT50c2NfZnJl cSkgPDwgMzIpOworICAgIC8qIEhlcmUgd2UgZGVmaW5lIEhQRVQncyBmcmVxdWVuY3kgdG8g YmUgMS8xNiBvZiBYZW4gc3lzdGVtIHRpbWUgKi8KKyAgICBoLT5ocGV0LmNhcGFiaWxpdHkg fD0gKChTX1RPX0ZTKlNUSU1FX1BFUl9IUEVUX1RJQ0svaC0+c3RpbWVfZnJlcSkgPDwgMzIp OwogCiAgICAgZm9yICggaSA9IDA7IGkgPCBIUEVUX1RJTUVSX05VTTsgaSsrICkKICAgICB7 CmRpZmYgLXIgZTY0YzNhOGM2MGUxIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9odm0uYwlXZWQgTWF5IDIxIDE2OjU1OjExIDIwMDggKzAxMDAKKysr IGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwlUaHUgTWF5IDIyIDA5OjM5OjQwIDIwMDggKzAx MDAKQEAgLTE1Miw2ICsxNTIsNDkgQEAgdTY0IGh2bV9nZXRfZ3Vlc3RfdHNjKHN0cnVjdCB2 Y3B1ICp2KQogICAgIHJldHVybiBob3N0X3RzYyArIHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVf dHNjX29mZnNldDsKIH0KIAorLyoKKyAqIEd1ZXN0IHRpbWUgaXMgWGVuIHN5c3RlbSB0aW1l IChtZWFzdXJlZCBpbiBuc2VjKSBwbHVzIGFuIG9mZnNldC4KKyAqIEl0IGlzIGd1YXJhbnRl ZWQgdG8gYmUgbW9ub3RvbmljCisgKi8KK3ZvaWQgaHZtX2luaXRfZ3Vlc3RfdGltZShzdHJ1 Y3QgaHZtX2RvbWFpbiAqaGQpCit7CisgICAgc3RydWN0IHBsX3RpbWUgKnBsID0gJmhkLT5w bF90aW1lOworCisgICAgc3Bpbl9sb2NrX2luaXQoJnBsLT5wbF90aW1lX2xvY2spOworICAg IHBsLT5zdGltZV9vZmZzZXQgPSAtKHU2NClnZXRfc190aW1lX21vbm8oKTsKKyAgICBwbC0+ bGFzdF9ndWVzdF90aW1lID0gMFVMTDsKK30KKwordm9pZCBodm1fc2V0X2d1ZXN0X3RpbWUo c3RydWN0IHZjcHUgKnYsIHU2NCBndWVzdF90aW1lKQoreworICAgIHN0cnVjdCBwbF90aW1l ICpwbCA9ICZ2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi5wbF90aW1lOworICAgIHU2NCBu b3c7CisKKyAgICBzcGluX2xvY2soJnBsLT5wbF90aW1lX2xvY2spOworICAgIG5vdyA9ICh1 NjQpZ2V0X3NfdGltZV9tb25vKCkgKyBwbC0+c3RpbWVfb2Zmc2V0OworICAgIGlmIChub3cg PD0gZ3Vlc3RfdGltZSkgeworICAgICAgICAgcGwtPnN0aW1lX29mZnNldCA9IGd1ZXN0X3Rp bWUgLSBub3c7CisgICAgICAgICBwbC0+bGFzdF9ndWVzdF90aW1lID0gZ3Vlc3RfdGltZSAt IG5vdzsKKyAgICB9CisgICAgLyogaWdub3JlIGF0dGVtcHRzIHRvIHNldCBndWVzdCB0aW1l IGJhY2t3YXJkcyAqLworICAgIHNwaW5fdW5sb2NrKCZwbC0+cGxfdGltZV9sb2NrKTsKK30K KwordTY0IGh2bV9nZXRfZ3Vlc3RfdGltZShzdHJ1Y3QgdmNwdSAqdikKK3sKKyAgICBzdHJ1 Y3QgcGxfdGltZSAqcGwgPSAmdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4ucGxfdGltZTsK KyAgICB1NjQgbm93OworCisgICAgc3Bpbl9sb2NrKCZwbC0+cGxfdGltZV9sb2NrKTsKKyAg ICBub3cgPSBnZXRfc190aW1lX21vbm8oKSArIHBsLT5zdGltZV9vZmZzZXQ7CisgICAgaWYg KCBub3cgPiBwbC0+bGFzdF9ndWVzdF90aW1lICkKKyAgICAgICAgcGwtPmxhc3RfZ3Vlc3Rf dGltZSA9IG5vdzsKKyAgICBlbHNlCisgICAgICAgIG5vdyA9IHBsLT5sYXN0X2d1ZXN0X3Rp bWU7CisgICAgc3Bpbl91bmxvY2soJnBsLT5wbF90aW1lX2xvY2spOworICAgIHJldHVybiBu b3c7Cit9CisKIHZvaWQgaHZtX21pZ3JhdGVfdGltZXJzKHN0cnVjdCB2Y3B1ICp2KQogewog ICAgIHJ0Y19taWdyYXRlX3RpbWVycyh2KTsKQEAgLTI5NSw2ICszMzgsOCBAQCBpbnQgaHZt X2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gCiAgICAgc3Bpbl9sb2NrX2luaXQo JmQtPmFyY2guaHZtX2RvbWFpbi5wYnVmX2xvY2spOwogICAgIHNwaW5fbG9ja19pbml0KCZk LT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2spOwogICAgIHNwaW5fbG9ja19pbml0KCZkLT5h cmNoLmh2bV9kb21haW4udWNfbG9jayk7CisKKyAgICBodm1faW5pdF9ndWVzdF90aW1lKCZk LT5hcmNoLmh2bV9kb21haW4pOwogCiAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tI Vk1fUEFSQU1fSFBFVF9FTkFCTEVEXSA9IDE7CiAKQEAgLTY2MSw3ICs3MDYsNyBAQCBpbnQg aHZtX3ZjcHVfaW5pdGlhbGlzZShzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgaHBldF9pbml0 KHYpOwogIAogICAgICAgICAvKiBJbml0IGd1ZXN0IFRTQyB0byBzdGFydCBmcm9tIHplcm8u ICovCi0gICAgICAgIGh2bV9zZXRfZ3Vlc3RfdGltZSh2LCAwKTsKKyAgICAgICAgaHZtX3Nl dF9ndWVzdF90c2ModiwgMCk7CiAKICAgICAgICAgLyogQ2FuIHN0YXJ0IHVwIHdpdGhvdXQg U0lQSS1TSVBJIG9yIHNldHZjcHVjb250ZXh0IGRvbWN0bC4gKi8KICAgICAgICAgdi0+aXNf aW5pdGlhbGlzZWQgPSAxOwpAQCAtMTYzMiw3ICsxNjc3LDcgQEAgaW50IGh2bV9tc3JfcmVh ZF9pbnRlcmNlcHQoc3RydWN0IGNwdV91cwogICAgIHN3aXRjaCAoIGVjeCApCiAgICAgewog ICAgIGNhc2UgTVNSX0lBMzJfVFNDOgotICAgICAgICBtc3JfY29udGVudCA9IGh2bV9nZXRf Z3Vlc3RfdGltZSh2KTsKKyAgICAgICAgbXNyX2NvbnRlbnQgPSBodm1fZ2V0X2d1ZXN0X3Rz Yyh2KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE1TUl9JQTMyX0FQSUNCQVNFOgpA QCAtMTcyNSw3ICsxNzcwLDcgQEAgaW50IGh2bV9tc3Jfd3JpdGVfaW50ZXJjZXB0KHN0cnVj dCBjcHVfdQogICAgIHN3aXRjaCAoIGVjeCApCiAgICAgewogICAgICBjYXNlIE1TUl9JQTMy X1RTQzoKLSAgICAgICAgaHZtX3NldF9ndWVzdF90aW1lKHYsIG1zcl9jb250ZW50KTsKKyAg ICAgICAgaHZtX3NldF9ndWVzdF90c2ModiwgbXNyX2NvbnRlbnQpOwogICAgICAgICBwdF9y ZXNldCh2KTsKICAgICAgICAgYnJlYWs7CiAKZGlmZiAtciBlNjRjM2E4YzYwZTEgeGVuL2Fy Y2gveDg2L2h2bS9pODI1NC5jCi0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaTgyNTQuYwlXZWQg TWF5IDIxIDE2OjU1OjExIDIwMDggKzAxMDAKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pODI1 NC5jCVRodSBNYXkgMjIgMDk6Mzg6MDkgMjAwOCArMDEwMApAQCAtMzEsNiArMzEsNyBAQAog I2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KICNpbmNsdWRl IDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDxhc20vdGltZS5oPgogI2luY2x1ZGUgPGFzbS9o dm0vaHZtLmg+CiAjaW5jbHVkZSA8YXNtL2h2bS9pby5oPgogI2luY2x1ZGUgPGFzbS9odm0v c3VwcG9ydC5oPgpAQCAtODcsNyArODgsNyBAQCBzdGF0aWMgaW50IHBpdF9nZXRfY291bnQo UElUU3RhdGUgKnBpdCwgCiAgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwaXQtPmxvY2sp KTsKIAogICAgIGQgPSBtdWxkaXY2NChodm1fZ2V0X2d1ZXN0X3RpbWUodikgLSBwaXQtPmNv dW50X2xvYWRfdGltZVtjaGFubmVsXSwKLSAgICAgICAgICAgICAgICAgUElUX0ZSRVEsIHRp Y2tzX3Blcl9zZWModikpOworICAgICAgICAgICAgICAgICBQSVRfRlJFUSwgU1lTVEVNX1RJ TUVfSFopOwogCiAgICAgc3dpdGNoICggYy0+bW9kZSApCiAgICAgewpAQCAtMTE4LDcgKzEx OSw3IEBAIHN0YXRpYyBpbnQgcGl0X2dldF9vdXQoUElUU3RhdGUgKnBpdCwgaW4KICAgICBB U1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBpdC0+bG9jaykpOwogCiAgICAgZCA9IG11bGRpdjY0 KGh2bV9nZXRfZ3Vlc3RfdGltZSh2KSAtIHBpdC0+Y291bnRfbG9hZF90aW1lW2NoYW5uZWxd LCAKLSAgICAgICAgICAgICAgICAgUElUX0ZSRVEsIHRpY2tzX3Blcl9zZWModikpOworICAg ICAgICAgICAgICAgICBQSVRfRlJFUSwgU1lTVEVNX1RJTUVfSFopOwogCiAgICAgc3dpdGNo ICggcy0+bW9kZSApCiAgICAgewpAQCAtMTk1LDExICsxOTYsMTEgQEAgc3RhdGljIHZvaWQg cGl0X2xvYWRfY291bnQoUElUU3RhdGUgKnBpdAogICAgICAgICB2YWwgPSAweDEwMDAwOwog CiAgICAgaWYgKCB2ID09IE5VTEwgKQotICAgICAgICByZHRzY2xsKHBpdC0+Y291bnRfbG9h ZF90aW1lW2NoYW5uZWxdKTsKKyAgICAgICAgcGl0LT5jb3VudF9sb2FkX3RpbWVbY2hhbm5l bF0gPSAwOwogICAgIGVsc2UKICAgICAgICAgcGl0LT5jb3VudF9sb2FkX3RpbWVbY2hhbm5l bF0gPSBodm1fZ2V0X2d1ZXN0X3RpbWUodik7CiAgICAgcy0+Y291bnQgPSB2YWw7Ci0gICAg cGVyaW9kID0gRElWX1JPVU5EKCh2YWwgKiAxMDAwMDAwMDAwVUxMKSwgUElUX0ZSRVEpOwor ICAgIHBlcmlvZCA9IERJVl9ST1VORCh2YWwgKiBTWVNURU1fVElNRV9IWiwgUElUX0ZSRVEp OwogCiAgICAgaWYgKCAodiA9PSBOVUxMKSB8fCAhaXNfaHZtX3ZjcHUodikgfHwgKGNoYW5u ZWwgIT0gMCkgKQogICAgICAgICByZXR1cm47CmRpZmYgLXIgZTY0YzNhOGM2MGUxIHhlbi9h cmNoL3g4Ni9odm0vcG10aW1lci5jCi0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vcG10aW1lci5j CVdlZCBNYXkgMjEgMTY6NTU6MTEgMjAwOCArMDEwMAorKysgYi94ZW4vYXJjaC94ODYvaHZt L3BtdGltZXIuYwlUaHUgTWF5IDIyIDA5OjM4OjUwIDIwMDggKzAxMDAKQEAgLTI1Nyw3ICsy NTcsNyBAQCB2b2lkIHBtdGltZXJfaW5pdChzdHJ1Y3QgdmNwdSAqdikKIAogICAgIHNwaW5f bG9ja19pbml0KCZzLT5sb2NrKTsKIAotICAgIHMtPnNjYWxlID0gKCh1aW50NjRfdClGUkVR VUVOQ0VfUE1USU1FUiA8PCAzMikgLyB0aWNrc19wZXJfc2VjKHYpOworICAgIHMtPnNjYWxl ID0gKCh1aW50NjRfdClGUkVRVUVOQ0VfUE1USU1FUiA8PCAzMikgLyBTWVNURU1fVElNRV9I WjsKICAgICBzLT52Y3B1ID0gdjsKIAogICAgIC8qIEludGVyY2VwdCBwb3J0IEkvTyAobmVl ZCB0d28gaGFuZGxlcnMgYmVjYXVzZSBQTTFhX0NOVCBpcyBiZXR3ZWVuCmRpZmYgLXIgZTY0 YzNhOGM2MGUxIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCi0tLSBhL3hlbi9hcmNoL3g4 Ni9odm0vc3ZtL3N2bS5jCVdlZCBNYXkgMjEgMTY6NTU6MTEgMjAwOCArMDEwMAorKysgYi94 ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwlXZWQgTWF5IDIxIDIwOjQ5OjUzIDIwMDggKzAx MDAKQEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgdm9pZCBzdm1fc2F2ZV9jcHVfc3RhdGUo c3RydWN0IHZjCiAgICAgZGF0YS0+bXNyX2VmZXIgICAgICAgICA9IHYtPmFyY2guaHZtX3Zj cHUuZ3Vlc3RfZWZlcjsKICAgICBkYXRhLT5tc3JfZmxhZ3MgICAgICAgID0gLTFVTEw7CiAK LSAgICBkYXRhLT50c2MgPSBodm1fZ2V0X2d1ZXN0X3RpbWUodik7CisgICAgZGF0YS0+dHNj ID0gaHZtX2dldF9ndWVzdF90c2Modik7CiB9CiAKIApAQCAtMzE1LDcgKzMxNSw3IEBAIHN0 YXRpYyB2b2lkIHN2bV9sb2FkX2NwdV9zdGF0ZShzdHJ1Y3QgdmMKICAgICB2LT5hcmNoLmh2 bV92Y3B1Lmd1ZXN0X2VmZXIgPSBkYXRhLT5tc3JfZWZlcjsKICAgICBzdm1fdXBkYXRlX2d1 ZXN0X2VmZXIodik7CiAKLSAgICBodm1fc2V0X2d1ZXN0X3RpbWUodiwgZGF0YS0+dHNjKTsK KyAgICBodm1fc2V0X2d1ZXN0X3RzYyh2LCBkYXRhLT50c2MpOwogfQogCiBzdGF0aWMgdm9p ZCBzdm1fc2F2ZV92bWNiX2N0eHQoc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBodm1faHdfY3B1 ICpjdHh0KQpkaWZmIC1yIGU2NGMzYThjNjBlMSB4ZW4vYXJjaC94ODYvaHZtL3ZsYXBpYy5j Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMJV2VkIE1heSAyMSAxNjo1NToxMSAy MDA4ICswMTAwCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMJVGh1IE1heSAyMiAw OTozODo0MCAyMDA4ICswMTAwCkBAIC00NzQsNyArNDc0LDYgQEAgc3RhdGljIHVpbnQzMl90 IHZsYXBpY19nZXRfdG1jY3Qoc3RydWN0IAogICAgIHVpbnQ2NF90IGNvdW50ZXJfcGFzc2Vk OwogCiAgICAgY291bnRlcl9wYXNzZWQgPSAoKGh2bV9nZXRfZ3Vlc3RfdGltZSh2KSAtIHZs YXBpYy0+dGltZXJfbGFzdF91cGRhdGUpCi0gICAgICAgICAgICAgICAgICAgICAgKiAxMDAw MDAwMDAwVUxMIC8gdGlja3NfcGVyX3NlYyh2KQogICAgICAgICAgICAgICAgICAgICAgIC8g QVBJQ19CVVNfQ1lDTEVfTlMgLyB2bGFwaWMtPmh3LnRpbWVyX2Rpdmlzb3IpOwogICAgIHRt Y2N0ID0gdG1pY3QgLSBjb3VudGVyX3Bhc3NlZDsKIApkaWZmIC1yIGU2NGMzYThjNjBlMSB4 ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92 bXguYwlXZWQgTWF5IDIxIDE2OjU1OjExIDIwMDggKzAxMDAKKysrIGIveGVuL2FyY2gveDg2 L2h2bS92bXgvdm14LmMJV2VkIE1heSAyMSAyMDo0OTo1MyAyMDA4ICswMTAwCkBAIC02MDcs NyArNjA3LDcgQEAgc3RhdGljIHZvaWQgdm14X3NhdmVfY3B1X3N0YXRlKHN0cnVjdCB2Ywog ICAgIGRhdGEtPm1zcl9zeXNjYWxsX21hc2sgPSBndWVzdF9zdGF0ZS0+bXNyc1tWTVhfSU5E RVhfTVNSX1NZU0NBTExfTUFTS107CiAjZW5kaWYKIAotICAgIGRhdGEtPnRzYyA9IGh2bV9n ZXRfZ3Vlc3RfdGltZSh2KTsKKyAgICBkYXRhLT50c2MgPSBodm1fZ2V0X2d1ZXN0X3RzYyh2 KTsKIH0KIAogc3RhdGljIHZvaWQgdm14X2xvYWRfY3B1X3N0YXRlKHN0cnVjdCB2Y3B1ICp2 LCBzdHJ1Y3QgaHZtX2h3X2NwdSAqZGF0YSkKQEAgLTYyNSw3ICs2MjUsNyBAQCBzdGF0aWMg dm9pZCB2bXhfbG9hZF9jcHVfc3RhdGUoc3RydWN0IHZjCiAgICAgdi0+YXJjaC5odm1fdm14 LnNoYWRvd19ncyA9IGRhdGEtPnNoYWRvd19nczsKICNlbmRpZgogCi0gICAgaHZtX3NldF9n dWVzdF90aW1lKHYsIGRhdGEtPnRzYyk7CisgICAgaHZtX3NldF9ndWVzdF90c2ModiwgZGF0 YS0+dHNjKTsKIH0KIAogCmRpZmYgLXIgZTY0YzNhOGM2MGUxIHhlbi9hcmNoL3g4Ni9odm0v dnB0LmMKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92cHQuYwlXZWQgTWF5IDIxIDE2OjU1OjEx IDIwMDggKzAxMDAKKysrIGIveGVuL2FyY2gveDg2L2h2bS92cHQuYwlUaHUgTWF5IDIyIDA5 OjM4OjI5IDIwMDggKzAxMDAKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIGNyZWF0ZV9wZXJp b2RpY190aW1lKAogICAgIHB0LT52Y3B1ID0gdjsKICAgICBwdC0+bGFzdF9wbHRfZ3RpbWUg PSBodm1fZ2V0X2d1ZXN0X3RpbWUocHQtPnZjcHUpOwogICAgIHB0LT5pcnEgPSBpcnE7Ci0g ICAgcHQtPnBlcmlvZF9jeWNsZXMgPSAodTY0KXBlcmlvZCAqIGNwdV9raHogLyAxMDAwMDAw TDsKKyAgICBwdC0+cGVyaW9kX2N5Y2xlcyA9ICh1NjQpcGVyaW9kOwogICAgIHB0LT5vbmVf c2hvdCA9IG9uZV9zaG90OwogICAgIHB0LT5zY2hlZHVsZWQgPSBOT1coKSArIHBlcmlvZDsK ICAgICAvKgpkaWZmIC1yIGU2NGMzYThjNjBlMSB4ZW4vYXJjaC94ODYvdGltZS5jCi0tLSBh L3hlbi9hcmNoL3g4Ni90aW1lLmMJV2VkIE1heSAyMSAxNjo1NToxMSAyMDA4ICswMTAwCisr KyBiL3hlbi9hcmNoL3g4Ni90aW1lLmMJV2VkIE1heSAyMSAyMDo0OTo1MyAyMDA4ICswMTAw CkBAIC01MDEsNiArNTAxLDggQEAgc3RhdGljIHNfdGltZV90IHJlYWRfcGxhdGZvcm1fc3Rp bWUodm9pZAogICAgIHJldHVybiBzdGltZTsKIH0KIAorZXh0ZXJuIHZvaWQgZ2V0X3NfdGlt ZV9tb25vX2luaXQodm9pZCk7CisKIHN0YXRpYyB2b2lkIHBsYXRmb3JtX3RpbWVfY2FsaWJy YXRpb24odm9pZCkKIHsKICAgICB1NjQgY291bnQ7CkBAIC01NTksNiArNTYxLDcgQEAgc3Rh dGljIHZvaWQgaW5pdF9wbGF0Zm9ybV90aW1lcih2b2lkKQogICAgIHBsdF9vdmVyZmxvdyhO VUxMKTsKIAogICAgIHBsYXRmb3JtX3RpbWVyX3N0YW1wID0gcGx0X3N0YW1wNjQ7CisgICAg Z2V0X3NfdGltZV9tb25vX2luaXQoKTsKIAogICAgIHByaW50aygiUGxhdGZvcm0gdGltZXIg aXMgJXMgJXNcbiIsCiAgICAgICAgICAgIGZyZXFfc3RyaW5nKHB0cy0+ZnJlcXVlbmN5KSwg cHRzLT5uYW1lKTsKQEAgLTY5NCw2ICs2OTcsMjkgQEAgc190aW1lX3QgZ2V0X3NfdGltZSh2 b2lkKQogICAgIHJkdHNjbGwodHNjKTsKICAgICBkZWx0YSA9IHRzYyAtIHQtPmxvY2FsX3Rz Y19zdGFtcDsKICAgICBub3cgPSB0LT5zdGltZV9sb2NhbF9zdGFtcCArIHNjYWxlX2RlbHRh KGRlbHRhLCAmdC0+dHNjX3NjYWxlKTsKKworICAgIHJldHVybiBub3c7Cit9CisKK3NwaW5s b2NrX3QgZ2V0X3NfdGltZV9tb25vX2xvY2s7CisKK3ZvaWQgZ2V0X3NfdGltZV9tb25vX2lu aXQodm9pZCkKK3sKKyAgICBzcGluX2xvY2tfaW5pdCgmZ2V0X3NfdGltZV9tb25vX2xvY2sp OworfQorCitzX3RpbWVfdCBnZXRfc190aW1lX21vbm8odm9pZCkKK3sKKyAgICBzX3RpbWVf dCBub3c7CisgICAgc3RhdGljIHNfdGltZV90IGxhc3QgPSAoc190aW1lX3QpMDsKKworICAg IHNwaW5fbG9jaygmZ2V0X3NfdGltZV9tb25vX2xvY2spOworICAgIG5vdyA9IGdldF9zX3Rp bWUoKTsKKyAgICBpZiAobm93ID4gbGFzdCkKKyAgICAgICAgbGFzdCA9IG5vdzsKKyAgICBl bHNlCisgICAgICAgIG5vdyA9IGxhc3Q7CisgICAgc3Bpbl91bmxvY2soJmdldF9zX3RpbWVf bW9ub19sb2NrKTsKIAogICAgIHJldHVybiBub3c7CiB9CmRpZmYgLXIgZTY0YzNhOGM2MGUx IHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL2h2bS5oCVdlZCBNYXkgMjEgMTY6NTU6MTEgMjAwOCArMDEwMAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAlUaHUgTWF5IDIyIDA5OjM3OjQ5IDIwMDggKzAx MDAKQEAgLTE0Nyw4ICsxNDcsOCBAQCB2b2lkIGh2bV9zZW5kX2Fzc2lzdF9yZXEoc3RydWN0 IHZjcHUgKnYpCiAKIHZvaWQgaHZtX3NldF9ndWVzdF90c2Moc3RydWN0IHZjcHUgKnYsIHU2 NCBndWVzdF90c2MpOwogdTY0IGh2bV9nZXRfZ3Vlc3RfdHNjKHN0cnVjdCB2Y3B1ICp2KTsK LSNkZWZpbmUgaHZtX3NldF9ndWVzdF90aW1lKHZjcHUsIGd0aW1lKSBodm1fc2V0X2d1ZXN0 X3RzYyh2Y3B1LCBndGltZSkKLSNkZWZpbmUgaHZtX2dldF9ndWVzdF90aW1lKHZjcHUpICAg ICAgICBodm1fZ2V0X2d1ZXN0X3RzYyh2Y3B1KQordm9pZCBodm1fc2V0X2d1ZXN0X3RpbWUo c3RydWN0IHZjcHUgKnYsIHU2NCBndWVzdF90aW1lKTsKK3U2NCBodm1fZ2V0X2d1ZXN0X3Rp bWUoc3RydWN0IHZjcHUgKnYpOwogCiAjZGVmaW5lIGh2bV9wYWdpbmdfZW5hYmxlZCh2KSBc CiAgICAgKCEhKCh2KS0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfUEcp KQpkaWZmIC1yIGU2NGMzYThjNjBlMSB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgvdm14 LmgKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZteC5oCVdlZCBNYXkgMjEg MTY6NTU6MTEgMjAwOCArMDEwMAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgv dm14LmgJV2VkIE1heSAyMSAyMDo0OTo1MyAyMDA4ICswMTAwCkBAIC00OSw3ICs0OSw2IEBA IHZvaWQgdm14X2FzbV9kb192bWVudHJ5KHZvaWQpOwogdm9pZCB2bXhfYXNtX2RvX3ZtZW50 cnkodm9pZCk7CiB2b2lkIHZteF9pbnRyX2Fzc2lzdCh2b2lkKTsKIHZvaWQgdm14X2RvX3Jl c3VtZShzdHJ1Y3QgdmNwdSAqKTsKLXZvaWQgc2V0X2d1ZXN0X3RpbWUoc3RydWN0IHZjcHUg KnYsIHU2NCBndGltZSk7CiB2b2lkIHZteF92bGFwaWNfbXNyX2NoYW5nZWQoc3RydWN0IHZj cHUgKnYpOwogdm9pZCB2bXhfcmVhbG1vZGUoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Mp OwogCmRpZmYgLXIgZTY0YzNhOGM2MGUxIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZwdC5o Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZwdC5oCVdlZCBNYXkgMjEgMTY6NTU6 MTEgMjAwOCArMDEwMAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92cHQuaAlXZWQg TWF5IDIxIDIwOjQ5OjUzIDIwMDggKzAxMDAKQEAgLTU3LDcgKzU3LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgSFBFVFN0YXRlIHsKIHR5cGVkZWYgc3RydWN0IEhQRVRTdGF0ZSB7CiAgICAgc3Ry dWN0IGhwZXRfcmVnaXN0ZXJzIGhwZXQ7CiAgICAgc3RydWN0IHZjcHUgKnZjcHU7Ci0gICAg dWludDY0X3QgdHNjX2ZyZXE7CisgICAgdWludDY0X3Qgc3RpbWVfZnJlcTsKICAgICB1aW50 NjRfdCBocGV0X3RvX25zX3NjYWxlOyAvKiBocGV0IHRpY2tzIHRvIG5zIChtdWx0aXBsaWVk IGJ5IDJeMTApICovCiAgICAgdWludDY0X3QgaHBldF90b19uc19saW1pdDsgLyogbWF4IGhw ZXQgdGlja3MgY29udmVydGFibGUgdG8gbnMgICAgICAqLwogICAgIHVpbnQ2NF90IG1jX29m ZnNldDsKQEAgLTEzNyw2ICsxMzcsOSBAQCBzdHJ1Y3QgcGxfdGltZSB7ICAgIC8qIHBsYXRm b3JtIHRpbWUgKi8KICAgICBzdHJ1Y3QgUlRDU3RhdGUgIHZydGM7CiAgICAgc3RydWN0IEhQ RVRTdGF0ZSB2aHBldDsKICAgICBzdHJ1Y3QgUE1UU3RhdGUgIHZwbXQ7CisgICAgaW50NjRf dCBzdGltZV9vZmZzZXQ7ICAgICAgIC8qIGd1ZXN0X3RpbWUgPSBYZW4gc3lzIHRpbWUgKyBz dGltZV9vZmZzZXQgKi8KKyAgICB1aW50NjRfdCBsYXN0X2d1ZXN0X3RpbWU7ICAgLyogZW5z dXJlIG1vbm90b25pY2l0eSAqLworICAgIHNwaW5sb2NrX3QgcGxfdGltZV9sb2NrOwogfTsK IAogI2RlZmluZSB0aWNrc19wZXJfc2VjKHYpICh2LT5kb21haW4tPmFyY2guaHZtX2RvbWFp bi50c2NfZnJlcXVlbmN5KQpkaWZmIC1yIGU2NGMzYThjNjBlMSB4ZW4vaW5jbHVkZS94ZW4v dGltZS5oCi0tLSBhL3hlbi9pbmNsdWRlL3hlbi90aW1lLmgJV2VkIE1heSAyMSAxNjo1NTox MSAyMDA4ICswMTAwCisrKyBiL3hlbi9pbmNsdWRlL3hlbi90aW1lLmgJVGh1IE1heSAyMiAw OTozNjozNSAyMDA4ICswMTAwCkBAIC0yNCw2ICsyNCw4IEBAIHN0cnVjdCBkb21haW47CiAg KiBTeXN0ZW0gVGltZQogICogNjQgYml0IHZhbHVlIGNvbnRhaW5pbmcgdGhlIG5hbm9zZWNv bmRzIGVsYXBzZWQgc2luY2UgYm9vdCB0aW1lLgogICogVGhpcyB2YWx1ZSBpcyBhZGp1c3Rl ZCBieSBmcmVxdWVuY3kgZHJpZnQuCisgKiBtb25vIHZlcnNpb24gZ3VhcmFudGVlcyB0aGF0 IGNvbnNlY3V0aXZlIHJlYWRzIGFyZSBub24tZGVjcmVhc2luZywKKyAqIChlLmcuIHdoZW4g Zmlyc3QgcmVhZCBpcyBvbiBhIGRpZmZlcmVudCBwcm9jZXNzb3IgdGhhbiBzZWNvbmQgcmVh ZCkKICAqIE5PVygpIHJldHVybnMgdGhlIGN1cnJlbnQgdGltZS4KICAqIFRoZSBvdGhlciBt YWNyb3MgYXJlIGZvciBjb252ZW5pZW5jZSB0byBhcHByb3hpbWF0ZSBzaG9ydCBpbnRlcnZh bHMKICAqIG9mIHJlYWwgdGltZSBpbnRvIHN5c3RlbSB0aW1lIApAQCAtMzIsNiArMzQsNyBA QCB0eXBlZGVmIHM2NCBzX3RpbWVfdDsKIHR5cGVkZWYgczY0IHNfdGltZV90OwogCiBzX3Rp bWVfdCBnZXRfc190aW1lKHZvaWQpOworc190aW1lX3QgZ2V0X3NfdGltZV9tb25vKHZvaWQp OwogdW5zaWduZWQgbG9uZyBnZXRfbG9jYWx0aW1lKHN0cnVjdCBkb21haW4gKmQpOwogCiBz dHJ1Y3QgdG0gewpAQCAtNDcsNiArNTAsNyBAQCBzdHJ1Y3QgdG0gewogfTsKIHN0cnVjdCB0 bSBnbXRpbWUodW5zaWduZWQgbG9uZyB0KTsKIAorI2RlZmluZSBTWVNURU1fVElNRV9IWiAg MTAwMDAwMDAwMFVMTAogI2RlZmluZSBOT1coKSAgICAgICAgICAgKChzX3RpbWVfdClnZXRf c190aW1lKCkpCiAjZGVmaW5lIFNFQ09ORFMoX3MpICAgICAoKHNfdGltZV90KSgoX3MpICAq IDEwMDAwMDAwMDBVTEwpKQogI2RlZmluZSBNSUxMSVNFQ1MoX21zKSAgKChzX3RpbWVfdCko KF9tcykgKiAxMDAwMDAwVUxMKSkK --B_3294294376_2677993 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --B_3294294376_2677993--