From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Dan Magenheimer" Subject: RE: [PATCH] [RFC] Building guests on monotonic Xen system time Date: Wed, 21 May 2008 13:01:52 -0600 Message-ID: <20080521130152890.00000007168@djm-pc> References: Reply-To: "dan.magenheimer@oracle.com" Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=-------2a6e347e2a6e347e Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser , "Xen-Devel (E-mail)" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format ---------2a6e347e2a6e347e Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable 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 > = > = > ---------2a6e347e2a6e347e Content-Type: application/octet-stream; name="hvmstime7.patch" Content-Disposition: attachment; filename="hvmstime7.patch" Content-Transfer-Encoding: base64 ZGlmZiAtciBlM2IxM2UxZWNmNmMgeGVuL2FyY2gveDg2L2h2bS9ocGV0LmMKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9ocGV0LmMJVGh1IE1heSAxNSAxNToxMDowNSAyMDA4ICswMTAwCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vaHBldC5jCVdlZCBNYXkgMjEgMTE6Mzc6MzEgMjAwOCAt MDYwMApAQCAtMjksOSArMjksOSBAQAogI2RlZmluZSBTX1RPX05TICAxMDAwMDAwMDAwVUxM ICAgICAgICAgICAvKiAxcyAgPSAxMF45ICBucyAqLwogI2RlZmluZSBTX1RPX0ZTICAxMDAw MDAwMDAwMDAwMDAwVUxMICAgICAvKiAxcyAgPSAxMF4xNSBmcyAqLwogCi0vKiBGcmVxdWVu Y3lfb2ZfVFNDIC8gZnJlcXVlbmN5X29mX0hQRVQgPSAzMiAqLwotI2RlZmluZSBUU0NfUEVS X0hQRVRfVElDSyAzMgotI2RlZmluZSBndWVzdF90aW1lX2hwZXQodikgKGh2bV9nZXRfZ3Vl c3RfdGltZSh2KSAvIFRTQ19QRVJfSFBFVF9USUNLKQorLyogRnJlcXVlbmN5X29mX1hlbl9z eXN0ZW1lX3RpbWUgLyBmcmVxdWVuY3lfb2ZfSFBFVCA9IDE2ICovCisjZGVmaW5lIFNUSU1F X1BFUl9IUEVUX1RJQ0sgMTYKKyNkZWZpbmUgZ3Vlc3RfdGltZV9ocGV0KHYpIChodm1fZ2V0 X2d1ZXN0X3RpbWVfbW9ubyh2KSAvIFNUSU1FX1BFUl9IUEVUX1RJQ0spCiAKICNkZWZpbmUg SFBFVF9JRCAgICAgICAgIDB4MDAwCiAjZGVmaW5lIEhQRVRfUEVSSU9EICAgICAweDAwNApA QCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyB2b2lkIGhwZXRfc3RvcF90aW1lcihIUEVUU3Rh dGUgKmgKIAogLyogdGhlIG51bWJlciBvZiBIUEVUIHRpY2sgdGhhdCBzdGFuZHMgZm9yCiAg KiAxLygyXjEwKSBzZWNvbmQsIG5hbWVseSwgMC45NzY1NjI1IG1pbGxpc2Vjb25kcyAqLwot I2RlZmluZSAgSFBFVF9USU5ZX1RJTUVfU1BBTiAgKChoLT50c2NfZnJlcSA+PiAxMCkgLyBU U0NfUEVSX0hQRVRfVElDSykKKyNkZWZpbmUgIEhQRVRfVElOWV9USU1FX1NQQU4gICgoaC0+ c3RpbWVfZnJlcSA+PiAxMCkgLyBTVElNRV9QRVJfSFBFVF9USUNLKQogCiBzdGF0aWMgdm9p ZCBocGV0X3NldF90aW1lcihIUEVUU3RhdGUgKmgsIHVuc2lnbmVkIGludCB0bikKIHsKQEAg LTU1OCwxNyArNTU4LDE3IEBAIHZvaWQgaHBldF9pbml0KHN0cnVjdCB2Y3B1ICp2KQogICAg IHNwaW5fbG9ja19pbml0KCZoLT5sb2NrKTsKIAogICAgIGgtPnZjcHUgPSB2OwotICAgIGgt PnRzY19mcmVxID0gdGlja3NfcGVyX3NlYyh2KTsKKyAgICBoLT5zdGltZV9mcmVxID0gU19U T19OUzsKIAotICAgIGgtPmhwZXRfdG9fbnNfc2NhbGUgPSAoKFNfVE9fTlMgKiBUU0NfUEVS X0hQRVRfVElDSykgPDwgMTApIC8gaC0+dHNjX2ZyZXE7CisgICAgaC0+aHBldF90b19uc19z Y2FsZSA9ICgoU19UT19OUyAqIFNUSU1FX1BFUl9IUEVUX1RJQ0spIDw8IDEwKSAvIGgtPnN0 aW1lX2ZyZXE7CiAgICAgaC0+aHBldF90b19uc19saW1pdCA9IH4wVUxMIC8gaC0+aHBldF90 b19uc19zY2FsZTsKIAogICAgIC8qIDY0LWJpdCBtYWluIGNvdW50ZXI7IDMgdGltZXJzIHN1 cHBvcnRlZDsgTGVnYWN5UmVwbGFjZW1lbnRSb3V0ZS4gKi8KICAgICBoLT5ocGV0LmNhcGFi aWxpdHkgPSAweDgwODZBMjAxVUxMOwogCiAgICAgLyogVGhpcyBpcyB0aGUgbnVtYmVyIG9m IGZlbXB0b3NlY29uZHMgcGVyIEhQRVQgdGljay4gKi8KLSAgICAvKiBIZXJlIHdlIGRlZmlu ZSBIUEVUJ3MgZnJlcXVlbmN5IHRvIGJlIDEvMzIgb2YgdGhlIFRTQydzICovCi0gICAgaC0+ aHBldC5jYXBhYmlsaXR5IHw9ICgoU19UT19GUypUU0NfUEVSX0hQRVRfVElDSy9oLT50c2Nf ZnJlcSkgPDwgMzIpOworICAgIC8qIEhlcmUgd2UgZGVmaW5lIEhQRVQncyBmcmVxdWVuY3kg dG8gYmUgMS8xNiBvZiBYZW4gc3lzdGVtIHRpbWUgKi8KKyAgICBoLT5ocGV0LmNhcGFiaWxp dHkgfD0gKChTX1RPX0ZTKlNUSU1FX1BFUl9IUEVUX1RJQ0svaC0+c3RpbWVfZnJlcSkgPDwg MzIpOwogCiAgICAgZm9yICggaSA9IDA7IGkgPCBIUEVUX1RJTUVSX05VTTsgaSsrICkKICAg ICB7CmRpZmYgLXIgZTNiMTNlMWVjZjZjIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMKLS0tIGEv eGVuL2FyY2gveDg2L2h2bS9odm0uYwlUaHUgTWF5IDE1IDE1OjEwOjA1IDIwMDggKzAxMDAK KysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwlXZWQgTWF5IDIxIDExOjM3OjMxIDIwMDgg LTA2MDAKQEAgLTE1Miw2ICsxNTIsNDkgQEAgdTY0IGh2bV9nZXRfZ3Vlc3RfdHNjKHN0cnVj dCB2Y3B1ICp2KQogICAgIHJldHVybiBob3N0X3RzYyArIHYtPmFyY2guaHZtX3ZjcHUuY2Fj aGVfdHNjX29mZnNldDsKIH0KIAorLyoKKyAqIEd1ZXN0IHRpbWUgaXMgWGVuIHN5c3RlbSB0 aW1lIChtZWFzdXJlZCBpbiBuc2VjKSBwbHVzIGFuIG9mZnNldC4KKyAqIEl0IGlzIGd1YXJh bnRlZWQgdG8gYmUgbW9ub3RvbmljCisgKi8KK3ZvaWQgaHZtX2luaXRfZ3Vlc3RfdGltZShz dHJ1Y3QgaHZtX2RvbWFpbiAqaGQpCit7CisgICAgc3RydWN0IHBsX3RpbWUgKnBsID0gJmhk LT5wbF90aW1lOworCisgICAgc3Bpbl9sb2NrX2luaXQoJnBsLT5wbF90aW1lX2xvY2spOwor ICAgIHBsLT5zdGltZV9vZmZzZXQgPSAtKHU2NClnZXRfc190aW1lX21vbm8oKTsKKyAgICBw bC0+bGFzdF9ndWVzdF90aW1lID0gMFVMTDsKK30KKwordm9pZCBodm1fc2V0X2d1ZXN0X3Rp bWUoc3RydWN0IHZjcHUgKnYsIHU2NCBndWVzdF90aW1lKQoreworICAgIHN0cnVjdCBwbF90 aW1lICpwbCA9ICZ2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi5wbF90aW1lOworICAgIHU2 NCBub3c7CisKKyAgICBzcGluX2xvY2soJnBsLT5wbF90aW1lX2xvY2spOworICAgIG5vdyA9 ICh1NjQpZ2V0X3NfdGltZV9tb25vKCkgKyBwbC0+c3RpbWVfb2Zmc2V0OworICAgIGlmIChu b3cgPD0gZ3Vlc3RfdGltZSkgeworICAgICAgICAgcGwtPnN0aW1lX29mZnNldCA9IGd1ZXN0 X3RpbWUgLSBub3c7CisgICAgICAgICBwbC0+bGFzdF9ndWVzdF90aW1lID0gZ3Vlc3RfdGlt ZSAtIG5vdzsKKyAgICB9CisgICAgLyogaWdub3JlIGF0dGVtcHRzIHRvIHNldCBndWVzdCB0 aW1lIGJhY2t3YXJkcyAqLworICAgIHNwaW5fdW5sb2NrKCZwbC0+cGxfdGltZV9sb2NrKTsK K30KKwordTY0IGh2bV9nZXRfZ3Vlc3RfdGltZV9tb25vKHN0cnVjdCB2Y3B1ICp2KQorewor ICAgIHN0cnVjdCBwbF90aW1lICpwbCA9ICZ2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi5w bF90aW1lOworICAgIHU2NCBub3c7CisKKyAgICBzcGluX2xvY2soJnBsLT5wbF90aW1lX2xv Y2spOworICAgIG5vdyA9IGdldF9zX3RpbWVfbW9ubygpICsgcGwtPnN0aW1lX29mZnNldDsK KyAgICBpZiAobm93ID4gcGwtPmxhc3RfZ3Vlc3RfdGltZSkKKyAgICAgICAgcGwtPmxhc3Rf Z3Vlc3RfdGltZSA9IG5vdzsKKyAgICBlbHNlCisgICAgICAgIG5vdyA9IHBsLT5sYXN0X2d1 ZXN0X3RpbWU7CisgICAgc3Bpbl91bmxvY2soJnBsLT5wbF90aW1lX2xvY2spOworICAgIHJl dHVybiBub3c7Cit9CisKIHZvaWQgaHZtX21pZ3JhdGVfdGltZXJzKHN0cnVjdCB2Y3B1ICp2 KQogewogICAgIHJ0Y19taWdyYXRlX3RpbWVycyh2KTsKQEAgLTI5NSw2ICszMzgsOCBAQCBp bnQgaHZtX2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gCiAgICAgc3Bpbl9sb2Nr X2luaXQoJmQtPmFyY2guaHZtX2RvbWFpbi5wYnVmX2xvY2spOwogICAgIHNwaW5fbG9ja19p bml0KCZkLT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2spOwogICAgIHNwaW5fbG9ja19pbml0 KCZkLT5hcmNoLmh2bV9kb21haW4udWNfbG9jayk7CisKKyAgICBodm1faW5pdF9ndWVzdF90 aW1lKCZkLT5hcmNoLmh2bV9kb21haW4pOwogCiAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBh cmFtc1tIVk1fUEFSQU1fSFBFVF9FTkFCTEVEXSA9IDE7CiAKQEAgLTY2MSw3ICs3MDYsNyBA QCBpbnQgaHZtX3ZjcHVfaW5pdGlhbGlzZShzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgaHBl dF9pbml0KHYpOwogIAogICAgICAgICAvKiBJbml0IGd1ZXN0IFRTQyB0byBzdGFydCBmcm9t IHplcm8uICovCi0gICAgICAgIGh2bV9zZXRfZ3Vlc3RfdGltZSh2LCAwKTsKKyAgICAgICAg aHZtX3NldF9ndWVzdF90c2ModiwgMCk7CiAKICAgICAgICAgLyogQ2FuIHN0YXJ0IHVwIHdp dGhvdXQgU0lQSS1TSVBJIG9yIHNldHZjcHVjb250ZXh0IGRvbWN0bC4gKi8KICAgICAgICAg di0+aXNfaW5pdGlhbGlzZWQgPSAxOwpAQCAtMTYzMiw3ICsxNjc3LDcgQEAgaW50IGh2bV9t c3JfcmVhZF9pbnRlcmNlcHQoc3RydWN0IGNwdV91cwogICAgIHN3aXRjaCAoIGVjeCApCiAg ICAgewogICAgIGNhc2UgTVNSX0lBMzJfVFNDOgotICAgICAgICBtc3JfY29udGVudCA9IGh2 bV9nZXRfZ3Vlc3RfdGltZSh2KTsKKyAgICAgICAgbXNyX2NvbnRlbnQgPSBodm1fZ2V0X2d1 ZXN0X3RzYyh2KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE1TUl9JQTMyX0FQSUNC QVNFOgpAQCAtMTcyNSw3ICsxNzcwLDcgQEAgaW50IGh2bV9tc3Jfd3JpdGVfaW50ZXJjZXB0 KHN0cnVjdCBjcHVfdQogICAgIHN3aXRjaCAoIGVjeCApCiAgICAgewogICAgICBjYXNlIE1T Ul9JQTMyX1RTQzoKLSAgICAgICAgaHZtX3NldF9ndWVzdF90aW1lKHYsIG1zcl9jb250ZW50 KTsKKyAgICAgICAgaHZtX3NldF9ndWVzdF90c2ModiwgbXNyX2NvbnRlbnQpOwogICAgICAg ICBwdF9yZXNldCh2KTsKICAgICAgICAgYnJlYWs7CiAKZGlmZiAtciBlM2IxM2UxZWNmNmMg eGVuL2FyY2gveDg2L2h2bS9pODI1NC5jCi0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaTgyNTQu YwlUaHUgTWF5IDE1IDE1OjEwOjA1IDIwMDggKzAxMDAKKysrIGIveGVuL2FyY2gveDg2L2h2 bS9pODI1NC5jCVdlZCBNYXkgMjEgMTE6Mzc6MzEgMjAwOCAtMDYwMApAQCAtMzEsNiArMzEs NyBAQAogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KICNp bmNsdWRlIDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDxhc20vdGltZS5oPgogI2luY2x1ZGUg PGFzbS9odm0vaHZtLmg+CiAjaW5jbHVkZSA8YXNtL2h2bS9pby5oPgogI2luY2x1ZGUgPGFz bS9odm0vc3VwcG9ydC5oPgpAQCAtODYsOCArODcsOCBAQCBzdGF0aWMgaW50IHBpdF9nZXRf Y291bnQoUElUU3RhdGUgKnBpdCwgCiAKICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBp dC0+bG9jaykpOwogCi0gICAgZCA9IG11bGRpdjY0KGh2bV9nZXRfZ3Vlc3RfdGltZSh2KSAt IHBpdC0+Y291bnRfbG9hZF90aW1lW2NoYW5uZWxdLAotICAgICAgICAgICAgICAgICBQSVRf RlJFUSwgdGlja3NfcGVyX3NlYyh2KSk7CisgICAgZCA9IG11bGRpdjY0KGh2bV9nZXRfZ3Vl c3RfdGltZV9tb25vKHYpIC0gcGl0LT5jb3VudF9sb2FkX3RpbWVbY2hhbm5lbF0sCisgICAg ICAgICAgICAgICAgIFBJVF9GUkVRLCBzX3RpY2tzX3Blcl9zZWModikpOwogCiAgICAgc3dp dGNoICggYy0+bW9kZSApCiAgICAgewpAQCAtMTE3LDggKzExOCw4IEBAIHN0YXRpYyBpbnQg cGl0X2dldF9vdXQoUElUU3RhdGUgKnBpdCwgaW4KIAogICAgIEFTU0VSVChzcGluX2lzX2xv Y2tlZCgmcGl0LT5sb2NrKSk7CiAKLSAgICBkID0gbXVsZGl2NjQoaHZtX2dldF9ndWVzdF90 aW1lKHYpIC0gcGl0LT5jb3VudF9sb2FkX3RpbWVbY2hhbm5lbF0sIAotICAgICAgICAgICAg ICAgICBQSVRfRlJFUSwgdGlja3NfcGVyX3NlYyh2KSk7CisgICAgZCA9IG11bGRpdjY0KGh2 bV9nZXRfZ3Vlc3RfdGltZV9tb25vKHYpIC0gcGl0LT5jb3VudF9sb2FkX3RpbWVbY2hhbm5l bF0sIAorICAgICAgICAgICAgICAgICBQSVRfRlJFUSwgc190aWNrc19wZXJfc2VjKHYpKTsK IAogICAgIHN3aXRjaCAoIHMtPm1vZGUgKQogICAgIHsKQEAgLTE2NCw3ICsxNjUsNyBAQCBz dGF0aWMgdm9pZCBwaXRfc2V0X2dhdGUoUElUU3RhdGUgKnBpdCwgCiAgICAgY2FzZSAzOgog ICAgICAgICAvKiBSZXN0YXJ0IGNvdW50aW5nIG9uIHJpc2luZyBlZGdlLiAqLwogICAgICAg ICBpZiAoIHMtPmdhdGUgPCB2YWwgKQotICAgICAgICAgICAgcGl0LT5jb3VudF9sb2FkX3Rp bWVbY2hhbm5lbF0gPSBodm1fZ2V0X2d1ZXN0X3RpbWUodik7CisgICAgICAgICAgICBwaXQt PmNvdW50X2xvYWRfdGltZVtjaGFubmVsXSA9IGh2bV9nZXRfZ3Vlc3RfdGltZV9tb25vKHYp OwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTE4MCw3ICsxODEsNyBAQCBzdGF0aWMg dm9pZCBwaXRfdGltZV9maXJlZChzdHJ1Y3QgdmNwdSAqCiBzdGF0aWMgdm9pZCBwaXRfdGlt ZV9maXJlZChzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqcHJpdikKIHsKICAgICB1aW50NjRfdCAq Y291bnRfbG9hZF90aW1lID0gcHJpdjsKLSAgICAqY291bnRfbG9hZF90aW1lID0gaHZtX2dl dF9ndWVzdF90aW1lKHYpOworICAgICpjb3VudF9sb2FkX3RpbWUgPSBodm1fZ2V0X2d1ZXN0 X3RpbWVfbW9ubyh2KTsKIH0KIAogc3RhdGljIHZvaWQgcGl0X2xvYWRfY291bnQoUElUU3Rh dGUgKnBpdCwgaW50IGNoYW5uZWwsIGludCB2YWwpCkBAIC0xOTUsMTEgKzE5NiwxMSBAQCBz dGF0aWMgdm9pZCBwaXRfbG9hZF9jb3VudChQSVRTdGF0ZSAqcGl0CiAgICAgICAgIHZhbCA9 IDB4MTAwMDA7CiAKICAgICBpZiAoIHYgPT0gTlVMTCApCi0gICAgICAgIHJkdHNjbGwocGl0 LT5jb3VudF9sb2FkX3RpbWVbY2hhbm5lbF0pOworICAgICAgICBwaXQtPmNvdW50X2xvYWRf dGltZVtjaGFubmVsXSA9IDA7CiAgICAgZWxzZQotICAgICAgICBwaXQtPmNvdW50X2xvYWRf dGltZVtjaGFubmVsXSA9IGh2bV9nZXRfZ3Vlc3RfdGltZSh2KTsKKyAgICAgICAgcGl0LT5j b3VudF9sb2FkX3RpbWVbY2hhbm5lbF0gPSBodm1fZ2V0X2d1ZXN0X3RpbWVfbW9ubyh2KTsK ICAgICBzLT5jb3VudCA9IHZhbDsKLSAgICBwZXJpb2QgPSBESVZfUk9VTkQoKHZhbCAqIDEw MDAwMDAwMDBVTEwpLCBQSVRfRlJFUSk7CisgICAgcGVyaW9kID0gRElWX1JPVU5EKCh2YWwg KiBzX3RpY2tzX3Blcl9zZWModikpLCBQSVRfRlJFUSk7CiAKICAgICBpZiAoICh2ID09IE5V TEwpIHx8ICFpc19odm1fdmNwdSh2KSB8fCAoY2hhbm5lbCAhPSAwKSApCiAgICAgICAgIHJl dHVybjsKQEAgLTQzNSw3ICs0MzYsNyBAQCBzdGF0aWMgaW50IHBpdF9sb2FkKHN0cnVjdCBk b21haW4gKmQsIGh2CiAgICAgICogdGltZSBqaXR0ZXIgaGVyZSwgYnV0IHRoZSB3YWxsLWNs b2NrIHdpbGwgaGF2ZSBqdW1wZWQgbWFzc2l2ZWx5LCBzbyAKICAgICAgKiB3ZSBob3BlIHRo ZSBndWVzdCBjYW4gaGFuZGxlIGl0LgogICAgICAqLwotICAgIHBpdC0+cHQwLmxhc3RfcGx0 X2d0aW1lID0gaHZtX2dldF9ndWVzdF90aW1lKGQtPnZjcHVbMF0pOworICAgIHBpdC0+cHQw Lmxhc3RfcGx0X2d0aW1lID0gaHZtX2dldF9ndWVzdF90aW1lX21vbm8oZC0+dmNwdVswXSk7 CiAgICAgZm9yICggaSA9IDA7IGkgPCAzOyBpKysgKQogICAgICAgICBwaXRfbG9hZF9jb3Vu dChwaXQsIGksIHBpdC0+aHcuY2hhbm5lbHNbaV0uY291bnQpOwogCmRpZmYgLXIgZTNiMTNl MWVjZjZjIHhlbi9hcmNoL3g4Ni9odm0vcG10aW1lci5jCi0tLSBhL3hlbi9hcmNoL3g4Ni9o dm0vcG10aW1lci5jCVRodSBNYXkgMTUgMTU6MTA6MDUgMjAwOCArMDEwMAorKysgYi94ZW4v YXJjaC94ODYvaHZtL3BtdGltZXIuYwlXZWQgTWF5IDIxIDExOjM3OjMxIDIwMDggLTA2MDAK QEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIHZvaWQgcG10X3VwZGF0ZV90aW1lKFBNVFN0YXRl ICpzKQogICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcy0+bG9jaykpOwogCiAgICAgLyog VXBkYXRlIHRoZSB0aW1lciAqLwotICAgIGN1cnJfZ3RpbWUgPSBodm1fZ2V0X2d1ZXN0X3Rp bWUocy0+dmNwdSk7CisgICAgY3Vycl9ndGltZSA9IGh2bV9nZXRfZ3Vlc3RfdGltZV9tb25v KHMtPnZjcHUpOwogICAgIHMtPnBtLnRtcl92YWwgKz0gKChjdXJyX2d0aW1lIC0gcy0+bGFz dF9ndGltZSkgKiBzLT5zY2FsZSkgPj4gMzI7CiAgICAgcy0+cG0udG1yX3ZhbCAmPSBUTVJf VkFMX01BU0s7CiAgICAgcy0+bGFzdF9ndGltZSA9IGN1cnJfZ3RpbWU7CkBAIC0yMzgsNyAr MjM4LDcgQEAgc3RhdGljIGludCBwbXRpbWVyX2xvYWQoc3RydWN0IGRvbWFpbiAqZAogICAg IH0KIAogICAgIC8qIENhbGN1bGF0ZSBmdXR1cmUgY291bnRlciB2YWx1ZXMgZnJvbSBub3cu ICovCi0gICAgcy0+bGFzdF9ndGltZSA9IGh2bV9nZXRfZ3Vlc3RfdGltZShzLT52Y3B1KTsK KyAgICBzLT5sYXN0X2d0aW1lID0gaHZtX2dldF9ndWVzdF90aW1lX21vbm8ocy0+dmNwdSk7 CiAKICAgICAvKiBTZXQgdGhlIFNDSSBzdGF0ZSBmcm9tIHRoZSByZWdpc3RlcnMgKi8gCiAg ICAgcG10X3VwZGF0ZV9zY2kocyk7CkBAIC0yNTcsNyArMjU3LDcgQEAgdm9pZCBwbXRpbWVy X2luaXQoc3RydWN0IHZjcHUgKnYpCiAKICAgICBzcGluX2xvY2tfaW5pdCgmcy0+bG9jayk7 CiAKLSAgICBzLT5zY2FsZSA9ICgodWludDY0X3QpRlJFUVVFTkNFX1BNVElNRVIgPDwgMzIp IC8gdGlja3NfcGVyX3NlYyh2KTsKKyAgICBzLT5zY2FsZSA9ICgodWludDY0X3QpRlJFUVVF TkNFX1BNVElNRVIgPDwgMzIpIC8gc190aWNrc19wZXJfc2VjKHYpOwogICAgIHMtPnZjcHUg PSB2OwogCiAgICAgLyogSW50ZXJjZXB0IHBvcnQgSS9PIChuZWVkIHR3byBoYW5kbGVycyBi ZWNhdXNlIFBNMWFfQ05UIGlzIGJldHdlZW4KZGlmZiAtciBlM2IxM2UxZWNmNmMgeGVuL2Fy Y2gveDg2L2h2bS9zdm0vc3ZtLmMKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMJ VGh1IE1heSAxNSAxNToxMDowNSAyMDA4ICswMTAwCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v c3ZtL3N2bS5jCVdlZCBNYXkgMjEgMTE6Mzc6MzEgMjAwOCAtMDYwMApAQCAtMjk5LDcgKzI5 OSw3IEBAIHN0YXRpYyB2b2lkIHN2bV9zYXZlX2NwdV9zdGF0ZShzdHJ1Y3QgdmMKICAgICBk YXRhLT5tc3JfZWZlciAgICAgICAgID0gdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyOwog ICAgIGRhdGEtPm1zcl9mbGFncyAgICAgICAgPSAtMVVMTDsKIAotICAgIGRhdGEtPnRzYyA9 IGh2bV9nZXRfZ3Vlc3RfdGltZSh2KTsKKyAgICBkYXRhLT50c2MgPSBodm1fZ2V0X2d1ZXN0 X3RzYyh2KTsKIH0KIAogCkBAIC0zMTUsNyArMzE1LDcgQEAgc3RhdGljIHZvaWQgc3ZtX2xv YWRfY3B1X3N0YXRlKHN0cnVjdCB2YwogICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZl ciA9IGRhdGEtPm1zcl9lZmVyOwogICAgIHN2bV91cGRhdGVfZ3Vlc3RfZWZlcih2KTsKIAot ICAgIGh2bV9zZXRfZ3Vlc3RfdGltZSh2LCBkYXRhLT50c2MpOworICAgIGh2bV9zZXRfZ3Vl c3RfdHNjKHYsIGRhdGEtPnRzYyk7CiB9CiAKIHN0YXRpYyB2b2lkIHN2bV9zYXZlX3ZtY2Jf Y3R4dChzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGh2bV9od19jcHUgKmN0eHQpCmRpZmYgLXIg ZTNiMTNlMWVjZjZjIHhlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS92bGFwaWMuYwlUaHUgTWF5IDE1IDE1OjEwOjA1IDIwMDggKzAxMDAKKysrIGIv eGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYwlXZWQgTWF5IDIxIDExOjM3OjMxIDIwMDggLTA2 MDAKQEAgLTUzNSw4ICs1MzUsNyBAQCBzdGF0aWMgdWludDMyX3QgdmxhcGljX2dldF90bWNj dChzdHJ1Y3QgCiAgICAgdWludDMyX3QgdG1jY3QsIHRtaWN0ID0gdmxhcGljX2dldF9yZWco dmxhcGljLCBBUElDX1RNSUNUKTsKICAgICB1aW50NjRfdCBjb3VudGVyX3Bhc3NlZDsKIAot ICAgIGNvdW50ZXJfcGFzc2VkID0gKChodm1fZ2V0X2d1ZXN0X3RpbWUodikgLSB2bGFwaWMt PnRpbWVyX2xhc3RfdXBkYXRlKQotICAgICAgICAgICAgICAgICAgICAgICogMTAwMDAwMDAw MFVMTCAvIHRpY2tzX3Blcl9zZWModikKKyAgICBjb3VudGVyX3Bhc3NlZCA9ICgoaHZtX2dl dF9ndWVzdF90aW1lX21vbm8odikgLSB2bGFwaWMtPnRpbWVyX2xhc3RfdXBkYXRlKQogICAg ICAgICAgICAgICAgICAgICAgIC8gQVBJQ19CVVNfQ1lDTEVfTlMgLyB2bGFwaWMtPmh3LnRp bWVyX2Rpdmlzb3IpOwogICAgIHRtY2N0ID0gdG1pY3QgLSBjb3VudGVyX3Bhc3NlZDsKIApA QCAtNjM4LDcgKzYzNyw3IEBAIHN0YXRpYyBpbnQgdmxhcGljX3JlYWQoCiAKIHZvaWQgdmxh cGljX3B0X2NiKHN0cnVjdCB2Y3B1ICp2LCB2b2lkICpkYXRhKQogewotICAgICooc190aW1l X3QgKilkYXRhID0gaHZtX2dldF9ndWVzdF90aW1lKHYpOworICAgICooc190aW1lX3QgKilk YXRhID0gaHZtX2dldF9ndWVzdF90aW1lX21vbm8odik7CiB9CiAKIHN0YXRpYyBpbnQgdmxh cGljX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCmRpZmYg LXIgZTNiMTNlMWVjZjZjIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCi0tLSBhL3hlbi9h cmNoL3g4Ni9odm0vdm14L3ZteC5jCVRodSBNYXkgMTUgMTU6MTA6MDUgMjAwOCArMDEwMAor KysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwlXZWQgTWF5IDIxIDExOjM3OjMxIDIw MDggLTA2MDAKQEAgLTYwNyw3ICs2MDcsNyBAQCBzdGF0aWMgdm9pZCB2bXhfc2F2ZV9jcHVf c3RhdGUoc3RydWN0IHZjCiAgICAgZGF0YS0+bXNyX3N5c2NhbGxfbWFzayA9IGd1ZXN0X3N0 YXRlLT5tc3JzW1ZNWF9JTkRFWF9NU1JfU1lTQ0FMTF9NQVNLXTsKICNlbmRpZgogCi0gICAg ZGF0YS0+dHNjID0gaHZtX2dldF9ndWVzdF90aW1lKHYpOworICAgIGRhdGEtPnRzYyA9IGh2 bV9nZXRfZ3Vlc3RfdHNjKHYpOwogfQogCiBzdGF0aWMgdm9pZCB2bXhfbG9hZF9jcHVfc3Rh dGUoc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBodm1faHdfY3B1ICpkYXRhKQpAQCAtNjI1LDcg KzYyNSw3IEBAIHN0YXRpYyB2b2lkIHZteF9sb2FkX2NwdV9zdGF0ZShzdHJ1Y3QgdmMKICAg ICB2LT5hcmNoLmh2bV92bXguc2hhZG93X2dzID0gZGF0YS0+c2hhZG93X2dzOwogI2VuZGlm CiAKLSAgICBodm1fc2V0X2d1ZXN0X3RpbWUodiwgZGF0YS0+dHNjKTsKKyAgICBodm1fc2V0 X2d1ZXN0X3RzYyh2LCBkYXRhLT50c2MpOwogfQogCiAKZGlmZiAtciBlM2IxM2UxZWNmNmMg eGVuL2FyY2gveDg2L2h2bS92cHQuYwotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZwdC5jCVRo dSBNYXkgMTUgMTU6MTA6MDUgMjAwOCArMDEwMAorKysgYi94ZW4vYXJjaC94ODYvaHZtL3Zw dC5jCVdlZCBNYXkgMjEgMTE6Mzc6MzEgMjAwOCAtMDYwMApAQCAtMTA4LDcgKzEwOCw3IEBA IHN0YXRpYyB2b2lkIHB0X2ZyZWV6ZV90aW1lKHN0cnVjdCB2Y3B1ICoKICAgICBpZiAoICFt b2RlX2lzKHYtPmRvbWFpbiwgZGVsYXlfZm9yX21pc3NlZF90aWNrcykgKQogICAgICAgICBy ZXR1cm47CiAKLSAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X3RpbWUgPSBodm1fZ2V0X2d1 ZXN0X3RpbWUodik7CisgICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF90aW1lID0gaHZtX2dl dF9ndWVzdF90aW1lX21vbm8odik7CiB9CiAKIHN0YXRpYyB2b2lkIHB0X3RoYXdfdGltZShz dHJ1Y3QgdmNwdSAqdikKQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIHB0X2ludHJfcG9zdChz dHJ1Y3QgdmNwdSAqdiwgc3RydWN0CiAgICAgICAgIGlmICggbW9kZV9pcyh2LT5kb21haW4s IG9uZV9taXNzZWRfdGlja19wZW5kaW5nKSB8fAogICAgICAgICAgICAgIG1vZGVfaXModi0+ ZG9tYWluLCBub19taXNzZWRfdGlja3NfcGVuZGluZykgKQogICAgICAgICB7Ci0gICAgICAg ICAgICBwdC0+bGFzdF9wbHRfZ3RpbWUgPSBodm1fZ2V0X2d1ZXN0X3RpbWUodik7CisgICAg ICAgICAgICBwdC0+bGFzdF9wbHRfZ3RpbWUgPSBodm1fZ2V0X2d1ZXN0X3RpbWVfbW9ubyh2 KTsKICAgICAgICAgICAgIHB0LT5wZW5kaW5nX2ludHJfbnIgPSAwOyAvKiAnY29sbGFwc2Un IGFsbCBtaXNzZWQgdGlja3MgKi8KICAgICAgICAgfQogICAgICAgICBlbHNlCkBAIC0yNzgs NyArMjc4LDcgQEAgdm9pZCBwdF9pbnRyX3Bvc3Qoc3RydWN0IHZjcHUgKnYsIHN0cnVjdAog ICAgIH0KIAogICAgIGlmICggbW9kZV9pcyh2LT5kb21haW4sIGRlbGF5X2Zvcl9taXNzZWRf dGlja3MpICYmCi0gICAgICAgICAoaHZtX2dldF9ndWVzdF90aW1lKHYpIDwgcHQtPmxhc3Rf cGx0X2d0aW1lKSApCisgICAgICAgICAoaHZtX2dldF9ndWVzdF90aW1lX21vbm8odikgPCBw dC0+bGFzdF9wbHRfZ3RpbWUpICkKICAgICAgICAgaHZtX3NldF9ndWVzdF90aW1lKHYsIHB0 LT5sYXN0X3BsdF9ndGltZSk7CiAKICAgICBjYiA9IHB0LT5jYjsKQEAgLTMwMCw3ICszMDAs NyBAQCB2b2lkIHB0X3Jlc2V0KHN0cnVjdCB2Y3B1ICp2KQogICAgIGxpc3RfZm9yX2VhY2hf ZW50cnkgKCBwdCwgaGVhZCwgbGlzdCApCiAgICAgewogICAgICAgICBwdC0+cGVuZGluZ19p bnRyX25yID0gMDsKLSAgICAgICAgcHQtPmxhc3RfcGx0X2d0aW1lID0gaHZtX2dldF9ndWVz dF90aW1lKHB0LT52Y3B1KTsKKyAgICAgICAgcHQtPmxhc3RfcGx0X2d0aW1lID0gaHZtX2dl dF9ndWVzdF90aW1lX21vbm8ocHQtPnZjcHUpOwogICAgICAgICBwdC0+c2NoZWR1bGVkID0g Tk9XKCkgKyBwdC0+cGVyaW9kOwogICAgICAgICBzZXRfdGltZXIoJnB0LT50aW1lciwgcHQt PnNjaGVkdWxlZCk7CiAgICAgfQpAQCAtMzQ2LDkgKzM0Niw5IEBAIHZvaWQgY3JlYXRlX3Bl cmlvZGljX3RpbWUoCiAKICAgICBwdC0+cGVyaW9kID0gcGVyaW9kOwogICAgIHB0LT52Y3B1 ID0gdjsKLSAgICBwdC0+bGFzdF9wbHRfZ3RpbWUgPSBodm1fZ2V0X2d1ZXN0X3RpbWUocHQt PnZjcHUpOworICAgIHB0LT5sYXN0X3BsdF9ndGltZSA9IGh2bV9nZXRfZ3Vlc3RfdGltZV9t b25vKHB0LT52Y3B1KTsKICAgICBwdC0+aXJxID0gaXJxOwotICAgIHB0LT5wZXJpb2RfY3lj bGVzID0gKHU2NClwZXJpb2QgKiBjcHVfa2h6IC8gMTAwMDAwMEw7CisgICAgcHQtPnBlcmlv ZF9jeWNsZXMgPSAodTY0KXBlcmlvZDsKICAgICBwdC0+b25lX3Nob3QgPSBvbmVfc2hvdDsK ICAgICBwdC0+c2NoZWR1bGVkID0gTk9XKCkgKyBwZXJpb2Q7CiAgICAgLyoKZGlmZiAtciBl M2IxM2UxZWNmNmMgeGVuL2FyY2gveDg2L3RpbWUuYwotLS0gYS94ZW4vYXJjaC94ODYvdGlt ZS5jCVRodSBNYXkgMTUgMTU6MTA6MDUgMjAwOCArMDEwMAorKysgYi94ZW4vYXJjaC94ODYv dGltZS5jCVdlZCBNYXkgMjEgMTE6Mzc6MzEgMjAwOCAtMDYwMApAQCAtNTM1LDYgKzUzNSw4 IEBAIHN0YXRpYyBzX3RpbWVfdCByZWFkX3BsYXRmb3JtX3N0aW1lKHZvaWQKICAgICByZXR1 cm4gc3RpbWU7CiB9CiAKK2V4dGVybiB2b2lkIGdldF9zX3RpbWVfbW9ub19pbml0KHZvaWQp OworCiBzdGF0aWMgdm9pZCBwbGF0Zm9ybV90aW1lX2NhbGlicmF0aW9uKHZvaWQpCiB7CiAg ICAgdTY0IGNvdW50OwpAQCAtNTkzLDYgKzU5NSw3IEBAIHN0YXRpYyB2b2lkIGluaXRfcGxh dGZvcm1fdGltZXIodm9pZCkKICAgICBwbHRfb3ZlcmZsb3coTlVMTCk7CiAKICAgICBwbGF0 Zm9ybV90aW1lcl9zdGFtcCA9IHBsdF9zdGFtcDY0OworICAgIGdldF9zX3RpbWVfbW9ub19p bml0KCk7CiAKICAgICBwcmludGsoIlBsYXRmb3JtIHRpbWVyIGlzICVzICVzXG4iLAogICAg ICAgICAgICBmcmVxX3N0cmluZyhwdHMtPmZyZXF1ZW5jeSksIHB0cy0+bmFtZSk7CkBAIC03 MjgsNiArNzMxLDI5IEBAIHNfdGltZV90IGdldF9zX3RpbWUodm9pZCkKICAgICByZHRzY2xs KHRzYyk7CiAgICAgZGVsdGEgPSB0c2MgLSB0LT5sb2NhbF90c2Nfc3RhbXA7CiAgICAgbm93 ID0gdC0+c3RpbWVfbG9jYWxfc3RhbXAgKyBzY2FsZV9kZWx0YShkZWx0YSwgJnQtPnRzY19z Y2FsZSk7CisKKyAgICByZXR1cm4gbm93OworfQorCitzcGlubG9ja190IGdldF9zX3RpbWVf bW9ub19sb2NrOworCit2b2lkIGdldF9zX3RpbWVfbW9ub19pbml0KHZvaWQpCit7CisgICAg c3Bpbl9sb2NrX2luaXQoJmdldF9zX3RpbWVfbW9ub19sb2NrKTsKK30KKworc190aW1lX3Qg Z2V0X3NfdGltZV9tb25vKHZvaWQpCit7CisgICAgc190aW1lX3Qgbm93OworICAgIHN0YXRp YyBzX3RpbWVfdCBsYXN0ID0gKHNfdGltZV90KTA7CisKKyAgICBzcGluX2xvY2soJmdldF9z X3RpbWVfbW9ub19sb2NrKTsKKyAgICBub3cgPSBnZXRfc190aW1lKCk7CisgICAgaWYgKG5v dyA+IGxhc3QpCisgICAgICAgIGxhc3QgPSBub3c7CisgICAgZWxzZQorICAgICAgICBub3cg PSBsYXN0OworICAgIHNwaW5fdW5sb2NrKCZnZXRfc190aW1lX21vbm9fbG9jayk7CiAKICAg ICByZXR1cm4gbm93OwogfQpkaWZmIC1yIGUzYjEzZTFlY2Y2YyB4ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9odm0uaAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAlUaHUg TWF5IDE1IDE1OjEwOjA1IDIwMDggKzAxMDAKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vaHZtLmgJV2VkIE1heSAyMSAxMTozNzozMSAyMDA4IC0wNjAwCkBAIC0xNDYsOCArMTQ2 LDkgQEAgdm9pZCBodm1fc2VuZF9hc3Npc3RfcmVxKHN0cnVjdCB2Y3B1ICp2KQogCiB2b2lk IGh2bV9zZXRfZ3Vlc3RfdHNjKHN0cnVjdCB2Y3B1ICp2LCB1NjQgZ3Vlc3RfdHNjKTsKIHU2 NCBodm1fZ2V0X2d1ZXN0X3RzYyhzdHJ1Y3QgdmNwdSAqdik7Ci0jZGVmaW5lIGh2bV9zZXRf Z3Vlc3RfdGltZSh2Y3B1LCBndGltZSkgaHZtX3NldF9ndWVzdF90c2ModmNwdSwgZ3RpbWUp Ci0jZGVmaW5lIGh2bV9nZXRfZ3Vlc3RfdGltZSh2Y3B1KSAgICAgICAgaHZtX2dldF9ndWVz dF90c2ModmNwdSkKK3ZvaWQgaHZtX3NldF9ndWVzdF90aW1lKHN0cnVjdCB2Y3B1ICp2LCB1 NjQgZ3Vlc3RfdGltZSk7Cit1NjQgaHZtX2dldF9ndWVzdF90aW1lKHN0cnVjdCB2Y3B1ICp2 KTsKK3U2NCBodm1fZ2V0X2d1ZXN0X3RpbWVfbW9ubyhzdHJ1Y3QgdmNwdSAqdik7CiAKICNk ZWZpbmUgaHZtX3BhZ2luZ19lbmFibGVkKHYpIFwKICAgICAoISEoKHYpLT5hcmNoLmh2bV92 Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9QRykpCmRpZmYgLXIgZTNiMTNlMWVjZjZjIHhl bi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bXguaAotLS0gYS94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS92bXgvdm14LmgJVGh1IE1heSAxNSAxNToxMDowNSAyMDA4ICswMTAwCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bXguaAlXZWQgTWF5IDIxIDExOjM3OjMx IDIwMDggLTA2MDAKQEAgLTQ5LDcgKzQ5LDYgQEAgdm9pZCB2bXhfYXNtX2RvX3ZtZW50cnko dm9pZCk7CiB2b2lkIHZteF9hc21fZG9fdm1lbnRyeSh2b2lkKTsKIHZvaWQgdm14X2ludHJf YXNzaXN0KHZvaWQpOwogdm9pZCB2bXhfZG9fcmVzdW1lKHN0cnVjdCB2Y3B1ICopOwotdm9p ZCBzZXRfZ3Vlc3RfdGltZShzdHJ1Y3QgdmNwdSAqdiwgdTY0IGd0aW1lKTsKIHZvaWQgdm14 X3ZsYXBpY19tc3JfY2hhbmdlZChzdHJ1Y3QgdmNwdSAqdik7CiB2b2lkIHZteF9yZWFsbW9k ZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7CiAKZGlmZiAtciBlM2IxM2UxZWNmNmMg eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdnB0LmgKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vdnB0LmgJVGh1IE1heSAxNSAxNToxMDowNSAyMDA4ICswMTAwCisrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL3ZwdC5oCVdlZCBNYXkgMjEgMTE6Mzc6MzEgMjAwOCAtMDYw MApAQCAtNTcsNyArNTcsNyBAQCB0eXBlZGVmIHN0cnVjdCBIUEVUU3RhdGUgewogdHlwZWRl ZiBzdHJ1Y3QgSFBFVFN0YXRlIHsKICAgICBzdHJ1Y3QgaHBldF9yZWdpc3RlcnMgaHBldDsK ICAgICBzdHJ1Y3QgdmNwdSAqdmNwdTsKLSAgICB1aW50NjRfdCB0c2NfZnJlcTsKKyAgICB1 aW50NjRfdCBzdGltZV9mcmVxOwogICAgIHVpbnQ2NF90IGhwZXRfdG9fbnNfc2NhbGU7IC8q IGhwZXQgdGlja3MgdG8gbnMgKG11bHRpcGxpZWQgYnkgMl4xMCkgKi8KICAgICB1aW50NjRf dCBocGV0X3RvX25zX2xpbWl0OyAvKiBtYXggaHBldCB0aWNrcyBjb252ZXJ0YWJsZSB0byBu cyAgICAgICovCiAgICAgdWludDY0X3QgbWNfb2Zmc2V0OwpAQCAtMTM3LDYgKzEzNyw5IEBA IHN0cnVjdCBwbF90aW1lIHsgICAgLyogcGxhdGZvcm0gdGltZSAqLwogICAgIHN0cnVjdCBS VENTdGF0ZSAgdnJ0YzsKICAgICBzdHJ1Y3QgSFBFVFN0YXRlIHZocGV0OwogICAgIHN0cnVj dCBQTVRTdGF0ZSAgdnBtdDsKKyAgICBpbnQ2NF90IHN0aW1lX29mZnNldDsgICAgICAgLyog Z3Vlc3RfdGltZSA9IFhlbiBzeXMgdGltZSArIHN0aW1lX29mZnNldCAqLworICAgIHVpbnQ2 NF90IGxhc3RfZ3Vlc3RfdGltZTsgICAvKiBlbnN1cmUgbW9ub3RvbmljaXR5ICovCisgICAg c3BpbmxvY2tfdCBwbF90aW1lX2xvY2s7CiB9OwogCiAjZGVmaW5lIHRpY2tzX3Blcl9zZWMo dikgKHYtPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLnRzY19mcmVxdWVuY3kpCmRpZmYgLXIg ZTNiMTNlMWVjZjZjIHhlbi9pbmNsdWRlL2FzbS14ODYvdGltZS5oCi0tLSBhL3hlbi9pbmNs dWRlL2FzbS14ODYvdGltZS5oCVRodSBNYXkgMTUgMTU6MTA6MDUgMjAwOCArMDEwMAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L3RpbWUuaAlXZWQgTWF5IDIxIDExOjM3OjMxIDIwMDgg LTA2MDAKQEAgLTM0LDQgKzM0LDYgQEAgc3RydWN0IHRtOwogc3RydWN0IHRtOwogc3RydWN0 IHRtIHdhbGxjbG9ja190aW1lKHZvaWQpOwogCisjZGVmaW5lIHNfdGlja3NfcGVyX3NlYyh2 KQkxMDAwMDAwMDAwVUxMCisKICNlbmRpZiAvKiBfX1g4Nl9USU1FX0hfXyAqLwpkaWZmIC1y IGUzYjEzZTFlY2Y2YyB4ZW4vaW5jbHVkZS94ZW4vdGltZS5oCi0tLSBhL3hlbi9pbmNsdWRl L3hlbi90aW1lLmgJVGh1IE1heSAxNSAxNToxMDowNSAyMDA4ICswMTAwCisrKyBiL3hlbi9p bmNsdWRlL3hlbi90aW1lLmgJV2VkIE1heSAyMSAxMTozNzozMSAyMDA4IC0wNjAwCkBAIC0y NCw2ICsyNCw4IEBAIHN0cnVjdCBkb21haW47CiAgKiBTeXN0ZW0gVGltZQogICogNjQgYml0 IHZhbHVlIGNvbnRhaW5pbmcgdGhlIG5hbm9zZWNvbmRzIGVsYXBzZWQgc2luY2UgYm9vdCB0 aW1lLgogICogVGhpcyB2YWx1ZSBpcyBhZGp1c3RlZCBieSBmcmVxdWVuY3kgZHJpZnQuCisg KiBtb25vIHZlcnNpb24gZ3VhcmFudGVlcyB0aGF0IGNvbnNlY3V0aXZlIHJlYWRzIGFyZSBu b24tZGVjcmVhc2luZywKKyAqIChlLmcuIHdoZW4gZmlyc3QgcmVhZCBpcyBvbiBhIGRpZmZl cmVudCBwcm9jZXNzb3IgdGhhbiBzZWNvbmQgcmVhZCkKICAqIE5PVygpIHJldHVybnMgdGhl IGN1cnJlbnQgdGltZS4KICAqIFRoZSBvdGhlciBtYWNyb3MgYXJlIGZvciBjb252ZW5pZW5j ZSB0byBhcHByb3hpbWF0ZSBzaG9ydCBpbnRlcnZhbHMKICAqIG9mIHJlYWwgdGltZSBpbnRv IHN5c3RlbSB0aW1lIApAQCAtMzIsNiArMzQsNyBAQCB0eXBlZGVmIHM2NCBzX3RpbWVfdDsK IHR5cGVkZWYgczY0IHNfdGltZV90OwogCiBzX3RpbWVfdCBnZXRfc190aW1lKHZvaWQpOwor c190aW1lX3QgZ2V0X3NfdGltZV9tb25vKHZvaWQpOwogdW5zaWduZWQgbG9uZyBnZXRfbG9j YWx0aW1lKHN0cnVjdCBkb21haW4gKmQpOwogCiBzdHJ1Y3QgdG0gewo= ---------2a6e347e2a6e347e 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 ---------2a6e347e2a6e347e--