From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michal Wajdeczko" Subject: Re: [PATCH 2/3] drm/i915/guc: Optimized CTB writes and reads Date: Thu, 21 Nov 2019 12:58:50 +0100 Message-ID: References: <20191120235604.29047-1-John.C.Harrison@Intel.com> <20191120235604.29047-3-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed"; DelSp="yes" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 17D0E6EE1A for ; Thu, 21 Nov 2019 11:58:53 +0000 (UTC) In-Reply-To: <20191120235604.29047-3-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-GFX@lists.freedesktop.org, John.C.Harrison@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMSBOb3YgMjAxOSAwMDo1NjowMyArMDEwMCwgPEpvaG4uQy5IYXJyaXNvbkBpbnRl bC5jb20+IHdyb3RlOgoKPiBGcm9tOiBNYXR0aGV3IEJyb3N0IDxtYXR0aGV3LmJyb3N0QGludGVs LmNvbT4KPgo+IENUQiB3cml0ZXMgYXJlIG5vdyBpbiB0aGUgcGF0aCBvZiBjb21tYW5kIHN1Ym1p c3Npb24gYW5kIHNob3VsZCBiZQo+IG9wdGltaXplZCBmb3IgcGVyZm9ybWFuY2UuIFJhdGhlciB0 aGFuIHJlYWRpbmcgQ1RCIGRlc2NyaXB0b3IgdmFsdWVzCj4gKGUuZy4gaGVhZCwgdGFpbCwgc2l6 ZSkgd2hpY2ggY291bGQgcmVzdWx0IGluIGFjY2Vzc2VzIGFjcm9zcyB0aGUgUENJZQo+IGJ1cywg c3RvcmUgc2hhZG93IGxvY2FsIGNvcGllcyBhbmQgb25seSByZWFkL3dyaXRlIHRoZSBkZXNjcmlw dG9yCj4gdmFsdWVzIHdoZW4gYWJzb2x1dGVseSBuZWNlc3NhcnkuCj4KPiBDYzogSm9obiBIYXJy aXNvbiA8am9obi5jLmhhcnJpc29uQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3 IEJyb3N0IDxtYXR0aGV3LmJyb3N0QGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmMgfCA3OSArKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuaCB8ICA4ICsrKwo+ICAy IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jICAKPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jCj4gaW5kZXggZTUwZDk2 OGIxNWQ1Li40ZDhhNGM2YWZkNzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfZ3VjX2N0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfY3QuYwo+IEBAIC02OCwyMyArNjgsMjkgQEAgc3RhdGljIGlubGluZSBjb25zdCBj aGFyICAKPiAqZ3VjX2N0X2J1ZmZlcl90eXBlX3RvX3N0cih1MzIgdHlwZSkKPiAgCX0KPiAgfQo+ IC1zdGF0aWMgdm9pZCBndWNfY3RfYnVmZmVyX2Rlc2NfaW5pdChzdHJ1Y3QgZ3VjX2N0X2J1ZmZl cl9kZXNjICpkZXNjLAo+ICtzdGF0aWMgdm9pZCBndWNfY3RfYnVmZmVyX2Rlc2NfaW5pdChzdHJ1 Y3QgaW50ZWxfZ3VjX2N0X2J1ZmZlciAqY3RiLAo+ICAJCQkJICAgIHUzMiBjbWRzX2FkZHIsIHUz MiBzaXplLCB1MzIgb3duZXIpCgphcyBub3cgdGhpcyBmdW5jdGlvbiB0YWtlcyBjdGIgaW5zdGVh ZCBvZiBkZXNjLCBpdCBzaG91bGQgYmUgcmVuYW1lZApvciBtYWtlIGl0IHNlcGFyYXRlIGZyb20g Z3VjX2N0X2J1ZmZlcl9kZXNjX2luaXQKCj4gIHsKPiArCXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rl c2MgKmRlc2MgPSBjdGItPmRlc2M7Cj4gIAlDVF9ERUJVR19EUklWRVIoIkNUOiBkZXNjICVwIGlu aXQgYWRkcj0lI3ggc2l6ZT0ldSBvd25lcj0ldVxuIiwKPiAgCQkJZGVzYywgY21kc19hZGRyLCBz aXplLCBvd25lcik7Cj4gIAltZW1zZXQoZGVzYywgMCwgc2l6ZW9mKCpkZXNjKSk7Cj4gIAlkZXNj LT5hZGRyID0gY21kc19hZGRyOwo+IC0JZGVzYy0+c2l6ZSA9IHNpemU7Cj4gKwljdGItPnNpemUg PSBkZXNjLT5zaXplID0gc2l6ZTsKPiAgCWRlc2MtPm93bmVyID0gb3duZXI7Cj4gKwljdGItPnRh aWwgPSAwOwo+ICsJY3RiLT5oZWFkID0gMDsKPiArCWN0Yi0+c3BhY2UgPSBDSVJDX1NQQUNFKGN0 Yi0+dGFpbCwgY3RiLT5oZWFkLCBjdGItPnNpemUpOwo+ICB9Cj4gLXN0YXRpYyB2b2lkIGd1Y19j dF9idWZmZXJfZGVzY19yZXNldChzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjKQo+ICtz dGF0aWMgdm9pZCBndWNfY3RfYnVmZmVyX2Rlc2NfcmVzZXQoc3RydWN0IGludGVsX2d1Y19jdF9i dWZmZXIgKmN0YikKCnNhbWUgaGVyZQoKPiAgewo+ICsJc3RydWN0IGd1Y19jdF9idWZmZXJfZGVz YyAqZGVzYyA9IGN0Yi0+ZGVzYzsKPiAgCUNUX0RFQlVHX0RSSVZFUigiQ1Q6IGRlc2MgJXAgcmVz ZXQgaGVhZD0ldSB0YWlsPSV1XG4iLAo+ICAJCQlkZXNjLCBkZXNjLT5oZWFkLCBkZXNjLT50YWls KTsKPiAtCWRlc2MtPmhlYWQgPSAwOwo+IC0JZGVzYy0+dGFpbCA9IDA7Cj4gKwljdGItPmhlYWQg PSBkZXNjLT5oZWFkID0gMDsKPiArCWN0Yi0+dGFpbCA9IGRlc2MtPnRhaWwgPSAwOwo+ICsJY3Ri LT5zcGFjZSA9IENJUkNfU1BBQ0UoY3RiLT50YWlsLCBjdGItPmhlYWQsIGN0Yi0+c2l6ZSk7Cj4g IAlkZXNjLT5pc19pbl9lcnJvciA9IDA7Cj4gIH0KPiBAQCAtMjIwLDcgKzIyNiw3IEBAIHN0YXRp YyBpbnQgY3RjaF9lbmFibGUoc3RydWN0IGludGVsX2d1YyAqZ3VjLAo+ICAJICovCj4gIAlmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdGNoLT5jdGJzKTsgaSsrKSB7Cj4gIAkJR0VNX0JVR19P TigoaSAhPSBDVEJfU0VORCkgJiYgKGkgIT0gQ1RCX1JFQ1YpKTsKPiAtCQlndWNfY3RfYnVmZmVy X2Rlc2NfaW5pdChjdGNoLT5jdGJzW2ldLmRlc2MsCj4gKwkJZ3VjX2N0X2J1ZmZlcl9kZXNjX2lu aXQoJmN0Y2gtPmN0YnNbaV0sCj4gIAkJCQkJYmFzZSArIFBBR0VfU0laRS80ICogaSArIFBBR0Vf U0laRS8yLAo+ICAJCQkJCVBBR0VfU0laRS80LAo+ICAJCQkJCWN0Y2gtPm93bmVyKTsKPiBAQCAt MzAxLDMyICszMDcsMTYgQEAgc3RhdGljIGludCBjdGJfd3JpdGUoc3RydWN0IGludGVsX2d1Y19j dF9idWZmZXIgIAo+ICpjdGIsCj4gIAkJICAgICBib29sIHdhbnRfcmVzcG9uc2UpCj4gIHsKPiAg CXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MgPSBjdGItPmRlc2M7Cj4gLQl1MzIgaGVh ZCA9IGRlc2MtPmhlYWQgLyA0OwkvKiBpbiBkd29yZHMgKi8KPiAtCXUzMiB0YWlsID0gZGVzYy0+ dGFpbCAvIDQ7CS8qIGluIGR3b3JkcyAqLwo+IC0JdTMyIHNpemUgPSBkZXNjLT5zaXplIC8gNDsJ LyogaW4gZHdvcmRzICovCj4gLQl1MzIgdXNlZDsJCQkvKiBpbiBkd29yZHMgKi8KPiArCXUzMiB0 YWlsID0gY3RiLT50YWlsIC8gNDsJLyogaW4gZHdvcmRzICovCj4gKwl1MzIgc2l6ZSA9IGN0Yi0+ c2l6ZSAvIDQ7CS8qIGluIGR3b3JkcyAqLwo+ICAJdTMyIGhlYWRlcjsKPiAgCXUzMiAqY21kcyA9 IGN0Yi0+Y21kczsKPiAgCXVuc2lnbmVkIGludCBpOwo+IC0JR0VNX0JVR19PTihkZXNjLT5zaXpl ICUgNCk7Cj4gLQlHRU1fQlVHX09OKGRlc2MtPmhlYWQgJSA0KTsKPiAtCUdFTV9CVUdfT04oZGVz Yy0+dGFpbCAlIDQpOwo+ICsJR0VNX0JVR19PTihjdGItPnNpemUgJSA0KTsKPiArCUdFTV9CVUdf T04oY3RiLT50YWlsICUgNCk7Cj4gIAlHRU1fQlVHX09OKHRhaWwgPj0gc2l6ZSk7Cj4gLQkvKgo+ IC0JICogdGFpbCA9PSBoZWFkIGNvbmRpdGlvbiBpbmRpY2F0ZXMgZW1wdHkuIEd1QyBGVyBkb2Vz IG5vdCBzdXBwb3J0Cj4gLQkgKiB1c2luZyB1cCB0aGUgZW50aXJlIGJ1ZmZlciB0byBnZXQgdGFp bCA9PSBoZWFkIG1lYW5pbmcgZnVsbC4KPiAtCSAqLwo+IC0JaWYgKHRhaWwgPCBoZWFkKQo+IC0J CXVzZWQgPSAoc2l6ZSAtIGhlYWQpICsgdGFpbDsKPiAtCWVsc2UKPiAtCQl1c2VkID0gdGFpbCAt IGhlYWQ7Cj4gLQo+IC0JLyogbWFrZSBzdXJlIHRoZXJlIGlzIGEgc3BhY2UgaW5jbHVkaW5nIGV4 dHJhIGR3IGZvciB0aGUgZmVuY2UgKi8KPiAtCWlmICh1bmxpa2VseSh1c2VkICsgbGVuICsgMSA+ PSBzaXplKSkKPiAtCQlyZXR1cm4gLUVOT1NQQzsKPiAtCj4gIAkvKgo+ICAJICogV3JpdGUgdGhl IG1lc3NhZ2UuIFRoZSBmb3JtYXQgaXMgdGhlIGZvbGxvd2luZzoKPiAgCSAqIERXMDogaGVhZGVy IChpbmNsdWRpbmcgYWN0aW9uIGNvZGUpCj4gQEAgLTM1NCwxNSArMzQ0LDE2IEBAIHN0YXRpYyBp bnQgY3RiX3dyaXRlKHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICAKPiAqY3RiLAo+ICAJfQo+ IAkvKiBub3cgdXBkYXRlIGRlc2MgdGFpbCAoYmFjayBpbiBieXRlcykgKi8KPiAtCWRlc2MtPnRh aWwgPSB0YWlsICogNDsKPiAtCUdFTV9CVUdfT04oZGVzYy0+dGFpbCA+IGRlc2MtPnNpemUpOwo+ ICsJY3RiLT50YWlsID0gZGVzYy0+dGFpbCA9IHRhaWwgKiA0Owo+ICsJY3RiLT5zcGFjZSAtPSAo bGVuICsgMSkgKiA0Owo+ICsJR0VNX0JVR19PTihjdGItPnRhaWwgPiBjdGItPnNpemUpOwo+IAly ZXR1cm4gMDsKPiAgfQo+IC8qKgo+ICAgKiB3YWl0X2Zvcl9jdGJfZGVzY191cGRhdGUgLSBXYWl0 IGZvciB0aGUgQ1QgYnVmZmVyIGRlc2NyaXB0b3IgdXBkYXRlLgo+IC0gKiBAZGVzYzoJYnVmZmVy IGRlc2NyaXB0b3IKPiArICogQGN0YjoJY3RiIGJ1ZmZlcgo+ICAgKiBAZmVuY2U6CXJlc3BvbnNl IGZlbmNlCj4gICAqIEBzdGF0dXM6CXBsYWNlaG9sZGVyIGZvciBzdGF0dXMKPiAgICoKPiBAQCAt Mzc2LDExICszNjcsMTIgQEAgc3RhdGljIGludCBjdGJfd3JpdGUoc3RydWN0IGludGVsX2d1Y19j dF9idWZmZXIgIAo+ICpjdGIsCj4gICAqICoJLUVUSU1FRE9VVCBubyByZXNwb25zZSB3aXRoaW4g aGFyZGNvZGVkIHRpbWVvdXQKPiAgICogKgktRVBST1RPIG5vIHJlc3BvbnNlLCBDVCBidWZmZXIg aXMgaW4gZXJyb3IKPiAgICovCj4gLXN0YXRpYyBpbnQgd2FpdF9mb3JfY3RiX2Rlc2NfdXBkYXRl KHN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MsCj4gK3N0YXRpYyBpbnQgd2FpdF9mb3Jf Y3RiX2Rlc2NfdXBkYXRlKHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICpjdGIsCj4gIAkJCQkg ICAgdTMyIGZlbmNlLAo+ICAJCQkJICAgIHUzMiAqc3RhdHVzKQo+ICB7Cj4gIAlpbnQgZXJyOwo+ ICsJc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyAqZGVzYyA9IGN0Yi0+ZGVzYzsKPiAJLyoKPiAg CSAqIEZhc3QgY29tbWFuZHMgc2hvdWxkIGNvbXBsZXRlIGluIGxlc3MgdGhhbiAxMHVzLCBzbyBz YW1wbGUgcXVpY2tseQo+IEBAIC00MDEsNyArMzkzLDcgQEAgc3RhdGljIGludCB3YWl0X2Zvcl9j dGJfZGVzY191cGRhdGUoc3RydWN0ICAKPiBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MsCj4gIAkJ CS8qIFNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIG1lc3NhZ2luZywgdHJ5IHRvIHJlc2V0 Cj4gIAkJCSAqIHRoZSBidWZmZXIgYW5kIGhvcGUgZm9yIHRoZSBiZXN0Cj4gIAkJCSAqLwo+IC0J CQlndWNfY3RfYnVmZmVyX2Rlc2NfcmVzZXQoZGVzYyk7Cj4gKwkJCWd1Y19jdF9idWZmZXJfZGVz Y19yZXNldChjdGIpOwo+ICAJCQllcnIgPSAtRVBST1RPOwo+ICAJCX0KPiAgCX0KPiBAQCAtNDQ2 LDEyICs0MzgsMTcgQEAgc3RhdGljIGludCB3YWl0X2Zvcl9jdF9yZXF1ZXN0X3VwZGF0ZShzdHJ1 Y3QgIAo+IGN0X3JlcXVlc3QgKnJlcSwgdTMyICpzdGF0dXMpCj4gIAlyZXR1cm4gZXJyOwo+ICB9 Cj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBjdGJfaGFzX3Jvb20oc3RydWN0IGd1Y19jdF9idWZmZXJf ZGVzYyAqZGVzYywgdTMyICAKPiBsZW4pCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBjdGJfaGFzX3Jv b20oc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgKmN0YiwgdTMyICAKPiBsZW4pCj4gIHsKPiAt CXUzMiBoZWFkID0gUkVBRF9PTkNFKGRlc2MtPmhlYWQpOwo+ICsJdTMyIGhlYWQ7Cj4gIAl1MzIg c3BhY2U7Cj4gLQlzcGFjZSA9IENJUkNfU1BBQ0UoZGVzYy0+dGFpbCwgaGVhZCwgZGVzYy0+c2l6 ZSk7Cj4gKwlpZiAoY3RiLT5zcGFjZSA+PSBsZW4pCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ICsJ aGVhZCA9IFJFQURfT05DRShjdGItPmRlc2MtPmhlYWQpOwo+ICsJc3BhY2UgPSBDSVJDX1NQQUNF KGN0Yi0+dGFpbCwgaGVhZCwgY3RiLT5zaXplKTsKPiArCWN0Yi0+c3BhY2UgPSBzcGFjZTsKPiAJ cmV0dXJuIHNwYWNlID49IGxlbjsKPiAgfQo+IEBAIC00NjIsNyArNDU5LDYgQEAgaW50IGludGVs X2d1Y19zZW5kX25iKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LAo+ICB7Cj4gIAlzdHJ1Y3QgaW50 ZWxfZ3VjX2N0X2NoYW5uZWwgKmN0Y2ggPSAmY3QtPmhvc3RfY2hhbm5lbDsKPiAgCXN0cnVjdCBp bnRlbF9ndWNfY3RfYnVmZmVyICpjdGIgPSAmY3RjaC0+Y3Ric1tDVEJfU0VORF07Cj4gLQlzdHJ1 Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjID0gY3RiLT5kZXNjOwo+ICAJaW50IGVycjsKPiAJ R0VNX0JVR19PTighY3RjaC0+ZW5hYmxlZCk7Cj4gQEAgLTQ3MCw3ICs0NjYsNyBAQCBpbnQgaW50 ZWxfZ3VjX3NlbmRfbmIoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4gIAlHRU1fQlVHX09OKGxl biAmIH5HVUNfQ1RfTVNHX0xFTl9NQVNLKTsKPiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmN0LT5z ZW5kX2xvY2spOwo+IC0JaWYgKHVubGlrZWx5KCFjdGJfaGFzX3Jvb20oZGVzYywgKGxlbiArIDEp ICogNCkpKSB7Cj4gKwlpZiAodW5saWtlbHkoIWN0Yl9oYXNfcm9vbShjdGIsIChsZW4gKyAxKSAq IDQpKSkgewo+ICAJCWN0LT5yZXRyeSsrOwo+ICAJCWlmIChjdC0+cmV0cnkgPj0gTUFYX1JFVFJZ KQo+ICAJCQlyZXR1cm4gLUVERUFETEs7Cj4gQEAgLTQ5Niw3ICs0OTIsNiBAQCBzdGF0aWMgaW50 IGN0Y2hfc2VuZChzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwKPiAgCQkgICAgIHUzMiAqc3RhdHVz KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2J1ZmZlciAqY3RiID0gJmN0Y2gtPmN0YnNb Q1RCX1NFTkRdOwo+IC0Jc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyAqZGVzYyA9IGN0Yi0+ZGVz YzsKPiAgCXN0cnVjdCBjdF9yZXF1ZXN0IHJlcXVlc3Q7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdz Owo+ICAJdTMyIGZlbmNlOwo+IEBAIC01MTQsNyArNTA5LDcgQEAgc3RhdGljIGludCBjdGNoX3Nl bmQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4gIAkgKi8KPiAgcmV0cnk6Cj4gIAlzcGluX2xv Y2tfaXJxc2F2ZSgmY3QtPnNlbmRfbG9jaywgZmxhZ3MpOwo+IC0JaWYgKHVubGlrZWx5KCFjdGJf aGFzX3Jvb20oZGVzYywgKGxlbiArIDEpICogNCkpKSB7Cj4gKwlpZiAodW5saWtlbHkoIWN0Yl9o YXNfcm9vbShjdGIsIChsZW4gKyAxKSAqIDQpKSkgewo+ICAJCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmN0LT5zZW5kX2xvY2ssIGZsYWdzKTsKPiAgCQljdC0+cmV0cnkrKzsKPiAgCQlpZiAoY3Qt PnJldHJ5ID49IE1BWF9SRVRSWSkKPiBAQCAtNTQ0LDcgKzUzOSw3IEBAIHN0YXRpYyBpbnQgY3Rj aF9zZW5kKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LAo+ICAJaWYgKHJlc3BvbnNlX2J1ZikKPiAg CQllcnIgPSB3YWl0X2Zvcl9jdF9yZXF1ZXN0X3VwZGF0ZSgmcmVxdWVzdCwgc3RhdHVzKTsKPiAg CWVsc2UKPiAtCQllcnIgPSB3YWl0X2Zvcl9jdGJfZGVzY191cGRhdGUoZGVzYywgZmVuY2UsIHN0 YXR1cyk7Cj4gKwkJZXJyID0gd2FpdF9mb3JfY3RiX2Rlc2NfdXBkYXRlKGN0YiwgZmVuY2UsIHN0 YXR1cyk7Cj4gIAlpZiAodW5saWtlbHkoZXJyKSkKPiAgCQlnb3RvIHVubGluazsKPiBAQCAtNjE4 LDkgKzYxMyw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjdF9oZWFkZXJfaXNfcmVzcG9uc2UodTMy IGhlYWRlcikKPiAgc3RhdGljIGludCBjdGJfcmVhZChzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2J1ZmZl ciAqY3RiLCB1MzIgKmRhdGEpCj4gIHsKPiAgCXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRl c2MgPSBjdGItPmRlc2M7Cj4gLQl1MzIgaGVhZCA9IGRlc2MtPmhlYWQgLyA0OwkvKiBpbiBkd29y ZHMgKi8KPiArCXUzMiBoZWFkID0gY3RiLT5oZWFkIC8gNDsJLyogaW4gZHdvcmRzICovCj4gIAl1 MzIgdGFpbCA9IGRlc2MtPnRhaWwgLyA0OwkvKiBpbiBkd29yZHMgKi8KPiAtCXUzMiBzaXplID0g ZGVzYy0+c2l6ZSAvIDQ7CS8qIGluIGR3b3JkcyAqLwo+ICsJdTMyIHNpemUgPSBjdGItPnNpemUg LyA0OwkvKiBpbiBkd29yZHMgKi8KPiAgCXUzMiAqY21kcyA9IGN0Yi0+Y21kczsKPiAgCXMzMiBh dmFpbGFibGU7CQkJLyogaW4gZHdvcmRzICovCj4gIAl1bnNpZ25lZCBpbnQgbGVuOwo+IEBAIC02 NjQsNyArNjU5LDcgQEAgc3RhdGljIGludCBjdGJfcmVhZChzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2J1 ZmZlciAqY3RiLCAgCj4gdTMyICpkYXRhKQo+ICAJfQo+ICAJQ1RfREVCVUdfRFJJVkVSKCJDVDog cmVjZWl2ZWQgJSpwaFxuIiwgNCAqIGxlbiwgZGF0YSk7Cj4gLQlkZXNjLT5oZWFkID0gaGVhZCAq IDQ7Cj4gKwljdGItPmhlYWQgPSBkZXNjLT5oZWFkID0gaGVhZCAqIDQ7Cj4gIAlyZXR1cm4gMDsK PiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNf Y3QuaCAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuaAo+IGlu ZGV4IGJjNjcwYTc5NmJkOC4uMWJmZjRmMGI5MWY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmgKPiBAQCAtMjksMTAgKzI5LDE4IEBAIHN0cnVjdCBpbnRl bF9ndWM7Cj4gICAqCj4gICAqIEBkZXNjOiBwb2ludGVyIHRvIHRoZSBidWZmZXIgZGVzY3JpcHRv cgo+ICAgKiBAY21kczogcG9pbnRlciB0byB0aGUgY29tbWFuZHMgYnVmZmVyCj4gKyAqIEBzaXpl OiBsb2NhbCBzaGFkb3cgY29weSBvZiBzaXplCgpJIHdvdWxkIHJhdGhlciBleHBlY3QgdGhpcyBh cyByZWFsIGZpeGVkIHNpemUsCm5vdGUgdGhhdCBzaXplIGlzIG5vdCBleHBlY3RlZCB0byBjaGFu Z2UKCj4gKyAqIEBoZWFkOiBsb2NhbCBzaGFkb3cgY29weSBvZiBoZWFkCj4gKyAqIEB0YWlsOiBs b2NhbCBzaGFkb3cgY29weSBvZiB0YWlsCj4gKyAqIEBzcGFjZTogbG9jYWwgc2hhZG93IGNvcHkg b2Ygc3BhY2UKPiAgICovCj4gIHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyIHsKPiAgCXN0cnVj dCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2M7Cj4gIAl1MzIgKmNtZHM7Cj4gKwl1MzIgc2l6ZTsK PiArCXUzMiB0YWlsOwo+ICsJdTMyIGhlYWQ7Cj4gKwl1MzIgc3BhY2U7Cj4gIH07Cj4gLyoqIFJl cHJlc2VudHMgcGFpciBvZiBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXJzLgoKQ2FuIHdlIHJlb3Jk ZXIgdGhpcyBwYXRjaCB0byBiZSBmaXJzdCBpbiB0aGUgc2VyaWVzID8KCk1pY2hhbApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DE65AC432C0 for ; Thu, 21 Nov 2019 11:58:54 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B43EC20872 for ; Thu, 21 Nov 2019 11:58:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B43EC20872 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 495C26EE1A; Thu, 21 Nov 2019 11:58:54 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 17D0E6EE1A for ; Thu, 21 Nov 2019 11:58:53 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Nov 2019 03:58:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,224,1571727600"; d="scan'208";a="219053903" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by orsmga002.jf.intel.com with ESMTP; 21 Nov 2019 03:58:51 -0800 Received: from mwajdecz-mobl1.ger.corp.intel.com (mwajdecz-mobl1.ger.corp.intel.com [172.28.174.50]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id xALBwoKT020084; Thu, 21 Nov 2019 11:58:50 GMT To: Intel-GFX@lists.freedesktop.org, John.C.Harrison@intel.com References: <20191120235604.29047-1-John.C.Harrison@Intel.com> <20191120235604.29047-3-John.C.Harrison@Intel.com> Date: Thu, 21 Nov 2019 12:58:50 +0100 MIME-Version: 1.0 From: "Michal Wajdeczko" Message-ID: In-Reply-To: <20191120235604.29047-3-John.C.Harrison@Intel.com> User-Agent: Opera Mail/1.0 (Win32) Subject: Re: [Intel-gfx] [PATCH 2/3] drm/i915/guc: Optimized CTB writes and reads X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed"; DelSp="yes" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191121115850.fvOa5jcYfCfubXue4aKefBW4XpenNRn0RdgL2MH9N-I@z> T24gVGh1LCAyMSBOb3YgMjAxOSAwMDo1NjowMyArMDEwMCwgPEpvaG4uQy5IYXJyaXNvbkBpbnRl bC5jb20+IHdyb3RlOgoKPiBGcm9tOiBNYXR0aGV3IEJyb3N0IDxtYXR0aGV3LmJyb3N0QGludGVs LmNvbT4KPgo+IENUQiB3cml0ZXMgYXJlIG5vdyBpbiB0aGUgcGF0aCBvZiBjb21tYW5kIHN1Ym1p c3Npb24gYW5kIHNob3VsZCBiZQo+IG9wdGltaXplZCBmb3IgcGVyZm9ybWFuY2UuIFJhdGhlciB0 aGFuIHJlYWRpbmcgQ1RCIGRlc2NyaXB0b3IgdmFsdWVzCj4gKGUuZy4gaGVhZCwgdGFpbCwgc2l6 ZSkgd2hpY2ggY291bGQgcmVzdWx0IGluIGFjY2Vzc2VzIGFjcm9zcyB0aGUgUENJZQo+IGJ1cywg c3RvcmUgc2hhZG93IGxvY2FsIGNvcGllcyBhbmQgb25seSByZWFkL3dyaXRlIHRoZSBkZXNjcmlw dG9yCj4gdmFsdWVzIHdoZW4gYWJzb2x1dGVseSBuZWNlc3NhcnkuCj4KPiBDYzogSm9obiBIYXJy aXNvbiA8am9obi5jLmhhcnJpc29uQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3 IEJyb3N0IDxtYXR0aGV3LmJyb3N0QGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmMgfCA3OSArKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuaCB8ICA4ICsrKwo+ICAy IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jICAKPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jCj4gaW5kZXggZTUwZDk2 OGIxNWQ1Li40ZDhhNGM2YWZkNzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfZ3VjX2N0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfY3QuYwo+IEBAIC02OCwyMyArNjgsMjkgQEAgc3RhdGljIGlubGluZSBjb25zdCBj aGFyICAKPiAqZ3VjX2N0X2J1ZmZlcl90eXBlX3RvX3N0cih1MzIgdHlwZSkKPiAgCX0KPiAgfQo+ IC1zdGF0aWMgdm9pZCBndWNfY3RfYnVmZmVyX2Rlc2NfaW5pdChzdHJ1Y3QgZ3VjX2N0X2J1ZmZl cl9kZXNjICpkZXNjLAo+ICtzdGF0aWMgdm9pZCBndWNfY3RfYnVmZmVyX2Rlc2NfaW5pdChzdHJ1 Y3QgaW50ZWxfZ3VjX2N0X2J1ZmZlciAqY3RiLAo+ICAJCQkJICAgIHUzMiBjbWRzX2FkZHIsIHUz MiBzaXplLCB1MzIgb3duZXIpCgphcyBub3cgdGhpcyBmdW5jdGlvbiB0YWtlcyBjdGIgaW5zdGVh ZCBvZiBkZXNjLCBpdCBzaG91bGQgYmUgcmVuYW1lZApvciBtYWtlIGl0IHNlcGFyYXRlIGZyb20g Z3VjX2N0X2J1ZmZlcl9kZXNjX2luaXQKCj4gIHsKPiArCXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rl c2MgKmRlc2MgPSBjdGItPmRlc2M7Cj4gIAlDVF9ERUJVR19EUklWRVIoIkNUOiBkZXNjICVwIGlu aXQgYWRkcj0lI3ggc2l6ZT0ldSBvd25lcj0ldVxuIiwKPiAgCQkJZGVzYywgY21kc19hZGRyLCBz aXplLCBvd25lcik7Cj4gIAltZW1zZXQoZGVzYywgMCwgc2l6ZW9mKCpkZXNjKSk7Cj4gIAlkZXNj LT5hZGRyID0gY21kc19hZGRyOwo+IC0JZGVzYy0+c2l6ZSA9IHNpemU7Cj4gKwljdGItPnNpemUg PSBkZXNjLT5zaXplID0gc2l6ZTsKPiAgCWRlc2MtPm93bmVyID0gb3duZXI7Cj4gKwljdGItPnRh aWwgPSAwOwo+ICsJY3RiLT5oZWFkID0gMDsKPiArCWN0Yi0+c3BhY2UgPSBDSVJDX1NQQUNFKGN0 Yi0+dGFpbCwgY3RiLT5oZWFkLCBjdGItPnNpemUpOwo+ICB9Cj4gLXN0YXRpYyB2b2lkIGd1Y19j dF9idWZmZXJfZGVzY19yZXNldChzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjKQo+ICtz dGF0aWMgdm9pZCBndWNfY3RfYnVmZmVyX2Rlc2NfcmVzZXQoc3RydWN0IGludGVsX2d1Y19jdF9i dWZmZXIgKmN0YikKCnNhbWUgaGVyZQoKPiAgewo+ICsJc3RydWN0IGd1Y19jdF9idWZmZXJfZGVz YyAqZGVzYyA9IGN0Yi0+ZGVzYzsKPiAgCUNUX0RFQlVHX0RSSVZFUigiQ1Q6IGRlc2MgJXAgcmVz ZXQgaGVhZD0ldSB0YWlsPSV1XG4iLAo+ICAJCQlkZXNjLCBkZXNjLT5oZWFkLCBkZXNjLT50YWls KTsKPiAtCWRlc2MtPmhlYWQgPSAwOwo+IC0JZGVzYy0+dGFpbCA9IDA7Cj4gKwljdGItPmhlYWQg PSBkZXNjLT5oZWFkID0gMDsKPiArCWN0Yi0+dGFpbCA9IGRlc2MtPnRhaWwgPSAwOwo+ICsJY3Ri LT5zcGFjZSA9IENJUkNfU1BBQ0UoY3RiLT50YWlsLCBjdGItPmhlYWQsIGN0Yi0+c2l6ZSk7Cj4g IAlkZXNjLT5pc19pbl9lcnJvciA9IDA7Cj4gIH0KPiBAQCAtMjIwLDcgKzIyNiw3IEBAIHN0YXRp YyBpbnQgY3RjaF9lbmFibGUoc3RydWN0IGludGVsX2d1YyAqZ3VjLAo+ICAJICovCj4gIAlmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdGNoLT5jdGJzKTsgaSsrKSB7Cj4gIAkJR0VNX0JVR19P TigoaSAhPSBDVEJfU0VORCkgJiYgKGkgIT0gQ1RCX1JFQ1YpKTsKPiAtCQlndWNfY3RfYnVmZmVy X2Rlc2NfaW5pdChjdGNoLT5jdGJzW2ldLmRlc2MsCj4gKwkJZ3VjX2N0X2J1ZmZlcl9kZXNjX2lu aXQoJmN0Y2gtPmN0YnNbaV0sCj4gIAkJCQkJYmFzZSArIFBBR0VfU0laRS80ICogaSArIFBBR0Vf U0laRS8yLAo+ICAJCQkJCVBBR0VfU0laRS80LAo+ICAJCQkJCWN0Y2gtPm93bmVyKTsKPiBAQCAt MzAxLDMyICszMDcsMTYgQEAgc3RhdGljIGludCBjdGJfd3JpdGUoc3RydWN0IGludGVsX2d1Y19j dF9idWZmZXIgIAo+ICpjdGIsCj4gIAkJICAgICBib29sIHdhbnRfcmVzcG9uc2UpCj4gIHsKPiAg CXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MgPSBjdGItPmRlc2M7Cj4gLQl1MzIgaGVh ZCA9IGRlc2MtPmhlYWQgLyA0OwkvKiBpbiBkd29yZHMgKi8KPiAtCXUzMiB0YWlsID0gZGVzYy0+ dGFpbCAvIDQ7CS8qIGluIGR3b3JkcyAqLwo+IC0JdTMyIHNpemUgPSBkZXNjLT5zaXplIC8gNDsJ LyogaW4gZHdvcmRzICovCj4gLQl1MzIgdXNlZDsJCQkvKiBpbiBkd29yZHMgKi8KPiArCXUzMiB0 YWlsID0gY3RiLT50YWlsIC8gNDsJLyogaW4gZHdvcmRzICovCj4gKwl1MzIgc2l6ZSA9IGN0Yi0+ c2l6ZSAvIDQ7CS8qIGluIGR3b3JkcyAqLwo+ICAJdTMyIGhlYWRlcjsKPiAgCXUzMiAqY21kcyA9 IGN0Yi0+Y21kczsKPiAgCXVuc2lnbmVkIGludCBpOwo+IC0JR0VNX0JVR19PTihkZXNjLT5zaXpl ICUgNCk7Cj4gLQlHRU1fQlVHX09OKGRlc2MtPmhlYWQgJSA0KTsKPiAtCUdFTV9CVUdfT04oZGVz Yy0+dGFpbCAlIDQpOwo+ICsJR0VNX0JVR19PTihjdGItPnNpemUgJSA0KTsKPiArCUdFTV9CVUdf T04oY3RiLT50YWlsICUgNCk7Cj4gIAlHRU1fQlVHX09OKHRhaWwgPj0gc2l6ZSk7Cj4gLQkvKgo+ IC0JICogdGFpbCA9PSBoZWFkIGNvbmRpdGlvbiBpbmRpY2F0ZXMgZW1wdHkuIEd1QyBGVyBkb2Vz IG5vdCBzdXBwb3J0Cj4gLQkgKiB1c2luZyB1cCB0aGUgZW50aXJlIGJ1ZmZlciB0byBnZXQgdGFp bCA9PSBoZWFkIG1lYW5pbmcgZnVsbC4KPiAtCSAqLwo+IC0JaWYgKHRhaWwgPCBoZWFkKQo+IC0J CXVzZWQgPSAoc2l6ZSAtIGhlYWQpICsgdGFpbDsKPiAtCWVsc2UKPiAtCQl1c2VkID0gdGFpbCAt IGhlYWQ7Cj4gLQo+IC0JLyogbWFrZSBzdXJlIHRoZXJlIGlzIGEgc3BhY2UgaW5jbHVkaW5nIGV4 dHJhIGR3IGZvciB0aGUgZmVuY2UgKi8KPiAtCWlmICh1bmxpa2VseSh1c2VkICsgbGVuICsgMSA+ PSBzaXplKSkKPiAtCQlyZXR1cm4gLUVOT1NQQzsKPiAtCj4gIAkvKgo+ICAJICogV3JpdGUgdGhl IG1lc3NhZ2UuIFRoZSBmb3JtYXQgaXMgdGhlIGZvbGxvd2luZzoKPiAgCSAqIERXMDogaGVhZGVy IChpbmNsdWRpbmcgYWN0aW9uIGNvZGUpCj4gQEAgLTM1NCwxNSArMzQ0LDE2IEBAIHN0YXRpYyBp bnQgY3RiX3dyaXRlKHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICAKPiAqY3RiLAo+ICAJfQo+ IAkvKiBub3cgdXBkYXRlIGRlc2MgdGFpbCAoYmFjayBpbiBieXRlcykgKi8KPiAtCWRlc2MtPnRh aWwgPSB0YWlsICogNDsKPiAtCUdFTV9CVUdfT04oZGVzYy0+dGFpbCA+IGRlc2MtPnNpemUpOwo+ ICsJY3RiLT50YWlsID0gZGVzYy0+dGFpbCA9IHRhaWwgKiA0Owo+ICsJY3RiLT5zcGFjZSAtPSAo bGVuICsgMSkgKiA0Owo+ICsJR0VNX0JVR19PTihjdGItPnRhaWwgPiBjdGItPnNpemUpOwo+IAly ZXR1cm4gMDsKPiAgfQo+IC8qKgo+ICAgKiB3YWl0X2Zvcl9jdGJfZGVzY191cGRhdGUgLSBXYWl0 IGZvciB0aGUgQ1QgYnVmZmVyIGRlc2NyaXB0b3IgdXBkYXRlLgo+IC0gKiBAZGVzYzoJYnVmZmVy IGRlc2NyaXB0b3IKPiArICogQGN0YjoJY3RiIGJ1ZmZlcgo+ICAgKiBAZmVuY2U6CXJlc3BvbnNl IGZlbmNlCj4gICAqIEBzdGF0dXM6CXBsYWNlaG9sZGVyIGZvciBzdGF0dXMKPiAgICoKPiBAQCAt Mzc2LDExICszNjcsMTIgQEAgc3RhdGljIGludCBjdGJfd3JpdGUoc3RydWN0IGludGVsX2d1Y19j dF9idWZmZXIgIAo+ICpjdGIsCj4gICAqICoJLUVUSU1FRE9VVCBubyByZXNwb25zZSB3aXRoaW4g aGFyZGNvZGVkIHRpbWVvdXQKPiAgICogKgktRVBST1RPIG5vIHJlc3BvbnNlLCBDVCBidWZmZXIg aXMgaW4gZXJyb3IKPiAgICovCj4gLXN0YXRpYyBpbnQgd2FpdF9mb3JfY3RiX2Rlc2NfdXBkYXRl KHN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MsCj4gK3N0YXRpYyBpbnQgd2FpdF9mb3Jf Y3RiX2Rlc2NfdXBkYXRlKHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyICpjdGIsCj4gIAkJCQkg ICAgdTMyIGZlbmNlLAo+ICAJCQkJICAgIHUzMiAqc3RhdHVzKQo+ICB7Cj4gIAlpbnQgZXJyOwo+ ICsJc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyAqZGVzYyA9IGN0Yi0+ZGVzYzsKPiAJLyoKPiAg CSAqIEZhc3QgY29tbWFuZHMgc2hvdWxkIGNvbXBsZXRlIGluIGxlc3MgdGhhbiAxMHVzLCBzbyBz YW1wbGUgcXVpY2tseQo+IEBAIC00MDEsNyArMzkzLDcgQEAgc3RhdGljIGludCB3YWl0X2Zvcl9j dGJfZGVzY191cGRhdGUoc3RydWN0ICAKPiBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MsCj4gIAkJ CS8qIFNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIG1lc3NhZ2luZywgdHJ5IHRvIHJlc2V0 Cj4gIAkJCSAqIHRoZSBidWZmZXIgYW5kIGhvcGUgZm9yIHRoZSBiZXN0Cj4gIAkJCSAqLwo+IC0J CQlndWNfY3RfYnVmZmVyX2Rlc2NfcmVzZXQoZGVzYyk7Cj4gKwkJCWd1Y19jdF9idWZmZXJfZGVz Y19yZXNldChjdGIpOwo+ICAJCQllcnIgPSAtRVBST1RPOwo+ICAJCX0KPiAgCX0KPiBAQCAtNDQ2 LDEyICs0MzgsMTcgQEAgc3RhdGljIGludCB3YWl0X2Zvcl9jdF9yZXF1ZXN0X3VwZGF0ZShzdHJ1 Y3QgIAo+IGN0X3JlcXVlc3QgKnJlcSwgdTMyICpzdGF0dXMpCj4gIAlyZXR1cm4gZXJyOwo+ICB9 Cj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBjdGJfaGFzX3Jvb20oc3RydWN0IGd1Y19jdF9idWZmZXJf ZGVzYyAqZGVzYywgdTMyICAKPiBsZW4pCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBjdGJfaGFzX3Jv b20oc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgKmN0YiwgdTMyICAKPiBsZW4pCj4gIHsKPiAt CXUzMiBoZWFkID0gUkVBRF9PTkNFKGRlc2MtPmhlYWQpOwo+ICsJdTMyIGhlYWQ7Cj4gIAl1MzIg c3BhY2U7Cj4gLQlzcGFjZSA9IENJUkNfU1BBQ0UoZGVzYy0+dGFpbCwgaGVhZCwgZGVzYy0+c2l6 ZSk7Cj4gKwlpZiAoY3RiLT5zcGFjZSA+PSBsZW4pCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ICsJ aGVhZCA9IFJFQURfT05DRShjdGItPmRlc2MtPmhlYWQpOwo+ICsJc3BhY2UgPSBDSVJDX1NQQUNF KGN0Yi0+dGFpbCwgaGVhZCwgY3RiLT5zaXplKTsKPiArCWN0Yi0+c3BhY2UgPSBzcGFjZTsKPiAJ cmV0dXJuIHNwYWNlID49IGxlbjsKPiAgfQo+IEBAIC00NjIsNyArNDU5LDYgQEAgaW50IGludGVs X2d1Y19zZW5kX25iKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LAo+ICB7Cj4gIAlzdHJ1Y3QgaW50 ZWxfZ3VjX2N0X2NoYW5uZWwgKmN0Y2ggPSAmY3QtPmhvc3RfY2hhbm5lbDsKPiAgCXN0cnVjdCBp bnRlbF9ndWNfY3RfYnVmZmVyICpjdGIgPSAmY3RjaC0+Y3Ric1tDVEJfU0VORF07Cj4gLQlzdHJ1 Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjID0gY3RiLT5kZXNjOwo+ICAJaW50IGVycjsKPiAJ R0VNX0JVR19PTighY3RjaC0+ZW5hYmxlZCk7Cj4gQEAgLTQ3MCw3ICs0NjYsNyBAQCBpbnQgaW50 ZWxfZ3VjX3NlbmRfbmIoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4gIAlHRU1fQlVHX09OKGxl biAmIH5HVUNfQ1RfTVNHX0xFTl9NQVNLKTsKPiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmN0LT5z ZW5kX2xvY2spOwo+IC0JaWYgKHVubGlrZWx5KCFjdGJfaGFzX3Jvb20oZGVzYywgKGxlbiArIDEp ICogNCkpKSB7Cj4gKwlpZiAodW5saWtlbHkoIWN0Yl9oYXNfcm9vbShjdGIsIChsZW4gKyAxKSAq IDQpKSkgewo+ICAJCWN0LT5yZXRyeSsrOwo+ICAJCWlmIChjdC0+cmV0cnkgPj0gTUFYX1JFVFJZ KQo+ICAJCQlyZXR1cm4gLUVERUFETEs7Cj4gQEAgLTQ5Niw3ICs0OTIsNiBAQCBzdGF0aWMgaW50 IGN0Y2hfc2VuZChzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwKPiAgCQkgICAgIHUzMiAqc3RhdHVz KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2J1ZmZlciAqY3RiID0gJmN0Y2gtPmN0YnNb Q1RCX1NFTkRdOwo+IC0Jc3RydWN0IGd1Y19jdF9idWZmZXJfZGVzYyAqZGVzYyA9IGN0Yi0+ZGVz YzsKPiAgCXN0cnVjdCBjdF9yZXF1ZXN0IHJlcXVlc3Q7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdz Owo+ICAJdTMyIGZlbmNlOwo+IEBAIC01MTQsNyArNTA5LDcgQEAgc3RhdGljIGludCBjdGNoX3Nl bmQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4gIAkgKi8KPiAgcmV0cnk6Cj4gIAlzcGluX2xv Y2tfaXJxc2F2ZSgmY3QtPnNlbmRfbG9jaywgZmxhZ3MpOwo+IC0JaWYgKHVubGlrZWx5KCFjdGJf aGFzX3Jvb20oZGVzYywgKGxlbiArIDEpICogNCkpKSB7Cj4gKwlpZiAodW5saWtlbHkoIWN0Yl9o YXNfcm9vbShjdGIsIChsZW4gKyAxKSAqIDQpKSkgewo+ICAJCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmN0LT5zZW5kX2xvY2ssIGZsYWdzKTsKPiAgCQljdC0+cmV0cnkrKzsKPiAgCQlpZiAoY3Qt PnJldHJ5ID49IE1BWF9SRVRSWSkKPiBAQCAtNTQ0LDcgKzUzOSw3IEBAIHN0YXRpYyBpbnQgY3Rj aF9zZW5kKHN0cnVjdCBpbnRlbF9ndWNfY3QgKmN0LAo+ICAJaWYgKHJlc3BvbnNlX2J1ZikKPiAg CQllcnIgPSB3YWl0X2Zvcl9jdF9yZXF1ZXN0X3VwZGF0ZSgmcmVxdWVzdCwgc3RhdHVzKTsKPiAg CWVsc2UKPiAtCQllcnIgPSB3YWl0X2Zvcl9jdGJfZGVzY191cGRhdGUoZGVzYywgZmVuY2UsIHN0 YXR1cyk7Cj4gKwkJZXJyID0gd2FpdF9mb3JfY3RiX2Rlc2NfdXBkYXRlKGN0YiwgZmVuY2UsIHN0 YXR1cyk7Cj4gIAlpZiAodW5saWtlbHkoZXJyKSkKPiAgCQlnb3RvIHVubGluazsKPiBAQCAtNjE4 LDkgKzYxMyw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjdF9oZWFkZXJfaXNfcmVzcG9uc2UodTMy IGhlYWRlcikKPiAgc3RhdGljIGludCBjdGJfcmVhZChzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2J1ZmZl ciAqY3RiLCB1MzIgKmRhdGEpCj4gIHsKPiAgCXN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRl c2MgPSBjdGItPmRlc2M7Cj4gLQl1MzIgaGVhZCA9IGRlc2MtPmhlYWQgLyA0OwkvKiBpbiBkd29y ZHMgKi8KPiArCXUzMiBoZWFkID0gY3RiLT5oZWFkIC8gNDsJLyogaW4gZHdvcmRzICovCj4gIAl1 MzIgdGFpbCA9IGRlc2MtPnRhaWwgLyA0OwkvKiBpbiBkd29yZHMgKi8KPiAtCXUzMiBzaXplID0g ZGVzYy0+c2l6ZSAvIDQ7CS8qIGluIGR3b3JkcyAqLwo+ICsJdTMyIHNpemUgPSBjdGItPnNpemUg LyA0OwkvKiBpbiBkd29yZHMgKi8KPiAgCXUzMiAqY21kcyA9IGN0Yi0+Y21kczsKPiAgCXMzMiBh dmFpbGFibGU7CQkJLyogaW4gZHdvcmRzICovCj4gIAl1bnNpZ25lZCBpbnQgbGVuOwo+IEBAIC02 NjQsNyArNjU5LDcgQEAgc3RhdGljIGludCBjdGJfcmVhZChzdHJ1Y3QgaW50ZWxfZ3VjX2N0X2J1 ZmZlciAqY3RiLCAgCj4gdTMyICpkYXRhKQo+ICAJfQo+ICAJQ1RfREVCVUdfRFJJVkVSKCJDVDog cmVjZWl2ZWQgJSpwaFxuIiwgNCAqIGxlbiwgZGF0YSk7Cj4gLQlkZXNjLT5oZWFkID0gaGVhZCAq IDQ7Cj4gKwljdGItPmhlYWQgPSBkZXNjLT5oZWFkID0gaGVhZCAqIDQ7Cj4gIAlyZXR1cm4gMDsK PiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNf Y3QuaCAgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfY3QuaAo+IGlu ZGV4IGJjNjcwYTc5NmJkOC4uMWJmZjRmMGI5MWY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmgKPiBAQCAtMjksMTAgKzI5LDE4IEBAIHN0cnVjdCBpbnRl bF9ndWM7Cj4gICAqCj4gICAqIEBkZXNjOiBwb2ludGVyIHRvIHRoZSBidWZmZXIgZGVzY3JpcHRv cgo+ICAgKiBAY21kczogcG9pbnRlciB0byB0aGUgY29tbWFuZHMgYnVmZmVyCj4gKyAqIEBzaXpl OiBsb2NhbCBzaGFkb3cgY29weSBvZiBzaXplCgpJIHdvdWxkIHJhdGhlciBleHBlY3QgdGhpcyBh cyByZWFsIGZpeGVkIHNpemUsCm5vdGUgdGhhdCBzaXplIGlzIG5vdCBleHBlY3RlZCB0byBjaGFu Z2UKCj4gKyAqIEBoZWFkOiBsb2NhbCBzaGFkb3cgY29weSBvZiBoZWFkCj4gKyAqIEB0YWlsOiBs b2NhbCBzaGFkb3cgY29weSBvZiB0YWlsCj4gKyAqIEBzcGFjZTogbG9jYWwgc2hhZG93IGNvcHkg b2Ygc3BhY2UKPiAgICovCj4gIHN0cnVjdCBpbnRlbF9ndWNfY3RfYnVmZmVyIHsKPiAgCXN0cnVj dCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2M7Cj4gIAl1MzIgKmNtZHM7Cj4gKwl1MzIgc2l6ZTsK PiArCXUzMiB0YWlsOwo+ICsJdTMyIGhlYWQ7Cj4gKwl1MzIgc3BhY2U7Cj4gIH07Cj4gLyoqIFJl cHJlc2VudHMgcGFpciBvZiBjb21tYW5kIHRyYW5zcG9ydCBidWZmZXJzLgoKQ2FuIHdlIHJlb3Jk ZXIgdGhpcyBwYXRjaCB0byBiZSBmaXJzdCBpbiB0aGUgc2VyaWVzID8KCk1pY2hhbApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=