From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 15/15] drm/i915/guc: Split hw submission for replay after GPU reset Date: Mon, 28 Nov 2016 17:20:01 +0200 Message-ID: <87y403tyvy.fsf@gaia.fi.intel.com> References: <20161125093057.18491-1-chris@chris-wilson.co.uk> <20161125093057.18491-16-chris@chris-wilson.co.uk> <6e853f97-2596-b2b3-3e36-ff13fbb58d75@linux.intel.com> <20161128141932.GE17384@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3CD6D6E3E0 for ; Mon, 28 Nov 2016 15:20:09 +0000 (UTC) In-Reply-To: <20161128141932.GE17384@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Tvrtko Ursulin Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gT24gTW9u LCBOb3YgMjgsIDIwMTYgYXQgMDI6MDI6MzNQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6 Cj4+IAo+PiBPbiAyNS8xMS8yMDE2IDA5OjMwLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4+ID5Tb21l dGhpbmcgSSBtaXNzZWQgYmVmb3JlIHNlbmRpbmcgb2ZmIHRoZSBwYXJ0aWFsIHNlcmllcyB3YXMg dGhhdCB0aGUKPj4gPm5vbi1zY2hlZHVsZXIgZ3VjIHJlc2V0IHBhdGggd2FzIGJyb2tlbiAoaW4g dGhlIGZ1bGwgc2VyaWVzLCB0aGlzIGlzCj4+ID5wdXNoZWQgdG8gdGhlIGV4ZWNsaXN0cyByZXNl dCBoYW5kbGVyKS4gVGhlIGlzc3VlIGlzIHRoYXQgYWZ0ZXIgYSByZXNldCwKPj4gPndlIGhhdmUg dG8gcmVmaWxsIHRoZSBHdUMgd29ya3F1ZXVlcywgd2hpY2ggd2UgZG8gYnkgcmVzdWJtaXR0aW5n IHRoZQo+PiA+cmVxdWVzdHMuIEhvd2V2ZXIsIGlmIHdlIGFscmVhZHkgaGF2ZSBzdWJtaXR0ZWQg dGhlbSwgdGhlIGZlbmNlcyB3aXRoaW4KPj4gPnRoZW0gaGF2ZSBhbHJlYWR5IGJlZW4gdXNlZCBh bmQgdHJpZ2dlcmluZyB0aGVtIGFnYWluIGlzIGFuIGVycm9yLgo+PiA+SW5zdGVhZCwganVzdCBy ZXBvcHVsYXRlIHRoZSBndWMgd29ya3F1ZXVlLgo+PiA+Cj4+ID5bICAxMTUuODU4NTYwXSBbSUdU XSBnZW1fYnVzeTogc3RhcnRpbmcgc3VidGVzdCBoYW5nLXJlbmRlcgo+PiA+WyAgMTM1LjgzOTg2 N10gW2RybV0gR1BVIEhBTkc6IGVjb2RlIDk6MDoweGU3NTdmZWZlLCBpbiBnZW1fYnVzeSBbMTcx Nl0sIHJlYXNvbjogSGFuZyBvbiByZW5kZXIgcmluZywgYWN0aW9uOiByZXNldAo+PiA+WyAgMTM1 LjgzOTkwMl0gZHJtL2k5MTU6IFJlc2V0dGluZyBjaGlwIGFmdGVyIGdwdSBoYW5nCj4+ID5bICAx MzUuODM5OTU3XSBbZHJtXSBSQzYgb24KPj4gPlsgIDEzNS44NTgzNTFdIC0tLS0tLS0tLS0tLVsg Y3V0IGhlcmUgXS0tLS0tLS0tLS0tLQo+PiA+WyAgMTM1Ljg1ODM1N10gV0FSTklORzogQ1BVOiAy IFBJRDogNDUgYXQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zd19mZW5jZS5jOjEwOCBpOTE1 X3N3X2ZlbmNlX2NvbXBsZXRlKzB4MjUvMHgzMAo+PiA+WyAgMTM1Ljg1ODM1N10gTW9kdWxlcyBs aW5rZWQgaW46IHJmY29tbSBibmVwIGJpbmZtdF9taXNjIG5sc19pc284ODU5XzEgaW5wdXRfbGVk cyBzbmRfaGRhX2NvZGVjX2hkbWkgc25kX2hkYV9jb2RlY19yZWFsdGVrIHNuZF9oZGFfY29kZWNf Z2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMgc25kX2hkYV9jb3JlIGJ0dXNiIGJ0 cnRsIHNuZF9od2RlcCBzbmRfcGNtIDgyNTBfZHcgc25kX3NlcV9taWRpIGhpZF9sZW5vdm8gc25k X3NlcV9taWRpX2V2ZW50IHNuZF9yYXdtaWRpIGl3bHdpZmkgeDg2X3BrZ190ZW1wX3RoZXJtYWwg Y29yZXRlbXAgc25kX3NlcSBjcmN0MTBkaWZfcGNsbXVsIHNuZF9zZXFfZGV2aWNlIGhjaV91YXJ0 IHNuZF90aW1lciBjcmMzMl9wY2xtdWwgZ2hhc2hfY2xtdWxuaV9pbnRlbCBpZG1hNjQgYWVzbmlf aW50ZWwgdmlydF9kbWEgYnRiY20gc25kIGJ0cWNhIGFlc194ODZfNjQgYnRpbnRlbCBscncgY2Zn ODAyMTEgYmx1ZXRvb3RoIGdmMTI4bXVsIGdsdWVfaGVscGVyIGFibGtfaGVscGVyIGNyeXB0ZCBz b3VuZGNvcmUgaW50ZWxfbHBzc19wY2kgaW50ZWxfcGNoX3RoZXJtYWwgaW50ZWxfbHBzc19hY3Bp IGludGVsX2xwc3MgYWNwaV9hbHMgbWZkX2NvcmUga2ZpZm9fYnVmIGFjcGlfcGFkIGluZHVzdHJp YWxpbyBhdXRvZnM0IGhpZF9wbGFudHJvbmljcyB1c2JoaWQgZG1fbWlycm9yIGRtX3JlZ2lvbl9o YXNoIGRtX2xvZyBzZGhjaV9wY2kgYWhjaSBzZGhjaSBsaWJhaGNpIGkyY19oaWQgaGlkCj4+ID5b ICAxMzUuODU4Mzg5XSBDUFU6IDIgUElEOiA0NSBDb21tOiBrd29ya2VyLzI6MSBUYWludGVkOiBH ICAgICAgICBXICAgICAgIDQuOS4wLXJjNCsgIzIzOAo+PiA+WyAgMTM1Ljg1ODM4OV0gSGFyZHdh cmUgbmFtZTogICAgICAgICAgICAgICAgICAvTlVDNmkzU1lCLCBCSU9TIFNZU0tMaTM1Ljg2QS4w MDI0LjIwMTUuMTAyNy4yMTQyIDEwLzI3LzIwMTUKPj4gPlsgIDEzNS44NTgzOTJdIFdvcmtxdWV1 ZTogZXZlbnRzX2xvbmcgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZAo+PiA+WyAgMTM1Ljg1ODM5NF0g IGZmZmZjOTAwMDAxYmY5YjggZmZmZmZmZmY4MTJiYjIzOCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAw MDAwMDAwMDAwMDAKPj4gPlsgIDEzNS44NTgzOTZdICBmZmZmYzkwMDAwMWJmOWY4IGZmZmZmZmZm ODEwNGY2MjEgMDAwMDAwNmMwMDAwMDAwMCBmZmZmODgwODI5NjEzN2Y4Cj4+ID5bICAxMzUuODU4 Mzk4XSAgMDAwMDAwMDAwMDAwMGEwMCBmZmZmODgwODQ1N2EwMDAwIGZmZmY4ODA4NDU3NjRlNjAg ZmZmZjg4MDg0NTc2MDAwMAo+PiA+WyAgMTM1Ljg1ODM5OV0gQ2FsbCBUcmFjZToKPj4gPlsgIDEz NS44NTg0MDNdICBbPGZmZmZmZmZmODEyYmIyMzg+XSBkdW1wX3N0YWNrKzB4NGQvMHg2NQo+PiA+ WyAgMTM1Ljg1ODQwNV0gIFs8ZmZmZmZmZmY4MTA0ZjYyMT5dIF9fd2FybisweGMxLzB4ZTAKPj4g PlsgIDEzNS44NTg0MDZdICBbPGZmZmZmZmZmODEwNGY3NDg+XSB3YXJuX3Nsb3dwYXRoX251bGwr MHgxOC8weDIwCj4+ID5bICAxMzUuODU4NDA4XSAgWzxmZmZmZmZmZjgxM2Y4YzE1Pl0gaTkxNV9z d19mZW5jZV9jb21wbGV0ZSsweDI1LzB4MzAKPj4gPlsgIDEzNS44NTg0MTBdICBbPGZmZmZmZmZm ODEzZjhmYWQ+XSBpOTE1X3N3X2ZlbmNlX2NvbW1pdCsweGQvMHgzMAo+PiA+WyAgMTM1Ljg1ODQx Ml0gIFs8ZmZmZmZmZmY4MTQyZTU5MT5dIF9faTkxNV9nZW1fcmVxdWVzdF9zdWJtaXQrMHhlMS8w eGYwCj4+ID5bICAxMzUuODU4NDEzXSAgWzxmZmZmZmZmZjgxNDJlNWM4Pl0gaTkxNV9nZW1fcmVx dWVzdF9zdWJtaXQrMHgyOC8weDQwCj4+ID5bICAxMzUuODU4NDE1XSAgWzxmZmZmZmZmZjgxNDQz M2U3Pl0gaTkxNV9ndWNfc3VibWl0KzB4NDcvMHgyMTAKPj4gPlsgIDEzNS44NTg0MTddICBbPGZm ZmZmZmZmODE0NDNlOTg+XSBpOTE1X2d1Y19zdWJtaXNzaW9uX2VuYWJsZSsweDQ2OC8weDU0MAo+ PiA+WyAgMTM1Ljg1ODQxOV0gIFs8ZmZmZmZmZmY4MTQ0MjQ5NT5dIGludGVsX2d1Y19zZXR1cCsw eDcxNS8weDgxMAo+PiA+WyAgMTM1Ljg1ODQyMV0gIFs8ZmZmZmZmZmY4MTQyYjZiND5dIGk5MTVf Z2VtX2luaXRfaHcrMHgxMTQvMHgyYTAKPj4gPlsgIDEzNS44NTg0MjNdICBbPGZmZmZmZmZmODEz ZWVhYTg+XSBpOTE1X3Jlc2V0KzB4ZTgvMHgxMjAKPj4gPlsgIDEzNS44NTg0MjRdICBbPGZmZmZm ZmZmODEzZjM5Mzc+XSBpOTE1X3Jlc2V0X2FuZF93YWtldXArMHgxNTcvMHgxODAKPj4gPlsgIDEz NS44NTg0MjZdICBbPGZmZmZmZmZmODEzZjc5ZGI+XSBpOTE1X2hhbmRsZV9lcnJvcisweDFhYi8w eDIzMAo+PiA+WyAgMTM1Ljg1ODQyOF0gIFs8ZmZmZmZmZmY4MTJjNzYwZD5dID8gc2NucHJpbnRm KzB4NGQvMHg5MAo+PiA+WyAgMTM1Ljg1ODQzMF0gIFs8ZmZmZmZmZmY4MTQzNTk4NT5dIGk5MTVf aGFuZ2NoZWNrX2VsYXBzZWQrMHgyNzUvMHgzZDAKPj4gPlsgIDEzNS44NTg0MzJdICBbPGZmZmZm ZmZmODEwNjY4Y2Y+XSBwcm9jZXNzX29uZV93b3JrKzB4MTJmLzB4NDEwCj4+ID5bICAxMzUuODU4 NDMzXSAgWzxmZmZmZmZmZjgxMDY2YmYzPl0gd29ya2VyX3RocmVhZCsweDQzLzB4NGQwCj4+ID5b ICAxMzUuODU4NDM1XSAgWzxmZmZmZmZmZjgxMDY2YmIwPl0gPyBwcm9jZXNzX29uZV93b3JrKzB4 NDEwLzB4NDEwCj4+ID5bICAxMzUuODU4NDM2XSAgWzxmZmZmZmZmZjgxMDY2YmIwPl0gPyBwcm9j ZXNzX29uZV93b3JrKzB4NDEwLzB4NDEwCj4+ID5bICAxMzUuODU4NDM4XSAgWzxmZmZmZmZmZjgx MDZiYmI0Pl0ga3RocmVhZCsweGQ0LzB4ZjAKPj4gPlsgIDEzNS44NTg0NDBdICBbPGZmZmZmZmZm ODEwNmJhZTA+XSA/IGt0aHJlYWRfcGFyaysweDYwLzB4NjAKPj4gPgo+PiA+djI6IE9ubHkgcmVz dWJtaXQgc3VibWl0dGVkIHJlcXVlc3RzCj4+ID52MzogRG9uJ3QgZm9yZ2V0IHRoZSBwZW5kaW5n IHJlcXVlc3RzIGhhdmUgcmVzZXJ2ZWQgc3BhY2UuCj4+ID4KPj4gPkZpeGVzOiBkNTVhYzViZjk3 YzYgKCJkcm0vaTkxNTogRGVmZXIgdHJhbnNmZXIgb250byBleGVjdXRpb24gdGltZWxpbmUgdG8g YWN0dWFsIGh3IHN1Ym1pc3Npb24iKQo+PiA+U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+ID5DYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KPj4gPi0tLQo+PiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3VjX3N1Ym1pc3Npb24uYyB8IDM3ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+PiA+ IDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKPj4gPgo+ PiA+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+PiA+aW5kZXgg MDBiNWZhODcxNjQ0Li5lMTJmZjg4MWQzOGQgMTAwNjQ0Cj4+ID4tLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPj4gPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+PiA+QEAgLTYwMiwxMiArNjAyLDkgQEAgc3RhdGlj IGludCBndWNfcmluZ19kb29yYmVsbChzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpnYykKPj4gPiB9 Cj4+ID4KPj4gPiAvKioKPj4gPi0gKiBpOTE1X2d1Y19zdWJtaXQoKSAtIFN1Ym1pdCBjb21tYW5k cyB0aHJvdWdoIEd1Qwo+PiA+KyAqIF9faTkxNV9ndWNfc3VibWl0KCkgLSBTdWJtaXQgY29tbWFu ZHMgdGhyb3VnaCBHdUMKPj4gPiAgKiBAcnE6CQlyZXF1ZXN0IGFzc29jaWF0ZWQgd2l0aCB0aGUg Y29tbWFuZHMKPj4gPiAgKgo+PiA+LSAqIFJldHVybjoJMCBvbiBzdWNjZXNzLCBvdGhlcndpc2Ug YW4gZXJybm8uCj4+ID4tICogCQkoTm90ZTogbm9uemVybyByZWFsbHkgc2hvdWxkbid0IGhhcHBl biEpCj4+ID4tICoKPj4gPiAgKiBUaGUgY2FsbGVyIG11c3QgaGF2ZSBhbHJlYWR5IGNhbGxlZCBp OTE1X2d1Y193cV9yZXNlcnZlKCkgYWJvdmUgd2l0aAo+PiA+ICAqIGEgcmVzdWx0IG9mIDAgKHN1 Y2Nlc3MpLCBndWFyYW50ZWVpbmcgdGhhdCB0aGVyZSBpcyBzcGFjZSBpbiB0aGUgd29yawo+PiA+ ICAqIHF1ZXVlIGZvciB0aGUgbmV3IHJlcXVlc3QsIHNvIGVucXVldWluZyB0aGUgaXRlbSBjYW5u b3QgZmFpbC4KPj4gPkBAIC02MTksNyArNjE2LDcgQEAgc3RhdGljIGludCBndWNfcmluZ19kb29y YmVsbChzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpnYykKPj4gPiAgKiBUaGUgb25seSBlcnJvciBo ZXJlIGFyaXNlcyBpZiB0aGUgZG9vcmJlbGwgaGFyZHdhcmUgaXNuJ3QgZnVuY3Rpb25pbmcKPj4g PiAgKiBhcyBleHBlY3RlZCwgd2hpY2ggcmVhbGx5IHNob3Vsbid0IGhhcHBlbi4KPj4gPiAgKi8K Pj4gPi1zdGF0aWMgdm9pZCBpOTE1X2d1Y19zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpycSkKPj4gPitzdGF0aWMgdm9pZCBfX2k5MTVfZ3VjX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJxKQo+PiA+IHsKPj4gPiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gcnEtPmk5MTU7Cj4+ID4gCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9IHJxLT5lbmdpbmU7Cj4+ID5AQCAtNjI4LDE3ICs2MjUsNiBAQCBzdGF0aWMgdm9pZCBpOTE1 X2d1Y19zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPj4gPiAJc3RydWN0 IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKPj4gPiAJaW50 IGJfcmV0Owo+PiA+Cj4+ID4tCS8qIFdlIGtlZXAgdGhlIHByZXZpb3VzIGNvbnRleHQgYWxpdmUg dW50aWwgd2UgcmV0aXJlIHRoZSBmb2xsb3dpbmcKPj4gPi0JICogcmVxdWVzdC4gVGhpcyBlbnN1 cmVzIHRoYXQgYW55IHRoZSBjb250ZXh0IG9iamVjdCBpcyBzdGlsbCBwaW5uZWQKPj4gPi0JICog Zm9yIGFueSByZXNpZHVhbCB3cml0ZXMgdGhlIEhXIG1ha2VzIGludG8gaXQgb24gdGhlIGNvbnRl eHQgc3dpdGNoCj4+ID4tCSAqIGludG8gdGhlIG5leHQgb2JqZWN0IGZvbGxvd2luZyB0aGUgYnJl YWRjcnVtYi4gT3RoZXJ3aXNlLCB3ZSBtYXkKPj4gPi0JICogcmV0aXJlIHRoZSBjb250ZXh0IHRv byBlYXJseS4KPj4gPi0JICovCj4+ID4tCXJxLT5wcmV2aW91c19jb250ZXh0ID0gZW5naW5lLT5s YXN0X2NvbnRleHQ7Cj4+ID4tCWVuZ2luZS0+bGFzdF9jb250ZXh0ID0gcnEtPmN0eDsKPj4gPi0K Pj4gPi0JaTkxNV9nZW1fcmVxdWVzdF9zdWJtaXQocnEpOwo+PiA+LQo+PiA+IAlzcGluX2xvY2so JmNsaWVudC0+d3FfbG9jayk7Cj4+ID4gCWd1Y193cV9pdGVtX2FwcGVuZChjbGllbnQsIHJxKTsK Pj4gPgo+PiA+QEAgLTY1OCw2ICs2NDQsMjMgQEAgc3RhdGljIHZvaWQgaTkxNV9ndWNfc3VibWl0 KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4+ID4gCXNwaW5fdW5sb2NrKCZjbGll bnQtPndxX2xvY2spOwo+PiA+IH0KPj4gPgo+PiA+K3N0YXRpYyB2b2lkIGk5MTVfZ3VjX3N1Ym1p dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+PiA+K3sKPj4gPisJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcnEtPmVuZ2luZTsKPj4gPisKPj4gPisJLyogV2Uga2Vl cCB0aGUgcHJldmlvdXMgY29udGV4dCBhbGl2ZSB1bnRpbCB3ZSByZXRpcmUgdGhlIGZvbGxvd2lu Zwo+PiA+KwkgKiByZXF1ZXN0LiBUaGlzIGVuc3VyZXMgdGhhdCBhbnkgdGhlIGNvbnRleHQgb2Jq ZWN0IGlzIHN0aWxsIHBpbm5lZAo+PiA+KwkgKiBmb3IgYW55IHJlc2lkdWFsIHdyaXRlcyB0aGUg SFcgbWFrZXMgaW50byBpdCBvbiB0aGUgY29udGV4dCBzd2l0Y2gKPj4gPisJICogaW50byB0aGUg bmV4dCBvYmplY3QgZm9sbG93aW5nIHRoZSBicmVhZGNydW1iLiBPdGhlcndpc2UsIHdlIG1heQo+ PiA+KwkgKiByZXRpcmUgdGhlIGNvbnRleHQgdG9vIGVhcmx5Lgo+PiA+KwkgKi8KPj4gPisJcnEt PnByZXZpb3VzX2NvbnRleHQgPSBlbmdpbmUtPmxhc3RfY29udGV4dDsKPj4gPisJZW5naW5lLT5s YXN0X2NvbnRleHQgPSBycS0+Y3R4Owo+PiA+Kwo+PiA+KwlpOTE1X2dlbV9yZXF1ZXN0X3N1Ym1p dChycSk7Cj4+ID4rCV9faTkxNV9ndWNfc3VibWl0KHJxKTsKPj4gPit9Cj4+ID4rCj4+ID4gLyoK Pj4gPiAgKiBFdmVyeXRoaW5nIGJlbG93IGhlcmUgaXMgY29uY2VybmVkIHdpdGggc2V0dXAgJiB0 ZWFyZG93biwgYW5kIGlzCj4+ID4gICogdGhlcmVmb3JlIG5vdCBwYXJ0IG9mIHRoZSBzb21ld2hh dCB0aW1lLWNyaXRpY2FsIGJhdGNoLXN1Ym1pc3Npb24KPj4gPkBAIC0xNTU2LDcgKzE1NTksNyBA QCBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+PiA+IAkJLyogUmVwbGF5IHRoZSBjdXJyZW50IHNldCBvZiBwcmV2aW91c2x5 IHN1Ym1pdHRlZCByZXF1ZXN0cyAqLwo+PiA+IAkJbGlzdF9mb3JfZWFjaF9lbnRyeShycSwgJmVu Z2luZS0+dGltZWxpbmUtPnJlcXVlc3RzLCBsaW5rKSB7Cj4+ID4gCQkJY2xpZW50LT53cV9yc3Zk ICs9IHNpemVvZihzdHJ1Y3QgZ3VjX3dxX2l0ZW0pOwo+PiA+LQkJCWk5MTVfZ3VjX3N1Ym1pdChy cSk7Cj4+ID4rCQkJX19pOTE1X2d1Y19zdWJtaXQocnEpOwo+PiA+IAkJfQo+PiA+IAl9Cj4+ID4K Pj4gPgo+PiAKPj4gVGhlIG9ubHkgdGhpbmcgYm90aGVyaW5nIG1lIGhlcmUgaXMgaG93IHRoaXMg aW50ZXJhY3RzIHdpdGggdGhlCj4+IGNvbW1vbiwgb3IgImV4ZWNsaXN0IiBwYXJ0IG9mIHRoZSBy ZXNldC4KPgo+IEFsc28gYXBwbGllcyB0byByaW5nYnVmZmVyIChzb21lIHBhcnRzIGF0IGxlYXN0 KS4KPiAgCj4+IENvcHlpbmcgTWlrYSBpbiBob3BlIGhlIGNhbiBoZWxwIGhlcmUuIDopCj4+IAo+ PiBJIHNlZSB0aGF0IGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZSBydW5zIGJlZm9yZSB0aGlzIEd1QyB3 cSByZWZpbGwgYW5kCj4+IGRvZXMgc29tZSBtYWdpYyB3aXRoIHRoZSByZXF1ZXN0cyBvbiB0aGUg ZW5naW5lLT50aW1lbGluZS0+cmVxdWVzdHMKPj4gbGlzdHMuCj4+IAo+PiBXb3VsZCBpdCBiZSBw b3NzaWJsZSB0byBzb21laG93IGJldHRlciBpbnRlZ3JhdGUgdGhlIHR3byB0aGluZ3M/Cj4KPiBJ IHRob3VnaHQgdGhleSB3ZXJlIG5pY2VseSBzZXBhcmF0ZWQuIFRoZSBjb21tb24gd29yayB0byBk aXNhYmxlIHRoZQo+IGd1aWx0eSBjb250ZXh0IGlzIGhhbmRsZWQgYnkgdGhlIGNvcmUgcmVzZXQg ZnVuY3Rpb24uIFRoZSBzcGVjaWZpYyB3b3JrCj4gcmVxdWlyZWQgdG8gcmVzdGFydCBhbmQgcmVw bGF5IHRoZSByZXF1ZXN0cyBoYW5kbGVkIGJ5IHRoZSBkaWZmZXJlbnQKPiBiYWNrZW5kcy4KPgo+ IGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZTogaXMgZm9yIGRpc2FibGluZyB0aGUgZ3VpbHR5IGNvbnRl eHQKPiBlbmdpbmUtPnJlc2V0OiB1cGRhdGVzIHRoZSBjb250ZXh0IC8gcmluZyBmb3IgcmVzdGFy dGluZyBwYXN0IGEgaHVuZwo+IGJhdGNoIChpZiByZXF1aXJlZCkKPiBlbmdpbmUtPmluaXQ6IHN0 YXJ0cyB0aGUgZW5naW5lLCBwcm9jZXNzaW5nIHRoZSBwZW5kaW5nIHJlcXVlc3RzIGlmIGFueQo+ Cj4gZW5naW5lLT5yZXNldCBpcyBhIGJhZCBuYW1lLCBzaW5jZSB3ZSBoYXZlIHBlci1lbmdpbmUg cmVzZXRzIGFzIHdlbGwsCj4gYnV0IEkgaGF2ZW4ndCBhIGJldHRlciB2ZXJiIHlldCBmb3IgaGFu ZGxpbmcgdGhlIHJlcXVlc3QgYnVtcGluZyBhZnRlcgo+IGEKCkhvdyBhYm91dAplbmdpbmUtPnNl dHVwKHJlcXVlc3QgKikgdG8gcmVwbGFjZSAtPnJlc2V0IAoKYW5kIGVuZ2luZS0+c3RhcnQoKSB0 byByZXBsYWNlIC0+aW5pdCgpPwoKLU1pa2EKCj4gcmVzZXQuCj4gLUNocmlzCj4KPiAtLSAKPiBD aHJpcyBXaWxzb24sIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudHJlCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=