From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mario Kleiner Subject: Re: Funky new vblank counter regressions in Linux 4.4-rc1 Date: Thu, 19 Nov 2015 20:12:24 +0100 Message-ID: <564E1F18.5070508@gmail.com> References: <564E0AF4.3050406@gmail.com> <20151119182051.GU4437@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 1A0996E663 for ; Mon, 30 Nov 2015 12:13:14 -0800 (PST) Resent-Message-ID: <20151130201311.GB4437@intel.com> Resent-To: dri-devel@lists.freedesktop.org In-Reply-To: <20151119182051.GU4437@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: =?UTF-8?Q?Michel_D=c3=a4nzer?= List-Id: dri-devel@lists.freedesktop.org T24gMTEvMTkvMjAxNSAwNzoyMCBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+IE9uIFRodSwg Tm92IDE5LCAyMDE1IGF0IDA2OjQ2OjI4UE0gKzAxMDAsIE1hcmlvIEtsZWluZXIgd3JvdGU6Cj4+ IEhpIEFsZXggYW5kIE1pY2hlbCBhbmQgVmlsbGUsCj4+Cj4+IGl0J3MgImZpeCB2Ymxhbmsgc3R1 ZmYiIHRpbWUgYWdhaW4gOy0pCj4+Cj4+IFZpbGxlJ3MgY2hhbmdlcyB0byB0aGUgRFJNJ3MgZHJt X2hhbmRsZV92YmxhbmsoKSAvCj4+IGRybV91cGRhdGVfdmJsYW5rX2NvdW50KCkgY29kZSBpbiBM aW51eCA0LjQgbm90IG9ubHkgbWFkZSB0aGF0IGNvZGUgbW9yZQo+PiBlbGVnYW50LCBidXQgYWxz byByZW1vdmVkIHRoZSByb2J1c3RuZXNzIGFnYWluc3QgdGhlIHZibGFuayBpcnEgcXVpcmtzCj4+ IGluIEFNRCBodyBhbmQgc2ltaWxhciBoYXJkd2FyZS4gU28gbm93IGkgZ2V0IHRvbnMgb2Ygb2Zm LWJ5LW9uZSBlcnJvcnMgYW5kCj4+Cj4+ICJbICAgNDMyLjM0NV0gKFdXKSBSQURFT04oMSk6IHJh ZGVvbl9kcmkyX2ZsaXBfZXZlbnRfaGFuZGxlcjogUGFnZWZsaXAKPj4gY29tcGxldGlvbiBldmVu dCBoYXMgaW1wb3NzaWJsZSBtc2MgMjQ4MDMgPCB0YXJnZXRfbXNjIDI0ODA0IiBYT3JnCj4+IG1l c3NhZ2VzIGZyb20gdGhhdCBrZXJuZWwuCj4KPiBBcmdoLiBTb3JyeSBhYm91dCB0aGF0Lgo+CgpP biB0aGUgcGx1cyBzaWRlLCB5b3VyICJ2YmxhbmsgdGltZXN0YW1wIGRlbHRhcyBhcyBmYWtlIHZi bGFuayBjb3VudGVycyIgCmNvZGUgc2VlbXMgdG8gd29yayBuaWNlbHkgb24gbm91dmVhdS1rbXMs IGFzIGZhciBhcyB0ZXN0aW5nIHdpdGggdGhyZWUgCk52aWRpYSdzIHdlbnQgc28gZmFyIDopLiBB bmQgYm90aCBJbnRlbCBncHUncyAoSEQgSXJvbmxha2UsIGFuZCAKSXZ5YnJpZGdlKSBpIHRlc3Rl ZCBjaGVja2VkIG91dCBuaWNlbHkuCgpBbmQgYXQgbGVhc3QgdGhlIHJlY2VudCBudjUwKyBOVmlk aWEgVGVzbGEgYWxzbyBoYXZlIDE2IGJpdCB2YmxhbmsgCmNvdW50ZXJzIHdoaWNoIHdlIGNvdWxk IGltcGxlbWVudCBpbiBub3V2ZWF1LCBtYXliZSB3aXRoIHRoZSBzYW1lIAp0cmlja2VyeSB0byBh bGxvdyBsb25nIHRyb3VibGUtZnJlZSB2Ymxhbmsgb2ZmIHBlcmlvZHMsIGhvcGVmdWxseSB0aGF0 IAp3b3VsZCBhbHNvIGFwcGx5IHRvIHRoZSBUZWdyYS00IGFuZCBsYXRlciBLZXBsZXIgYmFzZWQg cGFydHMuIFRlZ3JhLTMgCndpbGwgcHJvYmFibHkgYWxzbyB3b3JrLiBJIHRoaW5rIGkgcmVhZCBp biB0aGUgVGVncmEtMyBQUk0gdGhhdCB0aGUgc3luYyAKcG9pbnRzIHRoZXkgdXNlIHRvIGltcGxl bWVudCB2YmxhbmsgY291bnRlcnMgZG8gaW5jcmVtZW50IGF0IGxlYWRpbmcgCmVkZ2Ugb2YgdmJs YW5rLgoKVGhlIG9ubHkgcHJvYmxlbSB3ZSBtYXkgaGF2ZSBpcyB0aGF0IHNvbWUgb2YgdGhlIGVt YmVkZGVkIGdwdXMgbWF5IG5vdCAKaGF2ZSBjb21wbGlhbnQgdmJsYW5rIGNvdW50ZXJzIGFuZCB0 aGV5IHByb2JhYmx5IGFsc28gbGFjayB2YmxhbmsgCnRpbWVzdGFtcGluZywgc28gaXQgbWlnaHQg YmUgYSBnb29kIGlkZWEgdG8gcmF0aGVyIG5vdCB1c2UgdmJsYW5rIApjb3VudGVycyBhdCBhbGwg aW4gdGhvc2UgZHJpdmVycyAtIHBhdGNoIHRoZWlyIGttcyBkcml2ZXJzIHRvIAptYXhfdmJsYW5r X2NvdW50ID0gMDsKCj4+Cj4+IE9uZSBvZiB0aGUgcmVhc29ucyBmb3IgdHJvdWJsZSBpcyB0aGF0 IEFNRCBodyBxdWlyayB3aGVyZSB0aGUgaHcgZmlyZXMKPj4gYW4gZXh0cmEgdmJsYW5rIGlycSBz aG9ydGx5IGFmdGVyIHZibGFuayBpcnEncyBnZXQgZW5hYmxlZCwgbm90Cj4+IHN5bmNocm9uaXpl ZCB0byB2YmxhbmssIGJ1dCB0eXBpY2FsbHkgaW4gdGhlIG1pZGRsZSBvZiBhY3RpdmUgc2Nhbm91 dCwKPj4gc28gd2UgZ2V0IGEgcmVkdW5kYW50IGNhbGwgdG8gZHJtX2hhbmRsZV92YmxhbmsgaW4g dGhlIG1pZGRsZSBvZiBzY2Fub3V0Lgo+Cj4gSSB0aGluayB0aGF0IHNob3VsZCBiZSBmaW5lIGFz IHN1Y2guIFRoZSBjb2RlIHNob3VsZCBpZ25vcmUgcmVkdWRudGFudAo+IHZibCBpcnFzLiBXZWxs LCBhc3N1bWluZyB5b3UgaGF2ZSBhIHJlbGlhYmxlIGh3IGNvdW50ZXIgb3IgeW91IHVzZSB0aGUK PiB0aW1lc3RhbXAgZ3Vlc3N0aW1hdGUgbWVjaGFuaXNtIGFuZCB5b3VyIHNjYW5vdXQgcG9zaXRp b24gaXMgcmVwb3J0ZWQKPiBhY2N1cmF0ZWx5LiBCdXQgSSBndWVzcyB5b3UgaGF2ZSBhIGJpdCBv ZiBwcm9ibGVtIHdpdGggYm90aC4KPgoKVGhlIHByb2JsZW0gaXMgaSdsbCBuZWVkIHRvIHRyZWF0 IGNhbGxzIHRvIHJhZGVvbiBrbXMgCmRyaXZlci0+Z2V0X3ZibGFua19jb3VudGVyIGRpZmZlcmVu dGx5LCBkZXBlbmRpbmcgaWYgdGhlIGZ1bmN0aW9uIGdldHMgCmNhbGxlZCBmcm9tIHZibGFuayBp cnEsIG9yIGZyb20gcmVndWxhciBjb2RlLCBzbyB0aGF0IGh3IHF1aXJrIHRoYXQgCmNhdXNlcyBz cG9udGFuZW91cyBtaXNmaXJpbmcgb2YgdGhlIHZibGFuayBpcnEgaW4gdGhlIG1pZGRsZSBvZiBz Y2Fub3V0IAp3b3VsZCBjb25mdXNlIG15IGh3IHZibGFuayBjb3VudGVyIGNvb2tpbmcgbWV0aG9k IHRvIHByb2R1Y2UgYSBmYWtlIGh3IAp2YmxhbmsgY291bnRlciBpbmNyZW1lbnQuIFRoYXQncyB3 aHkgaSBtb3ZlZCB0aGUgZmlsdGVyaW5nIGZvciByZWR1bmRhbnQgCmlycXMgYmFzZWQgb24gdmJs YW5rIHRpbWVzdGFtcHMgaW4gZHJtX3ZibGFua191cGRhdGUoKSBhcm91bmQgdG8gYWx3YXlzIAph cHBseS4gTWFrZXMgdXMgcm9idXN0IGFnYWluc3QgdGhhdCB0eXBlIG9mIGh3IHF1aXJrIGluIGdl bmVyYWwgYW5kIAptYWtlcyBsaWZlIGZvciB0aGUgdmJsYW5rIGNvdW50ZXIgY29va2luZyBzbyBt dWNoIGVhc2llci4KCkl0J3MgYSBiZWF1dGlmdWwgY29sbGFib3JhdGlvbiBvZiBkaWZmZXJlbnQg aHcgYnVncyB0byBtYWtlIHRoaW5ncyAKaW50ZXJlc3RpbmcgOikKCj4+Cj4+IFRvIGZpeCB0aGF0 IGkgaGF2ZSBhIG1pbm9yIHBhdGNoIHRvIG1ha2UgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoKSBh Z2Fpbgo+PiByb2J1c3QgYWdhaW5zdCBzdWNoIHJlZHVuZGFudCBjYWxscywgd2hpY2ggaSB3aWxs IHNlbmQgb3V0IGxhdGVyIHRvIHRoZQo+PiBtYWlsaW5nIGxpc3QuIERpZmYgYXR0YWNoZWQgZm9y IHJlZmVyZW5jZS4KPj4KPj4gVGhlIHNlY29uZCBxdWlyayBvZiBBTUQgaHcgaXMgdGhhdCB0aGUg dmJsYW5rIGludGVycnVwdCBmaXJlcyBhIGZldwo+PiBzY2FubGluZXMgYmVmb3JlIHN0YXJ0IG9m IHZibGFuaywgc28gZHJtX2hhbmRsZV92YmxhbmsgLT4KPj4gZHJtX3VwZGF0ZV92YmxhbmtfY291 bnQoKSAtPiBkZXYtPmRyaXZlci0+Z2V0X3ZibGFua19jb3VudGVyKCkgZ2V0cwo+PiBjYWxsZWQg YmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgdmJsYW5rIGZvciB3aGljaCB0aGUgbmV3IHZibGFuayBj b3VudAo+PiBzaG91bGQgYmUgcXVlcmllZC4KPgo+IERvZXMgaXQgZmlyZSB0b28gc29vbiwgb3Ig aXMgdGhlIHNjYW5vdXQgcG9zaXRpb24gcmVnaXN0ZXIgdmFsdWUocykKPiBqdXN0IG9mZnNldCBi eSBhIGZldyBsaW5lcyBwZXJoYXBzPwo+Cj4gV2UgaGF2ZSB0aGF0IHdpdGggaTkxNSBhbmQgSSBz aW1wbHkgZml4IHVwIHRoZSB2YWx1ZSB3aGVuIHJlYWRpbmcgaXQKPiBvdXQuIEZvcnR1bmF0ZWx5 IGZvciB1cyB0aGUgb2Zmc2V0IGlzIGNvbnN0YW50IChvciBhdCBsZWFzdCBzZWVtcyB0bwo+IGJl KSBmb3IgYSBnaXZlbiBwbGF0Zm9ybS9jb25uZWN0b3IgY29tYm8uCj4KCkkgdGhpbmsgdGhleSBm aXJlIHRvbyBzb29uLCBmcm9tIGFsbCBpJ3ZlIHNlZW4gc28gZmFyIG9uIGEgZmV3IGNhcmRzLgoK Pj4KPj4gVGhlIHRoaXJkIHByb2JsZW0gaXMgdGhhdCB0aGUgRFJNIHZibGFuayBoYW5kbGluZyBh bHdheXMgaGFkIHRoZQo+PiBhc3N1bXB0aW9uIHRoYXQgaGFyZHdhcmUgdmJsYW5rIGNvdW50ZXJz IHdvdWxkIGVzc2VudGlhbGx5IGluY3JlbWVudCBhdAo+PiBsZWFkaW5nIGVkZ2Ugb2YgdmJsYW5r IC0gYmFzaWNhbGx5IGluIHN5bmMgd2l0aCB0aGUgZmlyaW5nIG9mIHRoZSB2YmxhbmsKPj4gaXJx LCBzbyB0aGF0IGEgaHcgY291bnRlciByZWFkb3V0IGZyb20gd2l0aGluIHRoZSB2YmxhbmsgaXJx IGhhbmRsZXIKPj4gd291bGQgYWx3YXlzIGRlbGl2ZXIgdGhlIG5ldyBpbmNyZW1lbnRlZCB2YWx1 ZS4gSWYgdGhpcyBhc3N1bXB0aW9uIGlzCj4+IHZpb2xhdGVkIHRoZW4gdGhlIGNvdW50aW5nIGJ5 IHVzZSBvZiB0aGUgaHcgY291bnRlciBnZXRzIHVucmVsaWFibGUsCj4+IGJlY2F1c2UgZGVwZW5k aW5nIG9uIHJhbmRvbSBzbWFsbCBkZWxheXMgaW4gaXJxIGhhbmRsaW5nIHRoZSBjb2RlIG1heQo+ PiBlbmQgdXAgc2FtcGxpbmcgdGhlIGh3IGNvdW50ZXIgcHJlLSBvciBwb3N0LWluY3JlbWVudCwg bGVhZGluZyB0bwo+PiBpbmNvbnNpc3RlbnQgdXBkYXRpbmcgYW5kIGZ1bmt5IGJ1Z3MuIEl0IGp1 c3Qgc28gaGFwcGVucyB0aGF0IEFNRAo+PiBoYXJkd2FyZSBkb2Vzbid0IGluY3JlbWVudCB0aGUg aHcgY291bnRlciBhdCBsZWFkaW5nIGVkZ2Ugb2YgdmJsYW5rLCBzbwo+PiBzdHVmZiBmYWxscyBh cGFydC4KPj4KPj4gU28gdG8gZml4IHRob3NlIHR3byBwcm9ibGVtcyBpJ20gdGlua2VyaW5nIHdp dGggY29va2luZyB0aGUgaHcgdmJsYW5rCj4+IGNvdW50ZXIgdmFsdWUgcmV0dXJuZWQgYnkgcmFk ZW9uX2dldF92YmxhbmtfY291bnRlcl9rbXMoKSB0byBtYWtlIGl0Cj4+IGFwcGVhciBhcyBpZiB0 aGUgY291bnRlciBpbmNyZW1lbnRlZCBhdCBsZWFkaW5nIGVkZ2Ugb2YgdmJsYW5rIGluIHN5bmMK Pj4gd2l0aCB2YmxhbmsgaXJxLgo+Cj4gWWVhaCwgSSBkbyB0aGF0IGluIGk5MTUgdG9vLiBXZWxs LCBvbiBzb21lIHBsYXRmb3JtcyB3aGVyZSB0aGUKPiBjb3VudGVyIGluY3JlbWVudHMgYXQgdGhl IGxlYWRpbmcgZWRnZSBvZiBhY3RpdmUuCj4KClllcC4gSSB0aGluayB0aGF0J3Mga2V5IHRvIG1h a2UgdGhlIHZibGFuayBpbnN0YW50IG9mZiBzdHVmZiB3b3JrIHJlbGlhYmx5LgoKLW1hcmlvCgo+ Pgo+PiBJdCBhbG1vc3Qgc29ydCBvZiB3b3JrcyBvbiB0aGUgcnM2MDAgY29kZSBwYXRoLCBidXQg aSBuZWVkIGEgYml0IG9mIGluZm8KPj4gZnJvbSB5b3U6Cj4+Cj4+IDEuIFRoZXJlJ3MgdGhpcyBy ZWdpc3RlciBmcm9tIHRoZSBvbGQgc3BlY3MgZm9yIG03Ni5wZGYsIHdoaWNoIGlzIG5vdAo+PiBw YXJ0IG9mIHRoZSBjdXJyZW50IHJlZ2lzdGVyIGRlZmluZXMgZm9yIHJhZGVvbi1rbXM6Cj4+Cj4+ ICJEMUNSVENfU1RBVFVTX1ZGX0NPVU5UIC0gUlcgLSAzMiBiaXRzIC0gW0dwdUYwTU1SZWc6MHg2 MEE4XSIKPj4KPj4gSXQgY29udGFpbnMgdGhlIGxvd2VyIDE2IGJpdHMgb2YgZnJhbWVjb3VudGVy IGFuZCB0aGUgMTMgYml0cyBvZgo+PiB2ZXJ0aWNhbCBzY2Fub3V0IHBvc2l0aW9uLiBJdCBzZWVt cyB0byBnaXZlIHRoZSBzYW1lIHJlYWRpbmdzIGFzIHRoZSAyNAo+PiBiaXQgUl8wMDYwQTRfRDFD UlRDX1NUQVRVU19GUkFNRV9DT1VOVCB3ZSB1c2UgZm9yIHRoZSBodyBjb3VudGVyLiBUaGlzCj4+ IHdvdWxkIGNvbWUgaGFuZHkuCj4+Cj4+IERvZXMgRXZlcmdyZWVuIGFuZCBsYXRlciBoYXZlIGEg c2FtZS9zaW1pbGFyIHJlZ2lzdGVyIGFuZCB3aGVyZSBpcyBpdD8KPj4KPj4gMi4gVGhlIGh3IGZy YW1lY291bnRlciBzZWVtcyB0byBpbmNyZW1lbnQgd2hlbiB0aGUgdmVydGljYWwgc2Nhbm91dAo+ PiBwb3NpdGlvbiB3cmFwcyBiYWNrIGZyb20gKFZUT1RBTCAtIDEpIHRvIDAsIGF0IGxlYXN0IG9u IHRoZSBvbmUgRENFLTMKPj4gZ3B1IGkgdGVzdGVkIHNvIGZhci4gSXMgdGhpcyBzbyBvbiBhbGwg YXNpY3M/IEFuZCBpcyB0aGUgaHcgY291bnRlcgo+PiBpbmNyZW1lbnQgaGFwcGVuaW5nIGV4YWN0 bHkgYXQgdGhlIG1vbWVudCB0aGF0IHZlcnRpY2FsIHNjYW5vdXQgcG9zaXRpb24KPj4ganVtcHMg YmFjayB0byB6ZXJvLCBpZS4gYm90aCBldmVudHMgYXJlIGRyaXZlbiBieSB0aGUgc2FtZSBzaWdu YWw/IE9yIGlzCj4+IHRoZSBmcmFtZWNvdW50ZXIgaW5jcmVtZW50IGp1c3QgaGFwcGVuaW5nIHNv bWV3aGVyZSBpbnNpZGUgZWl0aGVyCj4+IHNjYW5saW5lIFZUT1RBTC0xIG9yIHNjYW5saW5lIDA/ Cj4+Cj4+Cj4+IElmIHdlIGNhbiBmaXggdGhpcyBhbmQgZ2V0IGl0IGludG8gcmMyIG9yIHJjMyB0 aGVuIHdlIGNvdWxkIGF2b2lkIGEgYmFkCj4+IHJlZ3Jlc3Npb24gYW5kIHdpdGggYSBiaXQgb2Yg bHVjayBhdCB0aGUgc2FtZSB0aW1lIGltcHJvdmUgYnkgYmVpbmcgYWJsZQo+PiB0byBzZXQgZGV2 LT52YmxhbmtfZGlzYWJsZV9pbW1lZGlhdGUgPSB0cnVlIHRoZW4gYW5kIGFsbG93IHZibGFuayBp cnFzCj4+IHRvIGdldCB0dXJuZWQgb2ZmIG1vcmUgYWdncmVzc2l2ZWx5IGZvciBhIGJpdCBvZiBl eHRyYSBwb3dlciBzYXZpbmcuCj4+Cj4+IHRoYW5rcywKPj4gLW1hcmlvCj4KPj4gLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMK Pj4gQEAgLTE3Miw5ICsxNzIsMTEgQEAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291 bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKQo+PiAgIHsK Pj4gICAgICAgICAgc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJsYW5r W3BpcGVdOwo+PiAtICAgICAgIHUzMiBjdXJfdmJsYW5rLCBkaWZmOwo+PiArICAgICAgIHUzMiBj dXJfdmJsYW5rLCBkaWZmID0gMDsKPj4gICAgICAgICAgYm9vbCByYzsKPj4gICAgICAgICAgc3Ry dWN0IHRpbWV2YWwgdF92Ymxhbms7Cj4+ICsgICAgICAgY29uc3Qgc3RydWN0IHRpbWV2YWwgKnRf b2xkOwo+PiArICAgICAgIHU2NCBkaWZmX25zOwo+PiAgICAgICAgICBpbnQgY291bnQgPSBEUk1f VElNRVNUQU1QX01BWFJFVFJJRVM7Cj4+ICAgICAgICAgIGludCBmcmFtZWR1cl9ucyA9IHZibGFu ay0+ZnJhbWVkdXJfbnM7Cj4+Cj4+IEBAIC0xOTUsMTMgKzE5NywxNSBAQCBzdGF0aWMgdm9pZCBk cm1fdXBkYXRlX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgcGlwZSwKPj4gICAgICAgICAgICAgICAgICByYyA9IGRybV9nZXRfbGFzdF92Ymx0aW1lc3Rh bXAoZGV2LCBwaXBlLCAmdF92YmxhbmssIGZsYWdzKTsKPj4gICAgICAgICAgfSB3aGlsZSAoY3Vy X3ZibGFuayAhPSBkZXYtPmRyaXZlci0+Z2V0X3ZibGFua19jb3VudGVyKGRldiwgcGlwZSkgJiYg LS1jb3VudCA+IDApOwo+Pgo+PiAtICAgICAgIGlmIChkZXYtPm1heF92YmxhbmtfY291bnQgIT0g MCkgewo+PiAtICAgICAgICAgICAgICAgLyogdHJ1c3QgdGhlIGh3IGNvdW50ZXIgd2hlbiBpdCdz IGFyb3VuZCAqLwo+PiAtICAgICAgICAgICAgICAgZGlmZiA9IChjdXJfdmJsYW5rIC0gdmJsYW5r LT5sYXN0KSAmIGRldi0+bWF4X3ZibGFua19jb3VudDsKPj4gLSAgICAgICB9IGVsc2UgaWYgKHJj ICYmIGZyYW1lZHVyX25zKSB7Cj4+IC0gICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXZh bCAqdF9vbGQ7Cj4+IC0gICAgICAgICAgICAgICB1NjQgZGlmZl9uczsKPj4gLQo+PiArICAgICAg IC8qCj4+ICsgICAgICAgICogQWx3YXlzIHVzZSB2YmxhbmsgdGltZXN0YW1waW5nIGJhc2VkIG1l dGhvZCBpZiBzdXBwb3J0ZWQgdG8gcmVqZWN0Cj4+ICsgICAgICAgICogcmVkdW5kYW50IHZibGFu ayBpcnFzLiBFLmcuLCBBTUQgaGFyZHdhcmUgbmVlZHMgdGhpcyB0byBub3Qgc2NyZXcgdXAKPj4g KyAgICAgICAgKiBkdWUgdG8gc29tZSBpcnEgaGFuZGxpbmcgcXVpcmsuCj4KPiBIbW0uIEknbSB0 aGlua2luZyBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gc2ltcGx5IG5vdCBjbGFpbSB0aGF0IHRoZXJl J3MgYSBodwo+IGNvdW50ZXIgaWYgaXQgaXNuJ3QgcmVsaWFibGUuCj4KPj4gKyAgICAgICAgKgo+ PiArICAgICAgICAqIFRoaXMgYWxzbyBzZXRzIHRoZSBkaWZmIHZhbHVlIGZvciB1c2UgYXMgZmFs bGJhY2sgYmVsb3cgaW4gY2FzZSB0aGUKPj4gKyAgICAgICAgKiBodyBkb2VzIG5vdCBzdXBwb3J0 IGEgc3VpdGFibGUgaHcgdmJsYW5rIGNvdW50ZXIuCj4+ICsgICAgICAgICovCj4+ICsgICAgICAg aWYgKHJjICYmIGZyYW1lZHVyX25zKSB7Cj4+ICAgICAgICAgICAgICAgICAgdF9vbGQgPSAmdmJs YW5rdGltZXN0YW1wKGRldiwgcGlwZSwgdmJsYW5rLT5jb3VudCk7Cj4+ICAgICAgICAgICAgICAg ICAgZGlmZl9ucyA9IHRpbWV2YWxfdG9fbnMoJnRfdmJsYW5rKSAtIHRpbWV2YWxfdG9fbnModF9v bGQpOwo+Pgo+PiBAQCAtMjEyLDExICsyMTYsMjggQEAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92 YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4+ ICAgICAgICAgICAgICAgICAgICovCj4+ICAgICAgICAgICAgICAgICAgZGlmZiA9IERJVl9ST1VO RF9DTE9TRVNUX1VMTChkaWZmX25zLCBmcmFtZWR1cl9ucyk7Cj4+Cj4+IC0gICAgICAgICAgICAg ICBpZiAoZGlmZiA9PSAwICYmIGZsYWdzICYgRFJNX0NBTExFRF9GUk9NX1ZCTElSUSkKPj4gLSAg ICAgICAgICAgICAgICAgICAgICAgRFJNX0RFQlVHX1ZCTCgiY3J0YyAldTogUmVkdW5kYW50IHZi bGlycSBpZ25vcmVkLiIKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi IGRpZmZfbnMgPSAlbGxkLCBmcmFtZWR1cl9ucyA9ICVkKVxuIiwKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwaXBlLCAobG9uZyBsb25nKSBkaWZmX25zLCBmcmFtZWR1 cl9ucyk7Cj4+IC0gICAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAgICAgIGlmIChkaWZmID09 IDAgJiYgZmxhZ3MgJiBEUk1fQ0FMTEVEX0ZST01fVkJMSVJRKSB7Cj4+ICsgICAgICAgICAgICAg ICAgICAgRFJNX0RFQlVHX1ZCTCgiY3J0YyAldTogUmVkdW5kYW50IHZibGlycSBpZ25vcmVkLiIK Pj4gKyAgICAgICAgICAgICAgICAgICAiIGRpZmZfbnMgPSAlbGxkLCBmcmFtZWR1cl9ucyA9ICVk KVxuIiwKPj4gKyAgICAgICAgICAgICAgICAgICBwaXBlLCAobG9uZyBsb25nKSBkaWZmX25zLCBm cmFtZWR1cl9ucyk7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgICAgICAvKiBUcmVhdCB0aGlzIHJl ZHVuZGFudCBpbnZvY2F0aW9uIGFzIG5vLW9wLiAqLwo+PiArICAgICAgICAgICAgICAgICAgIFdB Uk5fT05fT05DRShjdXJfdmJsYW5rICE9IHZibGFuay0+bGFzdCk7Cj4+ICsgICAgICAgICAgICAg ICAgICAgcmV0dXJuOwo+PiArICAgICAgICAgICAgICAgfQo+PiArICAgICAgIH0KPj4gKwo+PiAr ICAgICAgIC8qCj4+ICsgICAgICAgICogaHcgY291bnRlcnMsIGlmIG1hcmtlZCBhcyBzdXBwb3J0 ZWQgdmlhIG1heF92YmxhbmtfY291bnQgIT0gMCwKPj4gKyAgICAgICAgKiAqbXVzdCogaW5jcmVt ZW50IGF0IGxlYWRpbmcgZWRnZSBvZiB2YmxhbmsgYW5kIGluIHN5bmMgd2l0aAo+PiArICAgICAg ICAqIHRoZSBmaXJpbmcgb2YgdGhlIGh3IHZibGFuayBpcnEsIG90aGVyd2lzZSB3ZSBoYXZlIGEg cmFjZSBoZXJlCj4+ICsgICAgICAgICogYmV0d2VlbiBncHUgYW5kIHVzLCB3aGVyZSBzbWFsbCB2 YXJpYXRpb25zIGluIG91ciBleGVjdXRpb24KPj4gKyAgICAgICAgKiB0aW1pbmcgY2FuIGNhdXNl IG9mZi1ieS1vbmUgbWlzY291bnRpbmcgb2YgdmJsYW5rcy4KPj4gKyAgICAgICAgKi8KPj4gKyAg ICAgICBpZiAoZGV2LT5tYXhfdmJsYW5rX2NvdW50ICE9IDApIHsKPj4gKyAgICAgICAgICAgICAg IC8qIHRydXN0IHRoZSBodyBjb3VudGVyIHdoZW4gaXQncyBhcm91bmQgKi8KPj4gKyAgICAgICAg ICAgICAgIGRpZmYgPSAoY3VyX3ZibGFuayAtIHZibGFuay0+bGFzdCkgJiBkZXYtPm1heF92Ymxh bmtfY291bnQ7Cj4+ICsgICAgICAgfSBlbHNlIGlmICghKHJjICYmIGZyYW1lZHVyX25zKSkgewo+ PiAgICAgICAgICAgICAgICAgIC8qIHNvbWUga2luZCBvZiBkZWZhdWx0IGZvciBkcml2ZXJzIHcv byBhY2N1cmF0ZSB2YmwgdGltZXN0YW1waW5nICovCj4+ICAgICAgICAgICAgICAgICAgZGlmZiA9 IChmbGFncyAmIERSTV9DQUxMRURfRlJPTV9WQkxJUlEpICE9IDA7Cj4+ICAgICAgICAgIH0KPgo+ Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==