From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joao Martins Subject: [PATCH v4 2/5] x86/time: implement tsc as clocksource Date: Wed, 14 Sep 2016 18:37:47 +0100 Message-ID: <1473874670-4986-3-git-send-email-joao.m.martins@oracle.com> References: <1473874670-4986-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: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bkE7F-00010S-EH for xen-devel@lists.xenproject.org; Wed, 14 Sep 2016 17:36:57 +0000 In-Reply-To: <1473874670-4986-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.xenproject.org Cc: Andrew Cooper , Joao Martins , Jan Beulich List-Id: xen-devel@lists.xenproject.org UmVjZW50IHg4Ni90aW1lIGNoYW5nZXMgaW1wcm92ZWQgYSBsb3Qgb2YgdGhlIG1vbm90b25pY2l0 eSBpbiB4ZW4KdGltZWtlZXBpbmcsIG1ha2luZyBpdCBtdWNoIGhhcmRlciB0byBvYnNlcnZlIHRp bWUgZ29pbmcgYmFja3dhcmRzLgpBbHRob3VnaCBwbGF0Zm9ybSB0aW1lciBjYW4ndCBiZSBleHBl Y3RlZCB0byBiZSBwZXJmZWN0bHkgaW4gc3luYyB3aXRoClRTQyBhbmQgc28gZ2V0X3NfdGltZSB3 b24ndCBiZSBndWFyYW50ZWVkIHRvIGFsd2F5cyByZXR1cm4KbW9ub3RvbmljYWxseSBpbmNyZWFz aW5nIHZhbHVlcyBhY3Jvc3MgY3B1cy4gIFRoaXMgaXMgdGhlIGNhc2UgaW4gc29tZQpvZiB0aGUg Ym94ZXMgSSBhbSB0ZXN0aW5nIHdpdGgsIG9ic2VydmluZyBzb21ldGltZXMgfjEwMCB3YXJwcyAo b2YKdmVyeSBmZXcgbmFub3NlY29uZHMgZWFjaCkgYWZ0ZXIgYSBmZXcgaG91cnMuCgpUaGlzIHBh dGNoIGludHJvZHVjZXMgc3VwcG9ydCBmb3IgdXNpbmcgVFNDIGFzIHBsYXRmb3JtIHRpbWUgc291 cmNlCndoaWNoIGlzIHRoZSBoaWdoZXN0IHJlc29sdXRpb24gdGltZSBhbmQgbW9zdCBwZXJmb3Jt YW50IHRvIGdldC4KVGhvdWdoIHRoZXJlIGFyZSBhbHNvIHNldmVyYWwgcHJvYmxlbXMgYXNzb2Np YXRlZCB3aXRoIGl0cyB1c2FnZSwgYW5kCnRoZXJlIGlzbid0IGEgY29tcGxldGUgKGFuZCBhcmNo aXRlY3R1cmFsbHkgZGVmaW5lZCkgZ3VhcmFudGVlIHRoYXQKYWxsIG1hY2hpbmVzIHdpbGwgcHJv dmlkZSByZWxpYWJsZSBhbmQgbW9ub3RvbmljIFRTQyBpbiBhbGwgY2FzZXMgKEkKYmVsaWV2ZSBJ bnRlbCB0byBiZSB0aGUgb25seSB0aGF0IGNhbiBndWFyYW50ZWUgdGhhdD8pIEZvciB0aGlzIHJl YXNvbgppdCdzIHNldCB3aXRoIGxlc3MgcHJpb3JpdHkgd2hlbiBjb21wYXJlZCB0byBIUEVUIHVu bGVzcyBhZG1pbnN0cmF0b3IKY2hhbmdlcyAiY2xvY2tzb3VyY2UiIGJvb3Qgb3B0aW9uIHRvICJ0 c2MiLiBJbml0aWFsaXppbmcgVFNDCmNsb2Nrc291cmNlIHJlcXVpcmVzIGFsbCBDUFVzIHVwIHRv IGhhdmUgdGhlIHRzYyByZWxpYWJpbGl0eSBjaGVja3MKcGVyZm9ybWVkLiBpbml0X3hlbl90aW1l IGlzIGNhbGxlZCBiZWZvcmUgYWxsIENQVXMgYXJlIHVwLCBzbyBmb3IKZXhhbXBsZSB3ZSB3b3Vs ZCBzdGFydCB3aXRoIEhQRVQgKG9yIEFDUEksIFBJVCkgYXQgYm9vdCB0aW1lLCBhbmQKc3dpdGNo IGxhdGVyIHRvIFRTQy4gVGhlIHN3aXRjaCB0aGVuIGhhcHBlbnMgb24gdmVyaWZ5X3RzY19yZWxp YWJpbGl0eQppbml0Y2FsbCB0aGF0IGlzIGludm9rZWQgd2hlbiBhbGwgQ1BVcyBhcmUgdXAuIFdo ZW4gYXR0ZW1wdGluZyB0bwppbml0aWFsaXplIFRTQyB3ZSBhbHNvIGNoZWNrIGZvciB0aW1lIHdh cnBzIGFuZCBpZiBpdCBoYXMgaW52YXJpYW50ClRTQy4gTm90ZSB0aGF0IHdoaWxlIHdlIGRlZW0g cmVsaWFibGUgYSBDT05TVEFOVF9UU0Mgd2l0aCBubyBkZWVwCkMtc3RhdGVzLCBpdCBtaWdodCBu b3QgYWx3YXlzIGJlIHRoZSBjYXNlLCBzbyB3ZSdyZSBjb25zZXJ2YXRpdmUgYW5kCmFsbG93IFRT QyB0byBiZSB1c2VkIGFzIHBsYXRmb3JtIHRpbWVyIG9ubHkgd2l0aCBpbnZhcmlhbnQgVFNDLgpB ZGRpdGlvbmFsbHkgd2UgY2hlY2sgaWYgQ1BVIEhvdHBsdWcgaXNuJ3QgbWVhbnQgdG8gYmUgcGVy Zm9ybWVkIG9uCnRoZSBob3N0IHdoaWNoIHdpbGwgZWl0aGVyIGJlIHdoZW4gbWF4IHZjcHVzIGFu ZCBudW1fcHJlc2VudF9jcHUgYXJlCnRoZSBzYW1lLiBUaGlzIGlzIGJlY2F1c2UgYSBuZXdseSBo b3RwbHVnZ2VkIENQVSBtYXkgbm90IHNhdGlzZnkgdGhlCmNvbmRpdGlvbiBvZiBoYXZpbmcgYWxs IFRTQ3Mgc3luY2hyb25pemVkIC0gc28gd2hlbiBoYXZpbmcgdHNjCmNsb2Nrc291cmNlIGJlaW5n IHVzZWQgd2UgYWxsb3cgb2ZmbGluaW5nIENQVXMgYnV0IG5vdCBvbmxpbmluZyBhbnkKb25lcyBi YWNrLiBGaW5hbGx5IHdlIHByZXZlbnQgVFNDIGZyb20gYmVpbmcgdXNlZCBhcyBjbG9ja3NvdXJj ZSBvbgptdWx0aXBsZSBzb2NrZXRzIGJlY2F1c2UgaXQgaXNuJ3QgZ3VhcmFudGVlZCB0byBiZSBp bnZhcmlhbnQuIEZ1cnRoZXIKcmVsYXhpbmcgb2YgdGhpcyBsYXN0IHJlcXVpcmVtZW50IGlzIGFk ZGVkIGluIGEgc2VwYXJhdGUgcGF0Y2gsIHN1Y2gKdGhhdCB3ZSBhbGxvdyB2ZW5kb3JzIHdpdGgg c3VjaCBndWFyYW50ZWUgdG8gdXNlIFRTQyBhcyBjbG9ja3NvdXJjZS4KSW4gY2FzZSBhbnkgb2Yg dGhlc2UgY29uZGl0aW9ucyBpcyBub3QgbWV0LCB3ZSBrZWVwIHRoZSBjbG9ja3NvdXJjZQp0aGF0 IHdhcyBwcmV2aW91c2x5IGluaXRpYWxpemVkIG9uIGluaXRfeGVuX3RpbWUuCgpTaW5jZSBiNjQ0 MzhjN2MgKCJ4ODYvdGltZTogdXNlIGNvcnJlY3QgKGxvY2FsKSB0aW1lIHN0YW1wIGluCmNvbnN0 YW50LVRTQyBjYWxpYnJhdGlvbiBmYXN0IHBhdGgiKSB1cGRhdGVzIHRvIGNwdSB0aW1lIHVzZSBs b2NhbApzdGFtcHMsIHdoaWNoIG1lYW5zIHBsYXRmb3JtIHRpbWVyIGlzIG9ubHkgdXNlZCB0byBz ZWVkIHRoZSBpbml0aWFsCmNwdSB0aW1lLiAgV2l0aCBjbG9ja3NvdXJjZT10c2MgdGhlcmUgaXMg bm8gbmVlZCB0byBiZSBpbiBzeW5jIHdpdGgKYW5vdGhlciBjbG9ja3NvdXJjZSwgc28gd2UgcmVz ZWVkIHRoZSBsb2NhbC9tYXN0ZXIgc3RhbXBzIHRvIGJlIHZhbHVlcwpvZiBUU0MgYW5kIHVwZGF0 ZSB0aGUgcGxhdGZvcm0gdGltZSBzdGFtcHMgYWNjb3JkaW5nbHkuIFRpbWUKY2FsaWJyYXRpb24g aXMgc2V0IHRvIDFzZWMgYWZ0ZXIgd2Ugc3dpdGNoIHRvIFRTQywgdGh1cyB0aGVzZSBzdGFtcHMK YXJlIHJlc2VlZGVkIHRvIGFsc28gZW5zdXJlIG1vbm90b25pYyByZXR1cm5pbmcgdmFsdWVzIHJp Z2h0IGFmdGVyIHRoZQpwb2ludCB3ZSBzd2l0Y2ggdG8gVFNDLiBUaGlzIGlzIGFsc28gdG8gYXZv aWQgdGhlIHBvc3NpYmlsaXR5IG9mCmhhdmluZyBpbmNvbnNpc3RlbnQgcmVhZGluZ3MgaW4gdGhp cyBzaG9ydCBwZXJpb2QgKGkuZS4gdW50aWwKY2FsaWJyYXRpb24gZmlyZXMpLgoKU2lnbmVkLW9m Zi1ieTogSm9hbyBNYXJ0aW5zIDxqb2FvLm0ubWFydGluc0BvcmFjbGUuY29tPgotLS0KQ2M6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+CgpDaGFuZ2VzIHNpbmNlIHYzOgogLSBSZWFsbHkgZml4ICJIUEVU IHN3aXRjaGluZyB0byBUU0MiIGNvbW1lbnQuIERlc3BpdGUgbWVudGlvbmVkIGluIHRoZQogaW4g cHJldmlvdXMgdmVyc2lvbiwgdGhlIGNoYW5nZSB3YXNuJ3QgdGhlcmUuCiAtIFJlbW92ZSBwYXJl bnRoZXNpcyBhcm91bmQgdGhlIGZ1bmN0aW9uIGNhbGwgaW4gaW5pdF9wbGF0Zm9ybV90aW1lcgog LSBNZXJnZSBpZiBvbiB2ZXJpZnlfdHNjX3JlbGlhYmlsaXR5IHdpdGggb3B0X2Nsb2Nrc291cmNl IGNoZWNrCiAtIFJlbW92ZWQgY29tbWVudCBhYm92ZSAiLmluaXQgPSBpbml0X3RzY3RpbWVyIgog LSBGaXh1cCBkb2NzIHVwZGF0ZWQgaW50byB0aGlzIHBhdGNoLgogLSBNb3ZlIGhvc3RfdHNjX2lz X2Nsb2Nrc291cmNlKCkgYW5kIENQVSBob3RwbHVnIHBvc3NpYmlsaXR5IGNoZWNrIHRvIHRoaXMK IHBhdGNoLgogLSBzL2hvc3RfdHNjX2lzX2Nsb2Nrc291cmNlL2Nsb2Nrc291cmNlX2lzX3RzYwog LSBVc2UgYm9vbCBpbnN0ZWFkIG9mIGJvb2xfdAogLSBBZGQgYSBjb21tZW50IGFib3ZlIGluaXRf dHNjdGltZXIoKSBkZWNsYXJhdGlvbiBtZW50aW9uaW5nIHRoZQogICByZWxpYWJsZSBUU0MgY2hl Y2tzIG9uIHZlcmlmeV90c2NfcmVsaWFiaWxpdHkoKSwgdW5kZXIgd2hpY2ggdGhlCiAgIGZ1bmN0 aW9uIGlzIGludm9rZWQuCiAtIFByZXZlbnQgY2xvY2tzb3VyY2U9dHNjIG9uIHBsYXRmb3JtcyB3 aXRoIG11bHRpcGxlIHNvY2tldHMuIEZ1cnRoZXIKIHJlbGF4aW5nIG9mIHRoaXMgcmVxdWlyZW1l bnQgaXMgYWRkZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaCwgYXMKIGV4dGVuc2lvbiBvZiAidHNjIiBi b290IHBhcmFtZXRlci4KIC0gUmVtb3ZlZCBjb250cm9sIGdyb3VwIHRvIHVwZGF0ZSBjcHVfdGlt ZSBhbmQgZG8gaW5zdGVhZCB3aXRoCiAgIG9uX3NlbGVjdGVkX2NwdXMgdG8gYXZvaWQgYW55IHBv dGVudGlhbCByYWNlcy4KIC0gQWNjb21vZGF0ZSBjb21tb24gcGF0aCBiZXR3ZWVuIGluaXRfeGVu X3RpbWUgYW5kIFRTQyBzd2l0Y2ggaW50bwogdHJ5X3BsYXRmb3JtX3RpbWVyX3RhaWwsIHN1Y2gg dGhhdCBmaW5pc2hpbmcgcGxhdGZvcm0gdGltZXIKIGluaXRpYWxpemF0aW9uIGlzIGRvbmUgaW4g dGhlIHNhbWUgcGxhY2UgKGluY2x1ZGluZyBwbGF0Zm9ybSB0aW1lcgogb3ZlcmZsb3cgd2hpY2gg d2FzIHByZXZpb3VzbHkgd2FzIHJlbW92ZWQgaW4gcHJldmlvdXMgdmVyc2lvbnMpLgogLSBDaGFu Z2VkIFRTQyBjb3VudGVyX2JpdHMgNjMgdG8gYXZvaWQgbWlzaGFuZGxpbmcgb2YgVFNDIGNvdW50 ZXIKIHdyYXAtYXJvdW5kIGluIHBsYXRmb3JtIHRpbWVyIG92ZXJmbG93IHRpbWVyLgogLSBNb3Zl ZCBwYXJhZ3JhcGggQ1BVIEhvdHBsdWcgZnJvbSBsYXN0IHBhdGNoIGFuZCBhZGQgY29tbWVudCBv bgogICBjb21taXQgbWVzc2FnZSBhYm91dCBtdWx0aXBsZSBzb2NrZXRzIFRTQyBzeW5jLgogLSBz L2luaXRfdHNjdGltZXIvaW5pdF90c2MvZyB0byBiZSBjb25zaXN0ZW50IHdpdGggb3RoZXIgVFND IHBsYXRmb3JtCiB0aW1lciBmdW5jdGlvbnMuCgpDaGFuZ2VzIHNpbmNlIHYyOgogLSBTdWdnZXN0 ICJIUEVUIHN3aXRjaGluZyB0byBUU0MiIG9ubHkgYXMgYW4gZXhhbXBsZSBhcyBvdGhlcndpc2Ug aXQKIHdvdWxkIGJlIG1pc2xlYWRpbmcgb24gcGxhdGZvcm1zIG5vdCBoYXZpbmcgb25lLgogLSBD aGFuZ2UgaW5pdF90c2N0aW1lciB0byBza2lwIGFsbCB0aGUgdGVzdHMgYW5kIGFzc3VtZSBpdCdz IGNhbGxlZAogb25seSBvbiByZWxpYWJsZSBUU0MgY29uZGl0aW9ucyBhbmQgbm8gd2FycHMgb2Jz ZXJ2ZWQuIFRpZHkKIGluaXRpYWxpemF0aW9uIG9uIHZlcmlmeV90c2NfcmVsaWFiaWxpdHkgYXMg c3VnZ2VzdGVkIGJ5IEtvbnJhZC4KIC0gQ09OU1RBTlRfVFNDIGFuZCBtYXhfY3N0YXRlIDw9IDIg Y2FzZSByZW1vdmVkIGFuZCBvbmx5IGFsbG93IHRzYwogICBjbG9ja3NvdXJjZSBpbiBpbnZhcmlh bnQgVFNDIGJveGVzLgogLSBQcmVmZXIgb21pdCAhPTAgb24gaW5pdF9wbGF0Zm9ybV90aW1lciBm b3IgdHNjIGNhc2UuCiAtIENoYW5nZSBjb21tZW50IG9uIGluaXRfcGxhdGZvcm1fdGltZXIuCiAt IEFkZCBjb21tZW50IG9uIHBsdF90c2MgZGVjbGFyYXRpb24uCiAtIFJlaW5pdCBDUFUgdGltZSBm b3IgYWxsIG9ubGluZSBjcHVzIGluc3RlYWQgb2YganVzdCBDUFUgMC4KIC0gVXNlIHJkdHNjX29y ZGVyZWQoKSBhcyBvcHBvc2VkIHRvIHJkdHNjKCkKIC0gUmVtb3ZlIHRzY19mcmVxIHZhcmlhYmxl IGFuZCBzZXQgcGx0X3RzYyBjbG9ja3NvdXJjZSBmcmVxdWVuY3kKIHdpdGggdGhlIHJlZmluZWQg dHNjIGNhbGlicmF0aW9uLgogLSBSZXdvcmsgYSBiaXQgdGhlIGNvbW1pdCBtZXNzYWdlLgoKQ2hh bmdlcyBzaW5jZSB2MToKIC0gcy9wcmludGsvcHJpbnRrKFhFTkxPR19JTkZPCiAtIFJlbW92ZSBl eHRyYSBzcGFjZSBvbiBpbm5lciBicmFja2V0cwogLSBBZGQgbWlzc2luZyBzcGFjZSBhcm91bmQg YnJhY2tldHMKIC0gRGVmZXIgVFNDIGluaXRpYWxpemF0aW9uIHdoZW4gYWxsIENQVXMgYXJlIHVw LgoKQ2hhbmdlcyBzaW5jZSBSRkM6CiAtIFNwZWxsaW5nIGZpeGVzIGluIHRoZSBjb21taXQgbWVz c2FnZS4KIC0gUmVtb3ZlIHVudXNlZCBjbG9ja3NvdXJjZV9pc190c2MgdmFyaWFibGUgYW5kIGlu dHJvZHVjZSBpdCBpbnN0ZWFkCiBvbiB0aGUgcGF0Y2ggdGhhdCB1c2VzIGl0LgogLSBNb3ZlIHBs dF90c2MgZnJvbSBzZWNvbmQgdG8gbGFzdCBpbiB0aGUgYXZhaWxhYmxlIGNsb2Nrc291cmNlcy4K LS0tCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biB8ICAgNiArLQogeGVuL2Fy Y2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jICAgfCAgIDMgKy0KIHhlbi9hcmNoL3g4Ni90aW1l LmMgICAgICAgICAgICAgICAgIHwgMTI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni90aW1lLmggICAgICAgICAgfCAgIDEgKwogNCBmaWxl cyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bgppbmRleCAzYTI1MGNiLi5mOTJmYjNmIDEwMDY0NAotLS0gYS9k b2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgorKysgYi9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bgpAQCAtMjY0LDkgKzI2NCwxMyBAQCBtaW5pbXVtIG9mIDMyTSwg c3ViamVjdCB0byBhIHN1aXRhYmx5IGFsaWduZWQgYW5kIHNpemVkIGNvbnRpZ3VvdXMKIHJlZ2lv biBvZiBtZW1vcnkgYmVpbmcgYXZhaWxhYmxlLgogCiAjIyMgY2xvY2tzb3VyY2UKLT4gYD0gcGl0 IHwgaHBldCB8IGFjcGlgCis+IGA9IHBpdCB8IGhwZXQgfCBhY3BpIHwgdHNjYAogCiBJZiBzZXQs IG92ZXJyaWRlIFhlbidzIGRlZmF1bHQgY2hvaWNlIGZvciB0aGUgcGxhdGZvcm0gdGltZXIuCitI YXZpbmcgVFNDIGFzIHBsYXRmb3JtIHRpbWVyIHJlcXVpcmVzIGJlaW5nIGV4cGxpY2l0bHkgc2V0 LiBUaGlzIGlzIGJlY2F1c2UKK1RTQyBjYW4gb25seSBiZSBzYWZlbHkgdXNlZCBpZiBDUFUgaG90 cGx1ZyBpc24ndCBwZXJmb3JtZWQgb24gdGhlIHN5c3RlbS4gSW4KK3NvbWUgcGxhdGZvcm1zLCAi bWF4Y3B1cyIgcGFyYW1ldGVyIG1heSByZXF1aXJlIGZ1cnRoZXIgYWRqdXN0bWVudCB0byB0aGUK K251bWJlciBvZiBvbmxpbmUgY3B1cy4KIAogIyMjIGNtY2ktdGhyZXNob2xkCiA+IGA9IDxpbnRl Z2VyPmAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wbGF0Zm9ybV9oeXBlcmNhbGwuYyBiL3hl bi9hcmNoL3g4Ni9wbGF0Zm9ybV9oeXBlcmNhbGwuYwppbmRleCA3ODBmMjJkLi4wODc5ZTE5IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcGxhdGZvcm1faHlwZXJjYWxsLmMKKysrIGIveGVuL2Fy Y2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jCkBAIC02MzEsNyArNjMxLDggQEAgcmV0X3QgZG9f cGxhdGZvcm1fb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fcGxhdGZvcm1fb3BfdCkgdV94 ZW5wZl9vcCkKICAgICAgICAgaWYgKCByZXQgKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAg ICAgaWYgKCBjcHUgPj0gbnJfY3B1X2lkcyB8fCAhY3B1X3ByZXNlbnQoY3B1KSApCisgICAgICAg IGlmICggY3B1ID49IG5yX2NwdV9pZHMgfHwgIWNwdV9wcmVzZW50KGNwdSkgfHwKKyAgICAgICAg ICAgICBjbG9ja3NvdXJjZV9pc190c2MoKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldCA9 IC1FSU5WQUw7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90 aW1lLmMgYi94ZW4vYXJjaC94ODYvdGltZS5jCmluZGV4IDBjMWFkNDUuLmU1MDAxZDUgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni90aW1lLmMKKysrIGIveGVuL2FyY2gveDg2L3RpbWUuYwpAQCAt NDc1LDYgKzQ3NSw1MCBAQCB1aW50NjRfdCBuc190b19hY3BpX3BtX3RpY2sodWludDY0X3QgbnMp CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKyAqIFBMQVRGT1JNIFRJTUVSIDQ6IFRTQworICovCisKKy8qCisgKiBDYWxs ZWQgaW4gdmVyaWZ5X3RzY19yZWxpYWJpbGl0eSgpIHVuZGVyIHJlbGlhYmxlIFRTQyBjb25kaXRp b25zCisgKiB0aHVzIHJldXNpbmcgYWxsIHRoZSBjaGVja3MgYWxyZWFkeSBwZXJmb3JtZWQgdGhl cmUuCisgKi8KK3N0YXRpYyBzNjQgX19pbml0IGluaXRfdHNjKHN0cnVjdCBwbGF0Zm9ybV90aW1l c291cmNlICpwdHMpCit7CisgICAgdTY0IHJldCA9IHB0cy0+ZnJlcXVlbmN5OworCisgICAgaWYg KCBucl9jcHVfaWRzICE9IG51bV9wcmVzZW50X2NwdXMoKSApCisgICAgeworICAgICAgICBwcmlu dGsoWEVOTE9HX0lORk8gIlRTQzogQ1BVIEhvdHBsdWcgaW50ZW5kZWRcbiIpOworICAgICAgICBy ZXQgPSAwOworICAgIH0KKworICAgIGlmICggbnJfc29ja2V0cyA+IDEgKQorICAgIHsKKyAgICAg ICAgcHJpbnRrKFhFTkxPR19JTkZPICJUU0M6IE5vdCBpbnZhcmlhbnQgYWNyb3NzIHNvY2tldHNc biIpOworICAgICAgICByZXQgPSAwOworICAgIH0KKworICAgIGlmICggIXJldCApCisgICAgICAg IHByaW50ayhYRU5MT0dfSU5GTyAiVFNDOiBOb3Qgc2V0dGluZyBpdCBhcyBjbG9ja3NvdXJjZVxu Iik7CisKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgdTY0IHJlYWRfdHNjKHZvaWQpCit7 CisgICAgcmV0dXJuIHJkdHNjX29yZGVyZWQoKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9y bV90aW1lc291cmNlIF9faW5pdGRhdGEgcGx0X3RzYyA9Cit7CisgICAgLmlkID0gInRzYyIsCisg ICAgLm5hbWUgPSAiVFNDIiwKKyAgICAucmVhZF9jb3VudGVyID0gcmVhZF90c2MsCisgICAgLmNv dW50ZXJfYml0cyA9IDYzLAorICAgIC5pbml0ID0gaW5pdF90c2MsCit9OworCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBH RU5FUklDIFBMQVRGT1JNIFRJTUVSIElORlJBU1RSVUNUVVJFCiAgKi8KIApAQCAtNTc2LDYgKzYy MCwyMSBAQCBzdGF0aWMgdm9pZCByZXN1bWVfcGxhdGZvcm1fdGltZXIodm9pZCkKICAgICBwbHRf c3RhbXAgPSBwbHRfc3JjLnJlYWRfY291bnRlcigpOwogfQogCitzdGF0aWMgdm9pZCBfX2luaXQg cmVzZXRfcGxhdGZvcm1fdGltZXIodm9pZCkKK3sKKyAgICAvKiBEZWFjdGl2YXRlIGFueSB0aW1l cnMgcnVubmluZyAqLworICAgIGtpbGxfdGltZXIoJnBsdF9vdmVyZmxvd190aW1lcik7CisgICAg a2lsbF90aW1lcigmY2FsaWJyYXRpb25fdGltZXIpOworCisgICAgLyogUmVzZXQgY291bnRlcnMg YW5kIHN0YW1wcyAqLworICAgIHNwaW5fbG9ja19pcnEoJnBsYXRmb3JtX3RpbWVyX2xvY2spOwor ICAgIHBsdF9zdGFtcCA9IDA7CisgICAgcGx0X3N0YW1wNjQgPSAwOworICAgIHBsYXRmb3JtX3Rp bWVyX3N0YW1wID0gMDsKKyAgICBzdGltZV9wbGF0Zm9ybV9zdGFtcCA9IDA7CisgICAgc3Bpbl91 bmxvY2tfaXJxKCZwbGF0Zm9ybV90aW1lcl9sb2NrKTsKK30KKwogc3RhdGljIHM2NCBfX2luaXQg dHJ5X3BsYXRmb3JtX3RpbWVyKHN0cnVjdCBwbGF0Zm9ybV90aW1lc291cmNlICpwdHMpCiB7CiAg ICAgczY0IHJjID0gcHRzLT5pbml0KHB0cyk7CkBAIC01ODMsNiArNjQyLDEwIEBAIHN0YXRpYyBz NjQgX19pbml0IHRyeV9wbGF0Zm9ybV90aW1lcihzdHJ1Y3QgcGxhdGZvcm1fdGltZXNvdXJjZSAq cHRzKQogICAgIGlmICggcmMgPD0gMCApCiAgICAgICAgIHJldHVybiByYzsKIAorICAgIC8qIFdl IGhhdmUgYSBwbGF0Zm9ybSB0aW1lc291cmNlIGFscmVhZHkgc28gcmVzZXQgaXQgKi8KKyAgICBp ZiAoIHBsdF9zcmMuY291bnRlcl9iaXRzICE9IDAgKQorICAgICAgICByZXNldF9wbGF0Zm9ybV90 aW1lcigpOworCiAgICAgcGx0X21hc2sgPSAodTY0KX4wdWxsID4+ICg2NCAtIHB0cy0+Y291bnRl cl9iaXRzKTsKIAogICAgIHNldF90aW1lX3NjYWxlKCZwbHRfc2NhbGUsIHB0cy0+ZnJlcXVlbmN5 KTsKQEAgLTYwNCw3ICs2NjcsOSBAQCBzdGF0aWMgdTY0IF9faW5pdCBpbml0X3BsYXRmb3JtX3Rp bWVyKHZvaWQpCiAgICAgdW5zaWduZWQgaW50IGk7CiAgICAgczY0IHJjID0gLTE7CiAKLSAgICBp ZiAoIG9wdF9jbG9ja3NvdXJjZVswXSAhPSAnXDAnICkKKyAgICAvKiBjbG9ja3NvdXJjZT10c2Mg aXMgaW5pdGlhbGl6ZWQgdmlhIF9faW5pdGNhbGxzICh3aGVuIENQVXMgYXJlIHVwKS4gKi8KKyAg ICBpZiAoIChvcHRfY2xvY2tzb3VyY2VbMF0gIT0gJ1wwJykgJiYKKyAgICAgICAgIHN0cmNtcChv cHRfY2xvY2tzb3VyY2UsICJ0c2MiKSApCiAgICAgewogICAgICAgICBmb3IgKCBpID0gMDsgaSA8 IEFSUkFZX1NJWkUocGx0X3RpbWVycyk7IGkrKyApCiAgICAgICAgIHsKQEAgLTE0NjMsNiArMTUy OCwzMSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgdHNjX2NoZWNrX3dyaXRhYmlsaXR5KHZvaWQpCiAg ICAgZGlzYWJsZV90c2Nfc3luYyA9IDE7CiB9CiAKK3N0YXRpYyB2b2lkIF9faW5pdCByZXNldF9w ZXJjcHVfdGltZSh2b2lkICp1bnVzZWQpCit7CisgICAgc3RydWN0IGNwdV90aW1lICp0ID0gJnRo aXNfY3B1KGNwdV90aW1lKTsKKworICAgIHQtPnN0YW1wLmxvY2FsX3RzYyA9IGJvb3RfdHNjX3N0 YW1wOworICAgIHQtPnN0YW1wLmxvY2FsX3N0aW1lID0gMDsKKyAgICB0LT5zdGFtcC5sb2NhbF9z dGltZSA9IGdldF9zX3RpbWVfZml4ZWQoYm9vdF90c2Nfc3RhbXApOworICAgIHQtPnN0YW1wLm1h c3Rlcl9zdGltZSA9IHQtPnN0YW1wLmxvY2FsX3N0aW1lOworfQorCitzdGF0aWMgdm9pZCBfX2lu aXQgdHJ5X3BsYXRmb3JtX3RpbWVyX3RhaWwodm9pZCkKK3sKKyAgICBpbml0X3RpbWVyKCZwbHRf b3ZlcmZsb3dfdGltZXIsIHBsdF9vdmVyZmxvdywgTlVMTCwgMCk7CisgICAgcGx0X292ZXJmbG93 KE5VTEwpOworCisgICAgcGxhdGZvcm1fdGltZXJfc3RhbXAgPSBwbHRfc3RhbXA2NDsKKyAgICBz dGltZV9wbGF0Zm9ybV9zdGFtcCA9IE5PVygpOworCisgICAgaWYgKCAhY2xvY2tzb3VyY2VfaXNf dHNjKCkgKQorICAgICAgICBpbml0X3BlcmNwdV90aW1lKCk7CisKKyAgICBpbml0X3RpbWVyKCZj YWxpYnJhdGlvbl90aW1lciwgdGltZV9jYWxpYnJhdGlvbiwgTlVMTCwgMCk7CisgICAgc2V0X3Rp bWVyKCZjYWxpYnJhdGlvbl90aW1lciwgTk9XKCkgKyBFUE9DSCk7Cit9CisKIC8qIExhdGUgaW5p dCBmdW5jdGlvbiwgYWZ0ZXIgYWxsIGNwdXMgaGF2ZSBib290ZWQgKi8KIHN0YXRpYyBpbnQgX19p bml0IHZlcmlmeV90c2NfcmVsaWFiaWxpdHkodm9pZCkKIHsKQEAgLTE0ODAsNiArMTU3MCwyNSBA QCBzdGF0aWMgaW50IF9faW5pdCB2ZXJpZnlfdHNjX3JlbGlhYmlsaXR5KHZvaWQpCiAgICAgICAg ICAgICBwcmludGsoIlRTQyB3YXJwIGRldGVjdGVkLCBkaXNhYmxpbmcgVFNDX1JFTElBQkxFXG4i KTsKICAgICAgICAgICAgIHNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfVFNDX1JFTElB QkxFKTsKICAgICAgICAgfQorICAgICAgICBlbHNlIGlmICggIXN0cmNtcChvcHRfY2xvY2tzb3Vy Y2UsICJ0c2MiKSAmJgorICAgICAgICAgICAgICAgICAgKHRyeV9wbGF0Zm9ybV90aW1lcigmcGx0 X3RzYykgPiAwKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBQ bGF0Zm9ybSB0aW1lciBoYXMgY2hhbmdlZCBhbmQgQ1BVIHRpbWUgd2lsbCBvbmx5IGJlIHVwZGF0 ZWQKKyAgICAgICAgICAgICAqIGFmdGVyIHdlIHNldCBhZ2FpbiB0aGUgY2FsaWJyYXRpb24gdGlt ZXIsIHdoaWNoIG1lYW5zIHdlIG5lZWQgdG8KKyAgICAgICAgICAgICAqIHNlZWQgYWdhaW4gZWFj aCBsb2NhbCBDUFUgdGltZS4gQXQgdGhpcyBzdGFnZSBUU0MgaXMga25vd24gdG8gYmUKKyAgICAg ICAgICAgICAqIHJlbGlhYmxlIGkuZS4gbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGFjcm9zcyBh bGwgQ1BVcyBzbyB0aGlzCisgICAgICAgICAgICAgKiBsZXRzIHVzIHJlbW92ZSB0aGUgc2tldyBi ZXR3ZWVuIHBsYXRmb3JtIHRpbWVyIGFuZCBUU0MsIHNpbmNlCisgICAgICAgICAgICAgKiB0aGVz ZSBhcmUgbm93IGVmZmVjdGl2ZWx5IHRoZSBzYW1lLgorICAgICAgICAgICAgICovCisgICAgICAg ICAgICBvbl9zZWxlY3RlZF9jcHVzKCZjcHVfb25saW5lX21hcCwgcmVzZXRfcGVyY3B1X3RpbWUs IE5VTEwsIDEpOworCisgICAgICAgICAgICAvKiBGaW5pc2ggcGxhdGZvcm0gdGltZXIgc3dpdGNo LiAqLworICAgICAgICAgICAgdHJ5X3BsYXRmb3JtX3RpbWVyX3RhaWwoKTsKKworICAgICAgICAg ICAgcHJpbnRrKFhFTkxPR19JTkZPICJTd2l0Y2hlZCB0byBQbGF0Zm9ybSB0aW1lciAlcyBUU0Nc biIsCisgICAgICAgICAgICAgICAgICAgZnJlcV9zdHJpbmcocGx0X3NyYy5mcmVxdWVuY3kpKTsK KyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiAwOwpAQCAtMTUwNSwxNSArMTYxNCw3IEBA IGludCBfX2luaXQgaW5pdF94ZW5fdGltZSh2b2lkKQogICAgIGRvX3NldHRpbWUoZ2V0X2Ntb3Nf dGltZSgpLCAwLCBOT1coKSk7CiAKICAgICAvKiBGaW5pc2ggcGxhdGZvcm0gdGltZXIgaW5pdGlh bGl6YXRpb24uICovCi0gICAgaW5pdF90aW1lcigmcGx0X292ZXJmbG93X3RpbWVyLCBwbHRfb3Zl cmZsb3csIE5VTEwsIDApOwotICAgIHBsdF9vdmVyZmxvdyhOVUxMKTsKLSAgICBwbGF0Zm9ybV90 aW1lcl9zdGFtcCA9IHBsdF9zdGFtcDY0OwotICAgIHN0aW1lX3BsYXRmb3JtX3N0YW1wID0gTk9X KCk7Ci0KLSAgICBpbml0X3BlcmNwdV90aW1lKCk7Ci0KLSAgICBpbml0X3RpbWVyKCZjYWxpYnJh dGlvbl90aW1lciwgdGltZV9jYWxpYnJhdGlvbiwgTlVMTCwgMCk7Ci0gICAgc2V0X3RpbWVyKCZj YWxpYnJhdGlvbl90aW1lciwgTk9XKCkgKyBFUE9DSCk7CisgICAgdHJ5X3BsYXRmb3JtX3RpbWVy X3RhaWwoKTsKIAogICAgIHJldHVybiAwOwogfQpAQCAtMTUyNyw2ICsxNjI4LDcgQEAgdm9pZCBf X2luaXQgZWFybHlfdGltZV9pbml0KHZvaWQpCiAKICAgICBwcmVpbml0X3BpdCgpOwogICAgIHRt cCA9IGluaXRfcGxhdGZvcm1fdGltZXIoKTsKKyAgICBwbHRfdHNjLmZyZXF1ZW5jeSA9IHRtcDsK IAogICAgIHNldF90aW1lX3NjYWxlKCZ0LT50c2Nfc2NhbGUsIHRtcCk7CiAgICAgdC0+c3RhbXAu bG9jYWxfdHNjID0gYm9vdF90c2Nfc3RhbXA7CkBAIC0xNzc1LDYgKzE4NzcsMTEgQEAgdm9pZCBw dl9zb2Z0X3JkdHNjKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywg aW50IHJkdHNjcCkKICAgICAgICAgICAgICAoZC0+YXJjaC50c2NfbW9kZSA9PSBUU0NfTU9ERV9Q VlJEVFNDUCkgPyBkLT5hcmNoLmluY2FybmF0aW9uIDogMDsKIH0KIAorYm9vbCBjbG9ja3NvdXJj ZV9pc190c2Modm9pZCkKK3sKKyAgICByZXR1cm4gcGx0X3NyYy5yZWFkX2NvdW50ZXIgPT0gcmVh ZF90c2M7Cit9CisKIGludCBob3N0X3RzY19pc19zYWZlKHZvaWQpCiB7CiAgICAgcmV0dXJuIGJv b3RfY3B1X2hhcyhYODZfRkVBVFVSRV9UU0NfUkVMSUFCTEUpOwpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni90aW1lLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3RpbWUuaAppbmRleCA5 NzE4ODNhLi42ZDcwNGI0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3RpbWUuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3RpbWUuaApAQCAtNjksNiArNjksNyBAQCB2b2lkIHRz Y19nZXRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCAqdHNjX21vZGUsIHVpbnQ2NF90 ICplbGFwc2VkX25zZWMsCiAKIHZvaWQgZm9yY2VfdXBkYXRlX3ZjcHVfc3lzdGVtX3RpbWUoc3Ry dWN0IHZjcHUgKnYpOwogCitib29sIGNsb2Nrc291cmNlX2lzX3RzYyh2b2lkKTsKIGludCBob3N0 X3RzY19pc19zYWZlKHZvaWQpOwogdm9pZCBjcHVpZF90aW1lX2xlYWYodWludDMyX3Qgc3ViX2lk eCwgdWludDMyX3QgKmVheCwgdWludDMyX3QgKmVieCwKICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90ICplY3gsIHVpbnQzMl90ICplZHgpOwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK