From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: Funky new vblank counter regressions in Linux 4.4-rc1 Date: Wed, 25 Nov 2015 21:36:04 +0200 Message-ID: <20151125193604.GX4437@intel.com> References: <20151119194557.GB4437@intel.com> <564F3B42.5050803@gmail.com> <20151120153435.GR4437@intel.com> <56532F69.9080001@gmail.com> <20151123155109.GB4437@intel.com> <565353CA.5010909@gmail.com> <20151123202426.GC4437@intel.com> <5655EEBD.5040403@gmail.com> <20151125174600.GV4437@intel.com> <5656063A.8080504@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 002B36E663 for ; Mon, 30 Nov 2015 12:13:43 -0800 (PST) Resent-Message-ID: <20151130201341.GM4437@intel.com> Resent-To: dri-devel@lists.freedesktop.org Content-Disposition: inline In-Reply-To: <5656063A.8080504@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mario Kleiner Cc: Michel =?iso-8859-1?Q?D=E4nzer?= List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBOb3YgMjUsIDIwMTUgYXQgMDg6MDQ6MjZQTSArMDEwMCwgTWFyaW8gS2xlaW5lciB3 cm90ZToKPiBPbiAxMS8yNS8yMDE1IDA2OjQ2IFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4g PiBPbiBXZWQsIE5vdiAyNSwgMjAxNSBhdCAwNjoyNDoxM1BNICswMTAwLCBNYXJpbyBLbGVpbmVy IHdyb3RlOgo+ID4+IE9uIDExLzIzLzIwMTUgMDk6MjQgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90 ZToKPiA+Pj4gT24gTW9uLCBOb3YgMjMsIDIwMTUgYXQgMDY6NTg6MzRQTSArMDEwMCwgTWFyaW8g S2xlaW5lciB3cm90ZToKPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4gT24gMTEvMjMvMjAxNSAwNDo1MSBQ TSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4+Pj4+IE9uIE1vbiwgTm92IDIzLCAyMDE1IGF0 IDA0OjIzOjIxUE0gKzAxMDAsIE1hcmlvIEtsZWluZXIgd3JvdGU6Cj4gPj4+Pj4+IE9uIDExLzIw LzIwMTUgMDQ6MzQgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+Pj4+Pj4+IE9uIEZyaSwg Tm92IDIwLCAyMDE1IGF0IDA0OjI0OjUwUE0gKzAxMDAsIE1hcmlvIEtsZWluZXIgd3JvdGU6Cj4g Pj4+Pj4+Cj4gPj4+Pj4+IC4uLgo+ID4+Pj4+PiBPaywgYnV0IHdoeSB3b3VsZCB0aGF0IGJlIGEg YmFkIHRoaW5nPyBJIHRoaW5rIHdlIHdhbnQgaXQgdG8gdGhpbmsgaXQgaXMKPiA+Pj4+Pj4gaW4g dGhlIHByZXZpb3VzIGZyYW1lIGlmIGl0IGlzIGNhbGxlZCBvdXRzaWRlIHRoZSB2YmxhbmsgaXJx IGNvbnRleHQuCj4gPj4+Pj4+IFRoZSBvbmx5IHJlYXNvbiB3ZSBmdWRnZSBpdCB0byB0aGUgbmV4 dCBmcmFtZXMgdmJsYW5rIGlmIGkgdmJsYW5rIGlycSBpcwo+ID4+Pj4+PiBiZWNhdXNlIHdlIGtu b3cgdGhlIHZibGFuayBpcnEgaGFuZGxlciB3ZSBhcmUgZXhlY3V0aW5nIGF0bS4gd2FzIG1lYW50 Cj4gPj4+Pj4+IHRvIGV4ZWN1dGUgd2l0aGluIHRoZSB1cGNvbWluZyB2YmxhbmsgZm9yIHRoZSBu ZXh0IGZyYW1lLCBzbyB3ZSBmdWRnZQo+ID4+Pj4+PiB0aGUgc2Nhbm91dCBwb3NpdGlvbnMgYW5k IHRoZXJlYnkgdGltZXN0YW1wIHRvIGNvcnJlc3BvbmQgdG8gdGhhdCBuZXcKPiA+Pj4+Pj4gZnJh bWUuIEJ1dCBpZiBzb21ldGhpbmcgY2FsbGVkIG91dHNpZGUgaXJxIGNvbnRleHQgaXQgc2hvdWxk IGdldCBhCj4gPj4+Pj4+IHNjYW5vdXQgcG9zaXRpb24vdGltZXN0YW1wIHRoYXQgY29ycmVzcG9u ZHMgdG8gInJlYWxpdHkiLgo+ID4+Pj4+Cj4gPj4+Pj4gSXQgd291bGQgYmUgYSBiYWQgdGhpbmcg c2luY2UgaXQgd291bGQgY2F1c2UgdGhlIHRpbWVzdGFtcCB0byBqdW1wCj4gPj4+Pj4gYmFja3dh cmRzLCBhbmQgdGhhdCB3b3VsZCBhbHNvIGNhdXNlIHRoZSBmcmFtZSBjb3VudCBndWVzc3RpbWF0 ZSB0byBnbwo+ID4+Pj4+IGJhY2t3YXJkcy4KPiA+Pj4+Pgo+ID4+Pj4KPiA+Pj4+IEJ1dCBvbmx5 IGlmIHdlIGRvbid0IHVzZSB0aGUgZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRlcigpIG1l dGhvZCwKPiA+Pj4+IHdoaWNoIHdlIHRyeSB0byB1c2Ugb24gQU1ELgo+ID4+Pgo+ID4+PiBXZWxs LCBpZiB5b3UgZG8gaXQgdGhhdCB3YXkgdGhlbiB5b3UgaGF2ZSB0aGUgcHJvYmxlbSBvZiB0aGUg aHcgY291bnRlcgo+ID4+PiBzZWVtaW5nIHRvIGp1bXAgZm9yd2FyZCBieSBvbmUgYWZ0ZXIgY3Jv c3NpbmcgdGhlIHN0YXJ0IG9mIHZibGFuayAod2hlbgo+ID4+PiBjb21wYXJlZCB0byB0aGUgdmFs dWUgeW91IHNhbXBsZWQgd2hlbiB5b3UgcHJvY2Vzc2VkIHRoZSBlYXJseSB2YmxhbmsKPiA+Pj4g aW50ZXJydXB0KS4KPiA+Pj4KPiA+Pgo+ID4+IE9rLCBmaW5hbGx5IGkgc2VlIHRoZSBiYWQgc2Nl bmFyaW8gdGhhdCB3b3VsZG4ndCBnZXQgcHJldmVudGVkIGJ5IG91cgo+ID4+IGN1cnJlbnQgbG9j a2luZyB3aXRoIHRoZSBuZXcgdmJsYW5rIGNvdW50aW5nIGluIHRoZSBjb3JlLiBUaGUgdmJsYW5r Cj4gPj4gZW5hYmxlIHBhdGggaXMgc2FmZSBkdWUgdG8gbG9ja2luZyBhbmQgZGlzY291bnRpbmcg b2YgcmVkdW5kYW50Cj4gPj4gdGltZXN0YW1wcyBldGMuIEJ1dCB0aGUgZGlzYWJsZSBwYXRoIGNv dWxkIGdvIHdyb25nOgo+ID4+Cj4gPj4gMS4gVmJsYW5rIGlycSBmaXJlcywgZHJtX2hhbmRsZV92 YmxhbmsoKSAtPiBkcm1fdXBkYXRlX3ZibGFua19jb3VudCgpLAo+ID4+IHVwZGF0ZXMgdGltZXN0 YW1wcyBhbmQgY291bnRzICJhcyBpZiIgaW4gdmJsYW5rIC0+IGluY3JlbWVudGVkIHZibGFuawo+ ID4+IGNvdW50IGFuZCB0aW1lc3RhbXAgbm93IHNldCBpbiB0aGUgZnV0dXJlLgo+ID4+Cj4gPj4g Mi4gQWZ0ZXIgdmJsYW5rIGlycSBmaW5pc2hlcywgYnV0IGp1c3QgYmVmb3JlIGxlYWRpbmcgZWRn ZSBvZiB2YmxhbmssCj4gPj4gdmJsYW5rX2Rpc2FibGVfYW5kX3NhdmUoKSBleGVjdXRlcywgZG9l c24ndCBnZXQgYnVtcGVkIHRpbWVzdGFtcCBvcgo+ID4+IGNvdW50IGJlY2F1c2UgYmVmb3JlIHZi bGFuayBhbmQgbm90IGluIHZibGFuayBpcnEuIE5vdwo+ID4+IGRybV91cGRhdGVfdmJsYW5rX2Nv dW50KCkgd291bGQgcHJvY2VzcyBhCj4gPj4gIm5ldyIgdGltZXN0YW1wIGFuZCBjb3VudCBmcm9t IHRoZSBwYXN0IGFuZCB3ZSdkIGhhdmUgdGltZSBhbmQgY291bnRzCj4gPj4gZ29pbmcgYmFja3dh cmRzLCBhbmQgYmFkIHRoaW5ncyB3b3VsZCBoYXBwZW4uCj4gPj4KPiA+PiBJIGhhdmVuJ3Qgb2Jz ZXJ2ZWQgc3VjaCBhIHRoaW5nIGhhcHBlbmluZyBkdXJpbmcgdGVzdGluZyBzbyBmYXIsCj4gPj4g cHJvYmFibHkgYmVjYXVzZSB0aGUgdGltZSB3aW5kb3cgaW4gd2hpY2ggaXQgY291bGQgaGFwcGVu IGlzIHRpbnksIGJ1dAo+ID4+IGdpdmVuIGhvdyBhd2Z1bGx5IGJhZCBpdCB3b3VsZCBiZSwgaXQg bmVlZHMgdG8gYmUgcHJldmVudGVkLgo+ID4+Cj4gPj4gSSBoYWQgYSBsb29rIGF0IHRoZSBkZXNj cmlwdGlvbiBvZiB0aGUgVmJsYW5rIGlycSBpbiB0aGUgIk03NiBSZWdpc3Rlcgo+ID4+IFJlZmVy ZW5jZSBHdWlkZSIgZm9yIG9sZGVyIGFzaWNzIGFuZCB0aGUgZGVzY3JpcHRpb24gc3VnZ2VzdHMg dGhhdCB0aGUKPiA+PiB2YmxhbmsgaXJxIGZpcmVzIHdoZW4gdGhlIGNydGMncyBsaW5lIGJ1ZmZl ciBpcyBmaW5pc2hlZCByZWFkaW5nIHBpeGVsCj4gPj4gZGF0YSBmcm9tIHRoZSBzY2Fub3V0IGJ1 ZmZlciBpbiBtZW1vcnkgZm9yIGEgZnJhbWUsIGllLiwgd2hlbiB0aGUgbGluZQo+ID4+IGJ1ZmZl ciByZWFkICJlbnRlcnMiIHZibGFuay4gVGhhdCB3b3VsZCBleHBsYWluIHdoeSB0aGUgaXJxIGhh cHBlbnMgYQo+ID4+IGZldyBzY2FubGluZXMgYmVmb3JlIGFjdHVhbCB2YmxhbmssIGJlY2F1c2Ug bGluZSBidWZmZXIgcmVmaWxscyBtdXN0Cj4gPj4gb2J2aW91c2x5IGhhcHBlbiBiZWZvcmUgdGhl IGNydGMgY2FuIHNlbmQgcGl4ZWwgZGF0YSBmcm9tIHRoZSBsaW5lCj4gPj4gYnVmZmVyIHRvIHRo ZSBlbmNvZGVycywgc28gaXQgd291bGQgbGVhZCBhIGJpdCBpbiB0aW1lLiBUaGF0IGFsc28gbWVh bnMKPiA+PiB3ZSBjYW4ndCBkZWxheSB0aGUgdmJsYW5rIGlycSB0byBhY3R1YWxseSBoYXBwZW4g YXQgc3RhcnQgb2YgdmJsYW5rIGFuZAo+ID4+IGhhdmUgdG8gZGVhbCB3aXRoIHRoZSBlYXJseSB2 YmxhbmsgaXJxLgo+ID4+Cj4gPj4+IEkgZ3Vlc3Mgb25lIHNpbGx5IGlkZWEgd291bGQgYmUgdG8g ZGVmZXIgdGhlIHZibGFuayBpbnRlcnJ1cHQgcHJvY2Vzc2luZwo+ID4+PiB0byBhIHRpbWVyLCBh bmQganVzdCBzY2hlZHVsZSBpdCBhIGJpdCBpbnRvIHRoZSBmdXR1cmUgZnJvbSB0aGUgYWN0dWFs Cj4gPj4+IGludGVycnVwdCBoYW5kbGVyLgo+ID4+Pgo+ID4+Cj4gPj4gVGltZXIgd291bGQgYmUg YmFkIGJlY2F1c2UgdGhlbiB3ZSBnZXQgcHJvYmxlbXMgd2l0aCB0aGUgcGFnZWZsaXAKPiA+PiBj b21wbGV0aW9uIGlycSBzb21ldGltZXMgYmVpbmcgcHJvY2Vzc2VkIGJlZm9yZSB0aGUgdmJsYW5r IGlycSwKPiA+Cj4gPiBZb3UgeW91J2QgbmVlZCB0byBtb3ZlIHBhZ2UgZmxpcCBjb21wbGV0aW9u IHRvIGhhcHBlbiBmcm9tIHRoZSB2YmxhbmsKPiA+IHRpbWVyIHRvbyBJIHN1cHBvc2UuCj4gPgo+ ID4+IGFuZAo+ID4+IGJlY2F1c2Ugd2Ugd2FudCB0byBiZSBmYXN0IGluIHZibGFuayBpcnEgaGFu ZGxpbmcsIGRlbGl2ZXJpbmcgdmJsYW5rCj4gPj4gZXZlbnRzIGV0Yy4gSSB3b3VsZG4ndCB0cnVz dCBhIHRpbWVyIHRvIGJlIHJlbGlhYmxlIGVub3VnaCBmb3Igc3VjaAo+ID4+IHNob3J0IHdhaXRz Lgo+ID4KPiA+IGhydGltZXJzIHNob3VsZCBiZSBhY2N1cmF0ZS4gQnV0IG1heWJlIG1vcmUgZXhw ZW5zaXZlIHRoYW4gdGhlIHRpbWVyCj4gPiB3aGVlbC4KPiA+Cj4gCj4gU291bmRzIGFsbCBhIGJp dCBjb21wbGV4IGFuZCBmcmF1Z2h0IHdpdGggbmV3IHBvc3NpYmxlIGNvbXBsaWNhdGlvbnMuIEkg Cj4gY2FuJ3Qgc3BlbmQgbXVjaCBtb3JlIHRpbWUgb24gdGhpcyB0aGFuIGkgZGlkIHNvIGZhciwg YW5kIHdlIG5lZWQgdG8gZ2V0IAo+IHRoaXMgaW50byA0LjQtcmMsIHNvIGkgYW0gYWltaW5nIGZv ciB0aGUgbW9zdCBzaW1wbGUgc29sdXRpb24gdGhhdCB3b3VsZCAKPiB3b3JrLgo+IAo+ID4+IEJ1 c3kgd2FpdGluZyB3b3VsZG4ndCBiZSBncmVhdCBlaXRoZXIgaW4gaXJxLgo+ID4+Cj4gPj4gU28g d2hhdCBhYm91dCB0aGlzIHJlbGF0aXZlbHkgc2ltcGxlIG9uZT8KPiA+Pgo+ID4+IDEuIEluIHJh ZGVvbl9nZXRfY3J0Y19zY2Fub3V0cG9zKCkgd2UgYXJ0aWZpY2FsbHkgZGVmaW5lIHRoZQo+ID4+ IHZibGFua19zdGFydCBsaW5lIHRvIGJlLCBlLmcsIDUgc2NhbmxpbmVzIGJlZm9yZSB0aGUgdHJ1 ZSBzdGFydCBvZgo+ID4+IHZibGFuaywgc28gZm9yIHRoZSBwdXJwb3NlIG9mIHZibGFuayBjb3Vu dGVyIHF1ZXJpZXMgYW5kIHRpbWVzdGFtcGluZwo+ID4+IG91ciAidmJsYW5rIiB3b3VsZCBzdGFy dCBhIGJpdCBlYXJsaWVyIGFuZCB0aGUgdmJsYW5rIGlycSB3b3VsZCBhbHdheXMKPiA+PiBleGVj dXRlIGluICJ2YmxhbmsiLiBOb24tSXJxIGludm9jYXRpb25zIGxpa2UgdmJsYW5rX2Rpc2FibGVf YW5kX3NhdmUoKQo+ID4+IHdvdWxkIGFsc28gYmUgdHJlYXRlZCB0byB0aGlzIGVhcmx5IHZibGFu ayBzdGFydCBhbmQgc28gd2hhdCB0aGUgRFJNCj4gPj4gY29yZSBvYnNlcnZlcyB3b3VsZCBhbHdh eXMgYmUgY29uc2lzdGVudC4KPiA+Pgo+ID4+IDIuIEF0IGxlYXN0IGluIHJhZGVvbi1rbXMgd2Ug YWxzbyB1c2UgcmFkZW9uX2dldF9jcnRjX3NjYW5vdXRwb3MoKQo+ID4+IGludGVybmFsbHkgZm9y ICJkeW5wbSIgZHluYW1pYyBwb3dlciBtYW5hZ2VtZW50L3JlY2xvY2tpbmcsIGFuZCB0bwo+ID4+ IGltcGxlbWVudCBwYWdlZmxpcCBjb21wbGV0aW9uIGRldGVjdGlvbiBvbiBhc2ljcyBvbGRlciB0 aGFuIERDRTMgd2hpY2gKPiA+PiBkb24ndCBoYXZlIHBhZ2VmbGlwIGludGVycnVwdHMuIEZvciB0 aG9zZSBjYXNlcyB3ZSBuZWVkIHRvIHVzZSB0aGUgdHJ1ZQo+ID4+IHN0YXJ0IG9mIHZibGFuaywg c28gZm9yIHRoaXMgaW50ZXJuYWwgdXNlIHdlIHBhc3MgaW4gc29tZSBzcGVjaWFsIGZsYWcKPiA+ PiBpbnRvIHJhZGVvbl9nZXRfY3J0Y19zY2Fub3V0cG9zKCkgdG8gdGVsbCBpdCB0byBub3Qgc2hp ZnQgdGhlIHZibGFuawo+ID4+IHN0YXJ0IGFyb3VuZC4KPiA+Pgo+ID4+IDMuIEkndmUgYWRkZWQg YW5vdGhlciBjaGVjayB0byBteSBwYXRjaCBmb3IgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoKSB0 bwo+ID4+IGNhdGNoIHRpbWVzdGFtcHMgZ29pbmcgYmFja3dhcmRzIGFuZCBkaXNjb3VudGluZyBz dWNoIGNhc2VzLCBmb3IgYSBiaXQKPiA+PiBvZiBleHRyYSByb2J1c3RuZXNzIGFnYWluc3QgZHJp dmVyIHRyb3VibGUuCj4gPj4KPiA+PiBBbnkgaWRlYXMgd2h5IHRoaXMgd291bGQgYmUgYSBzdHVw aWQgaWRlYT8gSSdsbCB0cnkgdGhpcyBub3cgYW5kIGp1c3QKPiA+PiBob3BlIG1lYW53aGlsZSBu b2JvZHkgZmluZHMgYSByZWFzb24gd2h5IHRoaXMgd291bGQgYmUgYmFkLgo+ID4KPiA+IFdoYXQg SSBkb24ndCBsaWtlIGlzIGxlYWtpbmcgYW55IG9mIHRoaXMgaW50byB0aGUgY29yZSBjb2RlLiBB bGwgdGhlCj4gPiBoYWNrcyBzaG91bGQgbGl2ZSBpbiB0aGUgaHcgc3BlY2lmaWMgY29kZS4gV2Un dmUgbWFuYWdlZCB0byBrZWVwIGFsbAo+ID4gdGhlIGk5MTUgaGFja3MgaGlkZGVuIHRoYXQgd2F5 Lgo+ID4KPiA+IFNvIGlmIHlvdSB3b3VsZDoKPiA+IC0gZnVkZ2UgeW91ciBnZXRfc2Nhbm91dF9w b3NpdGlvbiBhcyB5b3Ugc3VnZ2VzdGVkCj4gPiAtIF9ub3RfIGV4cG9zZSB0aGUgaHcgY291bnRl ciB0byB0aGUgdmJsYW5rIGNvcmUgc2luY2UgaXQKPiA+ICAgIGRpc2FncmVlcyB3aXRoIHRoZSBz Y2Fub3V0IHBvc2l0aW9uCj4gPiAtIGtlZXAgdGhlIGludGVybmFsIGdldF9zY2Fub3V0X3Bvc2l0 aW9uIHZhcmlhbnQvZmxhZwo+ID4gICAgcHVyZWx5IGludGVybmFsCj4gPgo+ID4gdGhlbiBJIHRo aW5rIEkgbWlnaHQgbGlrZSBpdC4gVGhhdCB3YXkgd29ya2luZyBoYXJkd2FyZSBkb2Vzbid0IGhh dmUgdG8KPiA+IGJlIGV4cG9zZWQgdG8gdGhlc2UgaGFja3MsIGFuZCB0aGVyZSdzIHBvc3NpYmxl IGEgYml0IGxlc3MgZGFuZ2VyIHRoYXQgaXQKPiA+IGFsbCBnZXRzIGJyb2tlbiBhZ2FpbiBuZXh0 IHRpbWUgdGhlIGNvcmUgbmVlZHMgc29tZSB3b3JrLgo+ID4KPiAKPiBPay4gRXhwb3NpbmcgdGhl IGZ1ZGdlZCBodyBjb3VudGVyIHNob3VsZG4ndCBiZSBhIHByb2JsZW0gdGhvdWdoLCBnaXZlbiAK PiB0aGF0IGl0IHdvdWxkIGJlIGZ1ZGdlZCBpbiBhIGNvbnNpc3RlbnQgd2F5IHdpdGggdGhlIGZ1 ZGdlZCBzY2Fub3V0IAo+IHBvc2l0aW9ucyBhbmQgdG8gaGF2ZSBpbmNyZW1lbnRlZCBhdCB0aW1l IG9mIGRybV9oYW5kbGVfdmJsYW5rKCkuIFdlJ2QgCj4gYnVtcCB0aGUgaHcgY291bnRlciB0byB0 aGUgY291bnQgb2YgdGhlIG5ldyB2YmxhbmsgYXQgdGhlIHNhbWUgdGltZSB3aGVuIAo+IHRoZSBz Y2Fub3V0IHBvc2l0aW9ucyB3b3VsZCBzdGFydCBjb3VudGluZyBiYWNrd2FyZHMgZnJvbSBtaW51 cyAKPiBzb21ldGhpbmcgdG8gMCwgc2hvd2luZyBob3cgbWFueSB2YmxhbmsgbGluZXMgdG8gZ28g dW50aWwgc3RhcnQgb2YgCj4gc2Nhbm91dCwgZXRjLiBUaGUgb25seSBkaWZmZXJlbmNlIHRvIHJl YWxpdHkgd291bGQgYmUgdGhhdCB0aGlzIAo+IHNpbXVsYXRlZCB2Ymxhbmsgd291bGQgc3RhcnQg NSBzY2FubGluZXMgZWFybGllciB0aGFuIHRoZSB0cnVlIGh3IAo+IHZibGFuaywgYnV0IGkgY2Fu J3Qgc2VlIGhvdyB0aGUgY29yZSB3b3VsZCBjYXJlIGFib3V0IHRoYXQuCj4gCj4gCj4gPiBPbmUg cHJvYmxlbSB3aXRoIHRoYXQgYXBwcm9hY2ggY291bGQgYmUgdGhhdCB0aGUgdmJsYW5rIGV2ZW50 IGFuZCBwYWdlCj4gPiBmbGlwIGV2ZW50IHdvdWxkIGJlIGRlbGlldmVyZWQgYXQgZGlmZmVyZW50 IHRpbWVzIGlmIHlvdSBrZWVwIHVzaW5nIHRoZQo+ID4gcGFnZSBmbGlwIGludGVycnVwdCwgYnV0 IEknbSBub3Qgc3VyZSB0aGF0IHdvdWxkIGJlIGEgcHJvYmxlbS4gQXQgbGVhc3QKPiA+IHRoZXkg c2hvdWxkIGJvdGggaGF2ZSB0aGUgc2FtZSB0aW1lc3RhbXAgYW5kIGNvdW50ZXIgdmFsdWUuCj4g Pgo+IAo+IFRoYXQncyB0aGUgc2FtZSBub3csIGFuZCB0aGUgdGltZXN0YW1wcyBhbmQgY291bnRz IGJlIHRoZSBzYW1lLiBJJ2xsIAo+IGNoZWNrIHdpdGggbXkgbWVhc3VyZW1lbnQgZXF1aXBtZW50 IHRoYXQgdGhlIHRpbWVzdGFtcHMgd2lsbCBiZSBzdGlsbCAKPiBhY2N1cmF0ZSB3cnQuIHRvIHJl YWxpdHkuCj4gCj4gQXR0YWNoZWQgaXMgbXkgY3VycmVudCBwYXRjaCBpIHdhbnRlZCB0byBzdWJt aXQgZm9yIHRoZSBkcm0gY29yZSdzIAo+IGRybV91cGRhdGVfdmJsYW5rX2NvdW50KCkuIEkgdGhp bmsgaXQncyBnb29kIHRvIG1ha2UgdGhlIGNvcmUgc29tZXdoYXQgCj4gcm9idXN0IGFnYWluc3Qg cG90ZW50aWFsIGttcyBkcml2ZXIgYnVncyBvciBnbGl0Y2hlcy4gQnV0IGlmIHlvdSAKPiB3b3Vs ZG4ndCBsaWtlIHRoYXQgcGF0Y2gsIHRoZXJlIHdvdWxkbid0IGJlIG11Y2ggb2YgYSBwb2ludCBz ZW5kaW5nIGl0IAo+IG91dCBhdCBhbGwuCj4gCj4gdGhhbmtzLAo+IC1tYXJpbwo+IAoKPiA+RnJv bSAyZDVkNThhMWM1NzVhZDAwMmNlMmNiNjQzZjM5NWQwZTQ3NTdkOTU5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQo+IEZyb206IE1hcmlvIEtsZWluZXIgPG1hcmlvLmtsZWluZXIuZGVAZ21haWwu Y29tPgo+IERhdGU6IFdlZCwgMjUgTm92IDIwMTUgMTg6NDg6MzEgKzAxMDAKPiBTdWJqZWN0OiBb UEFUQ0hdIGRybS9pcnE6IE1ha2UgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoKSBtb3JlIHJvYnVz dC4KPiAKPiBUaGUgY2hhbmdlcyB0byBkcm1fdXBkYXRlX3ZibGFua19jb3VudCgpIGZvciBMaW51 eCA0LjQtcmMKPiBtYWRlIHRoZSBmdW5jdGlvbiBtb3JlIGZyYWdpbGUgd3J0LiBzb21lIGh3IHF1 aXJrcy4gRS5nLiwKPiBhdCBkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuaygpLCBBTUQgZ3B1J3Mg ZmlyZSBhIHNwdXJpb3VzCj4gcmVkdW5kYW50IHZibGFuayBpcnEgc2hvcnRseSBhZnRlciBlbmFi bGluZyB2YmxhbmsgaXJxcywgbm90Cj4gbG9ja2VkIHRvIHZibGFuay4gVGhpcyBjYXVzZXMgYSBy ZWR1bmRhbnQgY2FsbCB3aGljaCBuZWVkcwo+IHRvIGJlIHN1cHByZXNzZWQgdG8gYXZvaWQgbWlz Y291bnRpbmcuCj4gCj4gVG8gaW5jcmVhc2Ugcm9idXN0bmVzcywgc2h1ZmZsZSB0aGluZ3MgYXJv dW5kIGEgYml0Ogo+IAo+IE9uIGRyaXZlcnMgd2l0aCBoaWdoIHByZWNpc2lvbiB2YmxhbmsgdGlt ZXN0YW1waW5nIGFsd2F5cwo+IGV2YWx1YXRlIHRoZSB0aW1lc3RhbXAgZGlmZmVyZW5jZSBiZXR3 ZWVuIGN1cnJlbnQgdGltZXN0YW1wCj4gYW5kIHByZXZpb3VzbHkgcmVjb3JkZWQgdGltZXN0YW1w IHRvIGRldGVjdCBzdWNoIHJlZHVuZGFudAo+IGludm9jYXRpb25zIGFuZCBuby1vcCBpbiB0aGF0 IGNhc2UuCj4gCj4gQWxzbyBkZXRlY3QgYW5kIHdhcm4gYWJvdXQgdGltZXN0YW1wcyBnb2luZyBi YWNrd2FyZHMgdG8KPiBjYXRjaCBwb3RlbnRpYWwga21zIGRyaXZlciBidWdzLgo+IAo+IFRoaXMg cGF0Y2ggaXMgbWVhbnQgZm9yIExpbnV4IDQuNC1yYyBhbmQgbGF0ZXIuCj4gCj4gU2lnbmVkLW9m Zi1ieTogTWFyaW8gS2xlaW5lciA8bWFyaW8ua2xlaW5lci5kZUBnbWFpbC5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMgfCA1MyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygr KSwgMTIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f aXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gaW5kZXggODE5YjhjMS4uODcyOGMz YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9pcnEuYwo+IEBAIC0xNzIsOSArMTcyLDExIEBAIHN0YXRpYyB2b2lkIGRy bV91cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGlu dCBwaXBlLAo+ICAJCQkJICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCj4gIHsKPiAgCXN0cnVjdCBk cm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZkZXYtPnZibGFua1twaXBlXTsKPiAtCXUzMiBjdXJf dmJsYW5rLCBkaWZmOwo+ICsJdTMyIGN1cl92YmxhbmssIGRpZmYgPSAwOwo+ICAJYm9vbCByYzsK PiAgCXN0cnVjdCB0aW1ldmFsIHRfdmJsYW5rOwo+ICsJY29uc3Qgc3RydWN0IHRpbWV2YWwgKnRf b2xkOwo+ICsJdTY0IGRpZmZfbnM7Cj4gIAlpbnQgY291bnQgPSBEUk1fVElNRVNUQU1QX01BWFJF VFJJRVM7Cj4gIAlpbnQgZnJhbWVkdXJfbnMgPSB2YmxhbmstPmZyYW1lZHVyX25zOwo+ICAKPiBA QCAtMTk1LDEzICsxOTcsMTUgQEAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gIAkJcmMgPSBkcm1f Z2V0X2xhc3RfdmJsdGltZXN0YW1wKGRldiwgcGlwZSwgJnRfdmJsYW5rLCBmbGFncyk7Cj4gIAl9 IHdoaWxlIChjdXJfdmJsYW5rICE9IGRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2NvdW50ZXIoZGV2 LCBwaXBlKSAmJiAtLWNvdW50ID4gMCk7Cj4gIAo+IC0JaWYgKGRldi0+bWF4X3ZibGFua19jb3Vu dCAhPSAwKSB7Cj4gLQkJLyogdHJ1c3QgdGhlIGh3IGNvdW50ZXIgd2hlbiBpdCdzIGFyb3VuZCAq Lwo+IC0JCWRpZmYgPSAoY3VyX3ZibGFuayAtIHZibGFuay0+bGFzdCkgJiBkZXYtPm1heF92Ymxh bmtfY291bnQ7Cj4gLQl9IGVsc2UgaWYgKHJjICYmIGZyYW1lZHVyX25zKSB7Cj4gLQkJY29uc3Qg c3RydWN0IHRpbWV2YWwgKnRfb2xkOwo+IC0JCXU2NCBkaWZmX25zOwo+IC0KPiArCS8qCj4gKwkg KiBBbHdheXMgdXNlIHZibGFuayB0aW1lc3RhbXBpbmcgYmFzZWQgbWV0aG9kIGlmIHN1cHBvcnRl ZCB0byByZWplY3QKPiArCSAqIHJlZHVuZGFudCB2YmxhbmsgaXJxcy4gRS5nLiwgQU1EIGhhcmR3 YXJlIG5lZWRzIHRoaXMgdG8gbm90IHNjcmV3IHVwCj4gKwkgKiBkdWUgdG8gc29tZSBpcnEgaGFu ZGxpbmcgcXVpcmsuCj4gKwkgKgo+ICsJICogVGhpcyBhbHNvIHNldHMgdGhlIGRpZmYgdmFsdWUg Zm9yIHVzZSBhcyBmYWxsYmFjayBiZWxvdyBpbiBjYXNlIHRoZQo+ICsJICogaHcgZG9lcyBub3Qg c3VwcG9ydCBhIHN1aXRhYmxlIGh3IHZibGFuayBjb3VudGVyLgo+ICsJICovCj4gKwlpZiAocmMg JiYgZnJhbWVkdXJfbnMpIHsKCklmIHlvdSBmdWRnZWQgZXZlcnl0aGluZyBwcm9wZXJseSB3aHkg ZG8geW91IHN0aWxsIG5lZWQgdGhpcz8gV2l0aAp3b3JraW5nIGh3IGNvdW50ZXIgdGhlcmUgc2hv dWxkIGJlIG5vIG5lZWQgdG8gZG8gdGhpcyBzdHVmZi4KCj4gIAkJdF9vbGQgPSAmdmJsYW5rdGlt ZXN0YW1wKGRldiwgcGlwZSwgdmJsYW5rLT5jb3VudCk7Cj4gIAkJZGlmZl9ucyA9IHRpbWV2YWxf dG9fbnMoJnRfdmJsYW5rKSAtIHRpbWV2YWxfdG9fbnModF9vbGQpOwo+ICAKPiBAQCAtMjEyLDEx ICsyMTYsMzYgQEAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gIAkJICovCj4gIAkJZGlmZiA9IERJ Vl9ST1VORF9DTE9TRVNUX1VMTChkaWZmX25zLCBmcmFtZWR1cl9ucyk7Cj4gIAo+IC0JCWlmIChk aWZmID09IDAgJiYgZmxhZ3MgJiBEUk1fQ0FMTEVEX0ZST01fVkJMSVJRKQo+ICsJCS8qIENhdGNo IGRyaXZlciB0aW1lc3RhbXBpbmcgYnVncyBhbmQgcHJldmVudCB3b3JzZS4gKi8KPiArCQlpZiAo KHMzMikgZGlmZiA8IDApIHsKPiArCQkJRFJNX0RFQlVHX1ZCTCgiY3J0YyAldTogVGltZXN0YW1w IGdvaW5nIGJhY2t3YXJkISIKPiArCQkJIiBkaWZmX25zID0gJWxsZCwgZnJhbWVkdXJfbnMgPSAl ZClcbiIsCj4gKwkJCXBpcGUsIChsb25nIGxvbmcpIGRpZmZfbnMsIGZyYW1lZHVyX25zKTsKPiAr CQkJcmV0dXJuOwo+ICsJCX0KPiArCj4gKwkJaWYgKGRpZmYgPT0gMCAmJiBmbGFncyAmIERSTV9D QUxMRURfRlJPTV9WQkxJUlEpIHsKPiAgCQkJRFJNX0RFQlVHX1ZCTCgiY3J0YyAldTogUmVkdW5k YW50IHZibGlycSBpZ25vcmVkLiIKPiAtCQkJCSAgICAgICIgZGlmZl9ucyA9ICVsbGQsIGZyYW1l ZHVyX25zID0gJWQpXG4iLAo+IC0JCQkJICAgICAgcGlwZSwgKGxvbmcgbG9uZykgZGlmZl9ucywg ZnJhbWVkdXJfbnMpOwo+IC0JfSBlbHNlIHsKPiArCQkJIiBkaWZmX25zID0gJWxsZCwgZnJhbWVk dXJfbnMgPSAlZClcbiIsCj4gKwkJCXBpcGUsIChsb25nIGxvbmcpIGRpZmZfbnMsIGZyYW1lZHVy X25zKTsKPiArCj4gKwkJCS8qIFRyZWF0IHRoaXMgcmVkdW5kYW50IGludm9jYXRpb24gYXMgbm8t b3AuICovCj4gKwkJCVdBUk5fT05fT05DRShjdXJfdmJsYW5rICE9IHZibGFuay0+bGFzdCk7Cj4g KwkJCXJldHVybjsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIGh3IGNvdW50ZXJzLCBp ZiBtYXJrZWQgYXMgc3VwcG9ydGVkIHZpYSBtYXhfdmJsYW5rX2NvdW50ICE9IDAsCj4gKwkgKiAq bXVzdCogaW5jcmVtZW50IGF0IGxlYWRpbmcgZWRnZSBvZiB2Ymxhbmsgb3IgYXQgbGVhc3QgYmVm b3JlCj4gKwkgKiB0aGUgZmlyaW5nIG9mIHRoZSBodyB2YmxhbmsgaXJxLCBvdGhlcndpc2Ugd2Ug aGF2ZSBhIHJhY2UgaGVyZQo+ICsJICogYmV0d2VlbiBncHUgYW5kIHVzLCB3aGVyZSBzbWFsbCB2 YXJpYXRpb25zIGluIG91ciBleGVjdXRpb24KPiArCSAqIHRpbWluZyBjYW4gY2F1c2Ugb2ZmLWJ5 LW9uZSBtaXNjb3VudGluZyBvZiB2YmxhbmtzLgo+ICsJICovCj4gKwlpZiAoZGV2LT5tYXhfdmJs YW5rX2NvdW50ICE9IDApIHsKPiArCQkvKiB0cnVzdCB0aGUgaHcgY291bnRlciB3aGVuIGl0J3Mg YXJvdW5kICovCj4gKwkJZGlmZiA9IChjdXJfdmJsYW5rIC0gdmJsYW5rLT5sYXN0KSAmIGRldi0+ bWF4X3ZibGFua19jb3VudDsKPiArCX0gZWxzZSBpZiAoIShyYyAmJiBmcmFtZWR1cl9ucykpIHsK PiAgCQkvKiBzb21lIGtpbmQgb2YgZGVmYXVsdCBmb3IgZHJpdmVycyB3L28gYWNjdXJhdGUgdmJs IHRpbWVzdGFtcGluZyAqLwo+ICAJCWRpZmYgPSAoZmxhZ3MgJiBEUk1fQ0FMTEVEX0ZST01fVkJM SVJRKSAhPSAwOwo+ICAJfQo+IC0tIAo+IDEuOS4xCj4gCgoKLS0gClZpbGxlIFN5cmrDpGzDpApJ bnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK