From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm: use seqlock for vblank time/count Date: Tue, 24 May 2016 16:54:05 +0200 Message-ID: <20160524145405.GA27098@phenom.ffwll.local> References: <1462890088-18194-1-git-send-email-matthew.auld@intel.com> <20160524122054.GD4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id D8FC66E131 for ; Tue, 24 May 2016 14:54:06 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id q62so6926582wmg.3 for ; Tue, 24 May 2016 07:54:06 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20160524122054.GD4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Matthew Auld , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXkgMjQsIDIwMTYgYXQgMDM6MjA6NTRQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgTWF5IDEwLCAyMDE2IGF0IDAzOjIxOjI4UE0gKzAxMDAsIE1hdHRo ZXcgQXVsZCB3cm90ZToKPiA+IFRoaXMgcGF0Y2ggYWltcyB0byByZXBsYWNlIHRoZSByb2xsLXlv dXItb3duIHNlcWxvY2sgaW1wbGVtZW50YXRpb24gd2l0aAo+ID4gZnVsbC1ibG93biBzZXFsb2Nr Jy4gV2UgYWxzbyByZW1vdmUgdGhlIHRpbWVzdGFtcCByaW5nLWJ1ZmZlciBpbiBmYXZvdXIKPiA+ IG9mIHNpbmdsZSB0aW1lc3RhbXAvY291bnQgcGFpciBwcm90ZWN0ZWQgYnkgYSBzZXFsb2NrLiBJ biB0dXJuIHRoaXMKPiA+IG1lYW5zIHdlIGNhbiBub3cgaW5jcmVtZW50IHRoZSB2YmxhbmsgZnJl ZWx5IHdpdGhvdXQgdGhlIG5lZWQgZm9yCj4gPiBjbGFtcGluZy4KPiA+IAo+ID4gdjI6Cj4gPiAg IC0gcmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgc2VxbG9jaywga2VlcGluZyB2YmxhbmtfdGltZV9s b2NrCj4gPiAgIC0gbWFrZSB0aGUgc2VxbG9jayBwZXIgdmJsYW5rX2NydGMsIHNvIG11bHRpcGxl IHJlYWRlcnMgYXJlbid0IGJsb2NrZWQgYnkKPiA+ICAgICB0aGUgd3JpdGVyCj4gPiAKPiA+IENj OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4gQ2M6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5 OiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+Cj4gCj4gTEdUTQo+IAo+IFJl dmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t PgoKQXBwbGllZCB0byBkcm0tbWlzYywgdGhhbmtzLgotRGFuaWVsCgo+IAo+ID4gLS0tCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYyB8IDkwICsrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgaW5jbHVkZS9kcm0vZHJtUC5oICAgICAgICB8IDE0 ICsrKy0tLS0tCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA4NyBkZWxl dGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gPiBpbmRleCAzYzFhNmYxLi4wZTk1MTAwIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9pcnEuYwo+ID4gQEAgLTQyLDEwICs0Miw2IEBACj4gPiAgI2luY2x1ZGUg PGxpbnV4L3ZnYWFyYi5oPgo+ID4gICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KPiA+ICAKPiA+ IC0vKiBBY2Nlc3MgbWFjcm8gZm9yIHNsb3RzIGluIHZibGFuayB0aW1lc3RhbXAgcmluZ2J1ZmZl ci4gKi8KPiA+IC0jZGVmaW5lIHZibGFua3RpbWVzdGFtcChkZXYsIHBpcGUsIGNvdW50KSBcCj4g PiAtCSgoZGV2KS0+dmJsYW5rW3BpcGVdLnRpbWVbKGNvdW50KSAlIERSTV9WQkxBTktUSU1FX1JC U0laRV0pCj4gPiAtCj4gPiAgLyogUmV0cnkgdGltZXN0YW1wIGNhbGN1bGF0aW9uIHVwIHRvIDMg dGltZXMgdG8gc2F0aXNmeQo+ID4gICAqIGRybV90aW1lc3RhbXBfcHJlY2lzaW9uIGJlZm9yZSBn aXZpbmcgdXAuCj4gPiAgICovCj4gPiBAQCAtODIsMjkgKzc4LDE1IEBAIHN0YXRpYyB2b2lkIHN0 b3JlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiA+ ICAJCQkgc3RydWN0IHRpbWV2YWwgKnRfdmJsYW5rLCB1MzIgbGFzdCkKPiA+ICB7Cj4gPiAgCXN0 cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZkZXYtPnZibGFua1twaXBlXTsKPiA+IC0J dTMyIHRzbG90Owo+ID4gIAo+ID4gIAlhc3NlcnRfc3Bpbl9sb2NrZWQoJmRldi0+dmJsYW5rX3Rp bWVfbG9jayk7Cj4gPiAgCj4gPiAgCXZibGFuay0+bGFzdCA9IGxhc3Q7Cj4gPiAgCj4gPiAtCS8q IEFsbCB3cml0ZXJzIGhvbGQgdGhlIHNwaW5sb2NrLCBidXQgcmVhZGVycyBhcmUgc2VyaWFsaXpl ZCBieQo+ID4gLQkgKiB0aGUgbGF0Y2hpbmcgb2YgdmJsYW5rLT5jb3VudCBiZWxvdy4KPiA+IC0J ICovCj4gPiAtCXRzbG90ID0gdmJsYW5rLT5jb3VudCArIHZibGFua19jb3VudF9pbmM7Cj4gPiAt CXZibGFua3RpbWVzdGFtcChkZXYsIHBpcGUsIHRzbG90KSA9ICp0X3ZibGFuazsKPiA+IC0KPiA+ IC0JLyoKPiA+IC0JICogdmJsYW5rIHRpbWVzdGFtcCB1cGRhdGVzIGFyZSBwcm90ZWN0ZWQgb24g dGhlIHdyaXRlIHNpZGUgd2l0aAo+ID4gLQkgKiB2YmxhbmtfdGltZV9sb2NrLCBidXQgb24gdGhl IHJlYWQgc2lkZSBkb25lIGxvY2tsZXNzbHkgdXNpbmcgYQo+ID4gLQkgKiBzZXF1ZW5jZS1sb2Nr IG9uIHRoZSB2YmxhbmsgY291bnRlci4gRW5zdXJlIGNvcnJlY3Qgb3JkZXJpbmcgdXNpbmcKPiA+ IC0JICogbWVtb3J5IGJhcnJyaWVycy4gV2UgbmVlZCB0aGUgYmFycmllciBib3RoIGJlZm9yZSBh bmQgYWxzbyBhZnRlciB0aGUKPiA+IC0JICogY291bnRlciB1cGRhdGUgdG8gc3luY2hyb25pemUg d2l0aCB0aGUgbmV4dCB0aW1lc3RhbXAgd3JpdGUuCj4gPiAtCSAqIFRoZSByZWFkLXNpZGUgYmFy cmllcnMgZm9yIHRoaXMgYXJlIGluIGRybV92YmxhbmtfY291bnRfYW5kX3RpbWUuCj4gPiAtCSAq Lwo+ID4gLQlzbXBfd21iKCk7Cj4gPiArCXdyaXRlX3NlcWxvY2soJnZibGFuay0+c2VxbG9jayk7 Cj4gPiArCXZibGFuay0+dGltZSA9ICp0X3ZibGFuazsKPiA+ICAJdmJsYW5rLT5jb3VudCArPSB2 YmxhbmtfY291bnRfaW5jOwo+ID4gLQlzbXBfd21iKCk7Cj4gPiArCXdyaXRlX3NlcXVubG9jaygm dmJsYW5rLT5zZXFsb2NrKTsKPiA+ICB9Cj4gPiAgCj4gPiAgLyoqCj4gPiBAQCAtMjA1LDcgKzE4 Nyw3IEBAIHN0YXRpYyB2b2lkIGRybV91cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+ID4gIAkJY29uc3Qgc3RydWN0IHRpbWV2YWwg KnRfb2xkOwo+ID4gIAkJdTY0IGRpZmZfbnM7Cj4gPiAgCj4gPiAtCQl0X29sZCA9ICZ2Ymxhbmt0 aW1lc3RhbXAoZGV2LCBwaXBlLCB2YmxhbmstPmNvdW50KTsKPiA+ICsJCXRfb2xkID0gJnZibGFu ay0+dGltZTsKPiA+ICAJCWRpZmZfbnMgPSB0aW1ldmFsX3RvX25zKCZ0X3ZibGFuaykgLSB0aW1l dmFsX3RvX25zKHRfb2xkKTsKPiA+ICAKPiA+ICAJCS8qCj4gPiBAQCAtMjM5LDQ5ICsyMjEsNiBA QCBzdGF0aWMgdm9pZCBkcm1fdXBkYXRlX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiA+ICAJCWRpZmYgPSAxOwo+ID4gIAl9Cj4gPiAgCj4g PiAtCS8qCj4gPiAtCSAqIEZJTVhFOiBOZWVkIHRvIHJlcGxhY2UgdGhpcyBoYWNrIHdpdGggcHJv cGVyIHNlcWxvY2tzLgo+ID4gLQkgKgo+ID4gLQkgKiBSZXN0cmljdCB0aGUgYnVtcCBvZiB0aGUg c29mdHdhcmUgdmJsYW5rIGNvdW50ZXIgdG8gYSBzYWZlIG1heGltdW0KPiA+IC0JICogdmFsdWUg b2YgKzEgd2hlbmV2ZXIgdGhlcmUgaXMgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY29uY3VycmVudCBy ZWFkZXJzCj4gPiAtCSAqIG9mIHZibGFuayB0aW1lc3RhbXBzIGNvdWxkIGJlIGFjdGl2ZSBhdCB0 aGUgbW9tZW50LCBhcyB0aGUgY3VycmVudAo+ID4gLQkgKiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg dGltZXN0YW1wIGNhY2hpbmcgYW5kIHVwZGF0aW5nIGlzIG5vdCBzYWZlCj4gPiAtCSAqIGFnYWlu c3QgY29uY3VycmVudCByZWFkZXJzIGZvciBjYWxscyB0byBzdG9yZV92YmxhbmsoKSB3aXRoIGEg YnVtcAo+ID4gLQkgKiBvZiBhbnl0aGluZyBidXQgKzEuIEEgYnVtcCAhPSAxIHdvdWxkIHZlcnkg bGlrZWx5IHJldHVybiBjb3JydXB0ZWQKPiA+IC0JICogdGltZXN0YW1wcyB0byB1c2Vyc3BhY2Us IGJlY2F1c2UgdGhlIHNhbWUgc2xvdCBpbiB0aGUgY2FjaGUgY291bGQKPiA+IC0JICogYmUgY29u Y3VycmVudGx5IHdyaXR0ZW4gYnkgc3RvcmVfdmJsYW5rKCkgYW5kIHJlYWQgYnkgb25lIG9mIHRo b3NlCj4gPiAtCSAqIHJlYWRlcnMgd2l0aG91dCB0aGUgcmVhZC1yZXRyeSBsb2dpYyBkZXRlY3Rp bmcgdGhlIGNvbGxpc2lvbi4KPiA+IC0JICoKPiA+IC0JICogQ29uY3VycmVudCByZWFkZXJzIGNh biBleGlzdCB3aGVuIHdlIGFyZSBjYWxsZWQgZnJvbSB0aGUKPiA+IC0JICogZHJtX3ZibGFua19v ZmYoKSBvciBkcm1fdmJsYW5rX29uKCkgZnVuY3Rpb25zIGFuZCBvdGhlciBub24tdmJsYW5rLQo+ ID4gLQkgKiBpcnEgY2FsbGVycy4gSG93ZXZlciwgYWxsIHRob3NlIGNhbGxzIHRvIHVzIGFyZSBo YXBwZW5pbmcgd2l0aCB0aGUKPiA+IC0JICogdmJsX2xvY2sgbG9ja2VkIHRvIHByZXZlbnQgZHJt X3ZibGFua19nZXQoKSwgc28gdGhlIHZibGFuayByZWZjb3VudAo+ID4gLQkgKiBjYW4ndCBpbmNy ZWFzZSB3aGlsZSB3ZSBhcmUgZXhlY3V0aW5nLiBUaGVyZWZvcmUgYSB6ZXJvIHJlZmNvdW50IGF0 Cj4gPiAtCSAqIHRoaXMgcG9pbnQgaXMgc2FmZSBmb3IgYXJiaXRyYXJ5IGNvdW50ZXIgYnVtcHMg aWYgd2UgYXJlIGNhbGxlZAo+ID4gLQkgKiBvdXRzaWRlIHZibGFuayBpcnEsIGEgbm9uLXplcm8g Y291bnQgaXMgbm90IDEwMCUgc2FmZS4gVW5mb3J0dW5hdGVseQo+ID4gLQkgKiB3ZSBtdXN0IGFs c28gYWNjZXB0IGEgcmVmY291bnQgb2YgMSwgYXMgd2hlbmV2ZXIgd2UgYXJlIGNhbGxlZCBmcm9t Cj4gPiAtCSAqIGRybV92YmxhbmtfZ2V0KCkgLT4gZHJtX3ZibGFua19lbmFibGUoKSB0aGUgcmVm Y291bnQgd2lsbCBiZSAxIGFuZAo+ID4gLQkgKiB3ZSBtdXN0IGxldCB0aGF0IG9uZSBwYXNzIHRo cm91Z2ggaW4gb3JkZXIgdG8gbm90IGxvc2UgdmJsYW5rIGNvdW50cwo+ID4gLQkgKiBkdXJpbmcg dmJsYW5rIGlycSBvZmYgLSB3aGljaCB3b3VsZCBjb21wbGV0ZWx5IGRlZmVhdCB0aGUgd2hvbGUK PiA+IC0JICogcG9pbnQgb2YgdGhpcyByb3V0aW5lLgo+ID4gLQkgKgo+ID4gLQkgKiBXaGVuZXZl ciB3ZSBhcmUgY2FsbGVkIGZyb20gdmJsYW5rIGlycSwgd2UgaGF2ZSB0byBhc3N1bWUgY29uY3Vy cmVudAo+ID4gLQkgKiByZWFkZXJzIGV4aXN0IG9yIGNhbiBzaG93IHVwIGFueSB0aW1lIGR1cmlu ZyBvdXIgZXhlY3V0aW9uLCBldmVuIGlmCj4gPiAtCSAqIHRoZSByZWZjb3VudCBpcyBjdXJyZW50 bHkgemVybywgYXMgdmJsYW5rIGlycXMgYXJlIHVzdWFsbHkgb25seQo+ID4gLQkgKiBlbmFibGVk IGR1ZSB0byB0aGUgcHJlc2VuY2Ugb2YgcmVhZGVycywgYW5kIGJlY2F1c2Ugd2hlbiB3ZSBhcmUg Y2FsbGVkCj4gPiAtCSAqIGZyb20gdmJsYW5rIGlycSB3ZSBjYW4ndCBob2xkIHRoZSB2YmxfbG9j ayB0byBwcm90ZWN0IHVzIGZyb20gc3VkZGVuCj4gPiAtCSAqIGJ1bXBzIGluIHZibGFuayByZWZj b3VudC4gVGhlcmVmb3JlIGFsc28gcmVzdHJpY3QgYnVtcHMgdG8gKzEgd2hlbgo+ID4gLQkgKiBj YWxsZWQgZnJvbSB2YmxhbmsgaXJxLgo+ID4gLQkgKi8KPiA+IC0JaWYgKChkaWZmID4gMSkgJiYg KGF0b21pY19yZWFkKCZ2YmxhbmstPnJlZmNvdW50KSA+IDEgfHwKPiA+IC0JICAgIChmbGFncyAm IERSTV9DQUxMRURfRlJPTV9WQkxJUlEpKSkgewo+ID4gLQkJRFJNX0RFQlVHX1ZCTCgiY2xhbXBp bmcgdmJsYW5rIGJ1bXAgdG8gMSBvbiBjcnRjICV1OiBkaWZmcj0ldSAiCj4gPiAtCQkJICAgICAg InJlZmNvdW50ICV1LCB2YmxpcnEgJXVcbiIsIHBpcGUsIGRpZmYsCj4gPiAtCQkJICAgICAgYXRv bWljX3JlYWQoJnZibGFuay0+cmVmY291bnQpLAo+ID4gLQkJCSAgICAgIChmbGFncyAmIERSTV9D QUxMRURfRlJPTV9WQkxJUlEpICE9IDApOwo+ID4gLQkJZGlmZiA9IDE7Cj4gPiAtCX0KPiA+IC0K PiA+ICAJRFJNX0RFQlVHX1ZCTCgidXBkYXRpbmcgdmJsYW5rIGNvdW50IG9uIGNydGMgJXU6Igo+ ID4gIAkJICAgICAgIiBjdXJyZW50PSV1LCBkaWZmPSV1LCBodz0ldSBod19sYXN0PSV1XG4iLAo+ ID4gIAkJICAgICAgcGlwZSwgdmJsYW5rLT5jb3VudCwgZGlmZiwgY3VyX3ZibGFuaywgdmJsYW5r LT5sYXN0KTsKPiA+IEBAIC00MjAsNiArMzU5LDcgQEAgaW50IGRybV92YmxhbmtfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgbnVtX2NydGNzKQo+ID4gIAkJaW5pdF93 YWl0cXVldWVfaGVhZCgmdmJsYW5rLT5xdWV1ZSk7Cj4gPiAgCQlzZXR1cF90aW1lcigmdmJsYW5r LT5kaXNhYmxlX3RpbWVyLCB2YmxhbmtfZGlzYWJsZV9mbiwKPiA+ICAJCQkgICAgKHVuc2lnbmVk IGxvbmcpdmJsYW5rKTsKPiA+ICsJCXNlcWxvY2tfaW5pdCgmdmJsYW5rLT5zZXFsb2NrKTsKPiA+ ICAJfQo+ID4gIAo+ID4gIAlEUk1fSU5GTygiU3VwcG9ydHMgdmJsYW5rIHRpbWVzdGFtcCBjYWNo aW5nIFJldiAyICgyMS4xMC4yMDEzKS5cbiIpOwo+ID4gQEAgLTk5MSwyNSArOTMxLDE5IEBAIHUz MiBkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2ln bmVkIGludCBwaXBlLAo+ID4gIAkJCSAgICAgIHN0cnVjdCB0aW1ldmFsICp2Ymxhbmt0aW1lKQo+ ID4gIHsKPiA+ICAJc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJsYW5r W3BpcGVdOwo+ID4gLQlpbnQgY291bnQgPSBEUk1fVElNRVNUQU1QX01BWFJFVFJJRVM7Cj4gPiAt CXUzMiBjdXJfdmJsYW5rOwo+ID4gKwl1MzIgdmJsYW5rX2NvdW50Owo+ID4gKwl1bnNpZ25lZCBp bnQgc2VxOwo+ID4gIAo+ID4gIAlpZiAoV0FSTl9PTihwaXBlID49IGRldi0+bnVtX2NydGNzKSkK PiA+ICAJCXJldHVybiAwOwo+ID4gIAo+ID4gLQkvKgo+ID4gLQkgKiBWYmxhbmsgdGltZXN0YW1w cyBhcmUgcmVhZCBsb2NrbGVzcy4gVG8gZW5zdXJlIGNvbnNpc3RlbmN5IHRoZSB2YmxhbmsKPiA+ IC0JICogY291bnRlciBpcyByZWNoZWNrZWQgYW5kIG9yZGVyaW5nIGlzIGVuc3VyZWQgdXNpbmcg bWVtb3J5IGJhcnJpZXJzLgo+ID4gLQkgKiBUaGlzIHdvcmtzIGxpa2UgYSBzZXFsb2NrLiBUaGUg d3JpdGUtc2lkZSBiYXJyaWVycyBhcmUgaW4gc3RvcmVfdmJsYW5rLgo+ID4gLQkgKi8KPiA+ICAJ ZG8gewo+ID4gLQkJY3VyX3ZibGFuayA9IHZibGFuay0+Y291bnQ7Cj4gPiAtCQlzbXBfcm1iKCk7 Cj4gPiAtCQkqdmJsYW5rdGltZSA9IHZibGFua3RpbWVzdGFtcChkZXYsIHBpcGUsIGN1cl92Ymxh bmspOwo+ID4gLQkJc21wX3JtYigpOwo+ID4gLQl9IHdoaWxlIChjdXJfdmJsYW5rICE9IHZibGFu ay0+Y291bnQgJiYgLS1jb3VudCA+IDApOwo+ID4gKwkJc2VxID0gcmVhZF9zZXFiZWdpbigmdmJs YW5rLT5zZXFsb2NrKTsKPiA+ICsJCXZibGFua19jb3VudCA9IHZibGFuay0+Y291bnQ7Cj4gPiAr CQkqdmJsYW5rdGltZSA9IHZibGFuay0+dGltZTsKPiA+ICsJfSB3aGlsZSAocmVhZF9zZXFyZXRy eSgmdmJsYW5rLT5zZXFsb2NrLCBzZXEpKTsKPiA+ICAKPiA+IC0JcmV0dXJuIGN1cl92Ymxhbms7 Cj4gPiArCXJldHVybiB2YmxhbmtfY291bnQ7Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0woZHJt X3ZibGFua19jb3VudF9hbmRfdGltZSk7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCj4gPiBpbmRleCAzNjBiMmE3Li45ZjMzMDkw IDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCj4gPiArKysgYi9pbmNsdWRlL2Ry bS9kcm1QLmgKPiA+IEBAIC01Miw2ICs1Miw3IEBACj4gPiAgI2luY2x1ZGUgPGxpbnV4L3BvbGwu aD4KPiA+ICAjaW5jbHVkZSA8bGludXgvcmF0ZWxpbWl0Lmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4 L3NjaGVkLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L3NlcWxvY2suaD4KPiA+ICAjaW5jbHVkZSA8 bGludXgvc2xhYi5oPgo+ID4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ID4gICNpbmNsdWRl IDxsaW51eC92bWFsbG9jLmg+Cj4gPiBAQCAtMzkyLDExICszOTMsNiBAQCBzdHJ1Y3QgZHJtX21h c3RlciB7Cj4gPiAgCXZvaWQgKmRyaXZlcl9wcml2Owo+ID4gIH07Cj4gPiAgCj4gPiAtLyogU2l6 ZSBvZiByaW5nYnVmZmVyIGZvciB2YmxhbmsgdGltZXN0YW1wcy4gSnVzdCBkb3VibGUtYnVmZmVy Cj4gPiAtICogaW4gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4KPiA+IC0gKi8KPiA+IC0jZGVmaW5l IERSTV9WQkxBTktUSU1FX1JCU0laRSAyCj4gPiAtCj4gPiAgLyogRmxhZ3MgYW5kIHJldHVybiBj b2RlcyBmb3IgZ2V0X3ZibGFua190aW1lc3RhbXAoKSBkcml2ZXIgZnVuY3Rpb24uICovCj4gPiAg I2RlZmluZSBEUk1fQ0FMTEVEX0ZST01fVkJMSVJRIDEKPiA+ICAjZGVmaW5lIERSTV9WQkxBTktU SU1FX1NDQU5PVVRQT1NfTUVUSE9EICgxIDw8IDApCj4gPiBAQCAtNzI1LDEwICs3MjEsMTAgQEAg c3RydWN0IGRybV92YmxhbmtfY3J0YyB7Cj4gPiAgCXdhaXRfcXVldWVfaGVhZF90IHF1ZXVlOwkv Kio8IFZCTEFOSyB3YWl0IHF1ZXVlICovCj4gPiAgCXN0cnVjdCB0aW1lcl9saXN0IGRpc2FibGVf dGltZXI7CQkvKiBkZWxheWVkIGRpc2FibGUgdGltZXIgKi8KPiA+ICAKPiA+IC0JLyogdmJsYW5r IGNvdW50ZXIsIHByb3RlY3RlZCBieSBkZXYtPnZibGFua190aW1lX2xvY2sgZm9yIHdyaXRlcyAq Lwo+ID4gLQl1MzIgY291bnQ7Cj4gPiAtCS8qIHZibGFuayB0aW1lc3RhbXBzLCBwcm90ZWN0ZWQg YnkgZGV2LT52YmxhbmtfdGltZV9sb2NrIGZvciB3cml0ZXMgKi8KPiA+IC0Jc3RydWN0IHRpbWV2 YWwgdGltZVtEUk1fVkJMQU5LVElNRV9SQlNJWkVdOwo+ID4gKwlzZXFsb2NrX3Qgc2VxbG9jazsJ CS8qIHByb3RlY3RzIHZibGFuayBjb3VudCBhbmQgdGltZSAqLwo+ID4gKwo+ID4gKwl1MzIgY291 bnQ7CQkJLyogdmJsYW5rIGNvdW50ZXIgKi8KPiA+ICsJc3RydWN0IHRpbWV2YWwgdGltZTsJCS8q IHZibGFuayB0aW1lc3RhbXAgKi8KPiA+ICAKPiA+ICAJYXRvbWljX3QgcmVmY291bnQ7CQkvKiBu dW1iZXIgb2YgdXNlcnMgb2YgdmJsYW5rIGludGVycnVwdHNwZXIgY3J0YyAqLwo+ID4gIAl1MzIg bGFzdDsJCQkvKiBwcm90ZWN0ZWQgYnkgZGV2LT52YmxfbG9jaywgdXNlZCAqLwo+ID4gLS0gCj4g PiAyLjQuMTEKPiAKPiAtLSAKPiBWaWxsZSBTeXJqw6Rsw6QKPiBJbnRlbCBPVEMKCi0tIApEYW5p ZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxv Zy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK