From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH v10 5/9] drm/i915: vgpu context submission pv optimization Date: Tue, 17 Sep 2019 10:54:02 +0100 Message-ID: <156871404241.5729.16327108808318513912@skylake-alporthouse-com> References: <1568699301-2799-1-git-send-email-xiaolin.zhang@intel.com> <1568699301-2799-6-git-send-email-xiaolin.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1568699301-2799-6-git-send-email-xiaolin.zhang@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Xiaolin Zhang , intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org Cc: zhenyu.z.wang@intel.com, hang.yuan@intel.com, zhiyuan.lv@intel.com List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBYaWFvbGluIFpoYW5nICgyMDE5LTA5LTE3IDA2OjQ4OjE2KQo+IEl0IGlzIHBlcmZv cm1hbmNlIG9wdGltaXphdGlvbiB0byBvdmVycmlkZSB0aGUgYWN0dWFsIHN1Ym1pc2lzb24gYmFj a2VuZAo+IGluIG9yZGVyIHRvIGVsaW1pbmF0ZSBleGVjbGlzdHMgY3NiIHByb2Nlc3MgYW5kIHJl ZHVjZSBtbWlvIHRyYXAgbnVtYmVycwo+IGZvciB3b3JrbG9hZCBzdWJtaXNzaW9uIHdpdGhvdXQg Y29udGV4dCBzd2l0Y2ggaW50ZXJydXB0IGJ5IHRhbGtpbmcgd2l0aAo+IEdWVCB2aWEgUFYgc3Vi bWlzaXNvbiBub3RpZmljYXRpb24gbWVjaGFuaXNtIGJldHdlZW4gZ3Vlc3QgYW5kIEdWVC4KPiAK PiBVc2UgUFZfU1VCTUlTU0lPTiB0byBjb250cm9sIHRoaXMgbGV2ZWwgb2YgcHYgb3B0aW1pemF0 aW9uLgo+IAo+IHYwOiBSRkMuCj4gdjE6IHJlYmFzZS4KPiB2MjogYWRkZWQgcHYgb3BzIGZvciBw diBjb250ZXh0IHN1Ym1pc3Npb24uIHRvIG1heGltaXplIGNvZGUgcmVzdXNlLAo+IGludHJvZHVj ZWQgMiBtb3JlIG9wcyAoc3VibWl0X3BvcnRzICYgcHJlZW1wdF9jb250ZXh0KSBpbnN0ZWFkIG9m IDEgb3AKPiAoc2V0X2RlZmF1bHRfc3VibWlzc2lvbikgaW4gZW5naW5lIHN0cnVjdHVyZS4gcHYg dmVyc2lvbiBvZgo+IHN1Ym1pdF9wb3J0cyBhbmQgcHJlZW1wdF9jb250ZXh0IGltcGxlbWVudGVk Lgo+IHYzOgo+IDEuIHRvIHJlZHVjZSBtb3JlIGNvZGUgZHVwbGljYXRpb24sIGNvZGUgcmVmYWN0 b3IgYW5kIHJlcGxhY2VkIDIgb3BzCj4gInN1Ym1pdF9wb3J0cyAmIHByZWVtcHRfY29udGV4IiBm cm9tIHYyIGJ5IDEgb3BzICJ3cml0ZV9kZXNjIgo+IGluIGVuZ2luZSBzdHJ1Y3R1cmUuIHB2IHZl cnNpb24gb2Ygd3JpdGVfZGVzIGltcGxlbWVudGVkLgo+IDIuIGFkZGVkIFZHVF9HMlZfRUxTUF9T VUJNSVQgZm9yIGcydiBwdiBub3RpZmljYXRpb24uCj4gdjQ6IGltcGxlbWVudGVkIHB2IGVsc3Ag c3VibWlzc2lvbiB0YXNrbGV0IGFzIHRoZSBiYWNrZW5kIHdvcmtsb2FkCj4gc3VibWlzaXNvbiBi eSB0YWxraW5nIHRvIEdWVCB3aXRoIFBWIG5vdGlmaWNhaXRvbiBtZWNoYW5pc20gYW5kIHJlbmFt ZWQKPiBWR1RfRzJWX0VMU1BfU1VCTUlUIHRvIFZHVF9HMlZfUFZfU1VCTUlTSUlPTi4KPiB2NTog YWRkcmVzc2VkIHY0IGNvbW1lbnRzIGZyb20gQ2hyaXMsIGludGVsX3B2X3N1Ym1pc3Npb24uYyBh ZGRlZC4KPiB2NjogYWRkcmVzc2VkIHY1IGNvbW1lbnRzIGZyb20gQ2hyaXMsIHJlcGxhY2VkIGVu Z2luZSBpZCBieSBod19pZC4KPiB2NzogcmViYXNlLgo+IHY4OiBhZGRyZXNzZWQgdjcgY29tbWVu dHMgZnJvbSBDaHJpcy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBYaWFvbGluIFpoYW5nIDx4aWFvbGlu LnpoYW5nQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUg ICAgICAgICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xy Yy5jICAgICAgICB8ICAxMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyAg ICAgICAgICAgfCAgMTggKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmggICAg ICAgICAgIHwgIDE1ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3B2X3N1Ym1pc3Np b24uYyB8IDMwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICA1IGZpbGVzIGNoYW5n ZWQsIDM0MSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHZfc3VibWlzc2lvbi5jCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUKPiBpbmRleCA2NThiOTMwLi5mNTAwY2YxIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUKPiBAQCAtMjUwLDcgKzI1MCw3IEBAIGk5MTUtJChDT05GSUdfRFJNX0k5MTVfU0VMRlRF U1QpICs9IFwKPiAgICAgICAgIHNlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5vCj4gIAo+ICAjIHZpcnR1 YWwgZ3B1IGNvZGUKPiAtaTkxNS15ICs9IGk5MTVfdmdwdS5vCj4gK2k5MTUteSArPSBpOTE1X3Zn cHUubyBpbnRlbF9wdl9zdWJtaXNzaW9uLm8KPiAgCj4gIGlmZXEgKCQoQ09ORklHX0RSTV9JOTE1 X0dWVCkseSkKPiAgaTkxNS15ICs9IGludGVsX2d2dC5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfbHJjLmMKPiBpbmRleCBhM2YwZTQ5Li41NTg3YWZmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfbHJjLmMKPiBAQCAtMjkzMywxMCArMjkzMywxNCBAQCB2b2lkIGludGVsX2V4ZWNs aXN0c19zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiAgICAgICAgIGVuZ2luZS0+dW5wYXJrID0gTlVMTDsKPiAgCj4gICAgICAgICBlbmdpbmUt PmZsYWdzIHw9IEk5MTVfRU5HSU5FX1NVUFBPUlRTX1NUQVRTOwo+IC0gICAgICAgaWYgKCFpbnRl bF92Z3B1X2FjdGl2ZShlbmdpbmUtPmk5MTUpKSB7Cj4gLSAgICAgICAgICAgICAgIGVuZ2luZS0+ ZmxhZ3MgfD0gSTkxNV9FTkdJTkVfSEFTX1NFTUFQSE9SRVM7Cj4gLSAgICAgICAgICAgICAgIGlm IChIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oZW5naW5lLT5pOTE1KSkKPiAtICAgICAgICAg ICAgICAgICAgICAgICBlbmdpbmUtPmZsYWdzIHw9IEk5MTVfRU5HSU5FX0hBU19QUkVFTVBUSU9O Owo+ICsgICAgICAgZW5naW5lLT5mbGFncyB8PSBJOTE1X0VOR0lORV9IQVNfU0VNQVBIT1JFUzsK PiArICAgICAgIGlmIChIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04oZW5naW5lLT5pOTE1KSkK PiArICAgICAgICAgICAgICAgZW5naW5lLT5mbGFncyB8PSBJOTE1X0VOR0lORV9IQVNfUFJFRU1Q VElPTjsKPiArCj4gKyAgICAgICBpZiAoaW50ZWxfdmdwdV9hY3RpdmUoZW5naW5lLT5pOTE1KSkg ewo+ICsgICAgICAgICAgICAgICBlbmdpbmUtPmZsYWdzICY9IH5JOTE1X0VOR0lORV9IQVNfU0VN QVBIT1JFUzsKPiArICAgICAgICAgICAgICAgZW5naW5lLT5mbGFncyAmPSB+STkxNV9FTkdJTkVf SEFTX1BSRUVNUFRJT047Cj4gKyAgICAgICAgICAgICAgIGludGVsX3ZncHVfY29uZmlnX3B2X2Nh cHMoZW5naW5lLT5pOTE1LCBQVl9TVUJNSVNTSU9OLCBlbmdpbmUpOwo+ICAgICAgICAgfQo+ICAK PiAgICAgICAgIGlmIChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSA+PSAxMikgLyogWFhYIGRpc2Fi bGVkIGZvciBkZWJ1Z2dpbmcgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV92Z3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwo+IGluZGV4IGU0 NTg4OTIuLmE0ODhiNjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 Z3B1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwo+IEBAIC05Nyw3 ICs5Nyw3IEBAIHZvaWQgaTkxNV9kZXRlY3RfdmdwdShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gICAgICAgICBtdXRleF9pbml0KCZkZXZfcHJpdi0+dmdwdS5sb2NrKTsKPiAg Cj4gICAgICAgICAvKiBndWVzdCBkcml2ZXIgUFYgY2FwYWJpbGl0eSAqLwo+IC0gICAgICAgZGV2 X3ByaXYtPnZncHUucHZfY2FwcyA9IFBWX1BQR1RUX1VQREFURTsKPiArICAgICAgIGRldl9wcml2 LT52Z3B1LnB2X2NhcHMgPSBQVl9QUEdUVF9VUERBVEUgfCBQVl9TVUJNSVNTSU9OOwo+ICAKPiAg ICAgICAgIGlmICghaW50ZWxfdmdwdV9jaGVja19wdl9jYXBzKGRldl9wcml2LCBzaGFyZWRfYXJl YSkpIHsKPiAgICAgICAgICAgICAgICAgRFJNX0lORk8oIlZpcnR1YWwgR1BVIGZvciBJbnRlbCBH VlQtZyBkZXRlY3RlZC5cbiIpOwo+IEBAIC0zODksNiArMzg5LDcgQEAgdm9pZCBpbnRlbF92Z3B1 X2NvbmZpZ19wdl9jYXBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgICAg ICAgICAgICAgICAgZW51bSBwdl9jYXBzIGNhcCwgdm9pZCAqZGF0YSkKPiAgewo+ICAgICAgICAg c3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0Owo+ICsgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lOwo+ICAKPiAgICAgICAgIGlmICghaW50ZWxfdmdwdV9lbmFibGVkX3B2X2NhcHMo ZGV2X3ByaXYsIGNhcCkpCj4gICAgICAgICAgICAgICAgIHJldHVybjsKPiBAQCAtMzk5LDYgKzQw MCwxMSBAQCB2b2lkIGludGVsX3ZncHVfY29uZmlnX3B2X2NhcHMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICAgICAgICAgICAgICAgICBwcGd0dC0+dm0uaW5zZXJ0X2VudHJp ZXMgPSBnZW44X3BwZ3R0X2luc2VydF80bHZsX3B2Owo+ICAgICAgICAgICAgICAgICBwcGd0dC0+ dm0uY2xlYXJfcmFuZ2UgPSBnZW44X3BwZ3R0X2NsZWFyXzRsdmxfcHY7Cj4gICAgICAgICB9Cj4g Kwo+ICsgICAgICAgaWYgKGNhcCA9PSBQVl9TVUJNSVNTSU9OKSB7Cj4gKyAgICAgICAgICAgICAg IGVuZ2luZSA9IChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICopZGF0YTsKPiArICAgICAgICAgICAg ICAgdmdwdV9zZXRfcHZfc3VibWlzc2lvbihlbmdpbmUpOwo+ICsgICAgICAgfQo+ICB9Cj4gIAo+ ICAvKioKPiBAQCAtNTk0LDYgKzYwMCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfdmdwdV9zZXR1cF9z aGFyZWRfcGFnZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAgICAgICB1 NjQgZ3BhOwo+ICAgICAgICAgdTE2IHZlcl9tYWosIHZlcl9taW47Cj4gICAgICAgICBpbnQgcmV0 ID0gMDsKPiArICAgICAgIGludCBpOwo+ICsgICAgICAgdTMyIHNpemU7Cj4gIAo+ICAgICAgICAg LyogV2UgYWxsb2NhdGUgMSBwYWdlIHNoYXJlZCBiZXR3ZWVuIGd1ZXN0IGFuZCBHVlQgZm9yIGRh dGEgZXhjaGFuZ2UuCj4gICAgICAgICAgKiAgICAgICBfX19fX19fX19fXy4uLi4uLi4uLi4uLi4u Li4uLi4uLgo+IEBAIC02NjYsNiArNjc0LDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxfdmdwdV9zZXR1 cF9zaGFyZWRfcGFnZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAgICAg ICBwdi0+bm90aWZ5ID0gaW50ZWxfdmdwdV9wdl9ub3RpZnlfbW1pbzsKPiAgICAgICAgIG11dGV4 X2luaXQoJnB2LT5zZW5kX211dGV4KTsKPiAgCj4gKyAgICAgICAvKiBzZXR1cCBQViBwZXIgZW5n aW5lIGRhdGEgZXhjaGFuZ2Ugc3RydWN0dXJlICovCj4gKyAgICAgICBzaXplID0gc2l6ZW9mKHN0 cnVjdCBwdl9zdWJtaXNzaW9uKTsKPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBQVl9NQVhfRU5H SU5FU19OVU07IGkrKykgewo+ICsgICAgICAgICAgICAgICBwdi0+cHZfZWxzcFtpXSA9ICh2b2lk ICopYmFzZSArIFBWX0VMU1BfT0ZGICsgIHNpemUgKiBpOwo+ICsgICAgICAgICAgICAgICBwdi0+ cHZfZWxzcFtpXS0+c3VibWl0dGVkID0gZmFsc2U7Cj4gKyAgICAgICAgICAgICAgIHNwaW5fbG9j a19pbml0KCZwdi0+cHZfZWxzcFtpXS0+bG9jayk7Cj4gKyAgICAgICB9Cj4gKwo+ICAgICAgICAg cmV0dXJuIHJldDsKPiAgZXJyOgo+ICAgICAgICAgX19mcmVlX3BhZ2UodmlydF90b19wYWdlKGJh c2UpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuaAo+IGluZGV4IGIwZmVlNWIuLmMzM2NiMDUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuaAo+IEBAIC0yOSw2ICsyOSw4IEBACj4gIAo+ ICAjZGVmaW5lIFBWX01BSk9SICAgICAgICAgICAgICAgMQo+ICAjZGVmaW5lIFBWX01JTk9SICAg ICAgICAgICAgICAgMAo+ICsjZGVmaW5lIFBWX01BWF9FTkdJTkVTX05VTSAgICAgKFZFQ1MxX0hX ICsgMSkKPiArI2RlZmluZSBQVl9FTFNQX09GRiAgICAgICAgICAgIChQQUdFX1NJWkUvOCkKPiAg I2RlZmluZSBQVl9ERVNDX09GRiAgICAgICAgICAgIChQQUdFX1NJWkUvNCkKPiAgI2RlZmluZSBQ Vl9DTURfT0ZGICAgICAgICAgICAgIChQQUdFX1NJWkUvMikKPiAgCj4gQEAgLTM3LDYgKzM5LDcg QEAKPiAgICovCj4gIGVudW0gcHZfY2FwcyB7Cj4gICAgICAgICBQVl9QUEdUVF9VUERBVEUgPSAw eDEsCj4gKyAgICAgICBQVl9TVUJNSVNTSU9OID0gMHgyLAo+ICB9Owo+ICAKPiAgLyogUFYgYWN0 aW9ucyAqLwo+IEBAIC00NSw2ICs0OCw3IEBAIGVudW0gaW50ZWxfdmdwdV9wdl9hY3Rpb24gewo+ ICAgICAgICAgUFZfQUNUSU9OX1BQR1RUX0w0X0FMTE9DLAo+ICAgICAgICAgUFZfQUNUSU9OX1BQ R1RUX0w0X0NMRUFSLAo+ICAgICAgICAgUFZfQUNUSU9OX1BQR1RUX0w0X0lOU0VSVCwKPiArICAg ICAgIFBWX0FDVElPTl9FTFNQX1NVQk1JU1NJT04sCj4gIH07Cj4gIAo+ICAvKgo+IEBAIC01Niw2 ICs2MCwxMyBAQCBzdHJ1Y3QgZ3Z0X3NoYXJlZF9wYWdlIHsKPiAgICAgICAgIHUxNiB2ZXJfbWlu b3I7Cj4gIH07Cj4gIAo+ICsvKiB3b3JrbG9hZCBzdWJtaXNzaW9uIHB2IHN1cHBvcnQgZGF0YSBz dHJ1Y3R1cmUgKi8KPiArc3RydWN0IHB2X3N1Ym1pc3Npb24gewo+ICsgICAgICAgdTY0IGRlc2Nz W0VYRUNMSVNUX01BWF9QT1JUU107Cj4gKyAgICAgICBib29sIHN1Ym1pdHRlZDsKPiArICAgICAg IHNwaW5sb2NrX3QgbG9jazsKPiArfTsKPiArCj4gIC8qCj4gICAqIERlZmluaXRpb24gb2YgdGhl IGNvbW1hbmQgdHJhbnNwb3J0IG1lc3NhZ2UgaGVhZGVyIChEVzApCj4gICAqCj4gQEAgLTEwMCw2 ICsxMTEsOSBAQCBzdHJ1Y3QgaTkxNV92aXJ0dWFsX2dwdV9wdiB7Cj4gICAgICAgICBzdHJ1Y3Qg Z3Z0X3NoYXJlZF9wYWdlICpzaGFyZWRfcGFnZTsKPiAgICAgICAgIGJvb2wgZW5hYmxlZDsKPiAg Cj4gKyAgICAgICAvKiBwZXIgZW5naW5lIFBWIHdvcmtsb2FkIHN1Ym1pc3Npb24gZGF0YSAqLwo+ ICsgICAgICAgc3RydWN0IHB2X3N1Ym1pc3Npb24gKnB2X2Vsc3BbUFZfTUFYX0VOR0lORVNfTlVN XTsKPiArCj4gICAgICAgICAvKiBQViBjb21tYW5kIGJ1ZmZlciBzdXBwb3J0ICovCj4gICAgICAg ICBzdHJ1Y3QgdmdwdV9wdl9jdF9idWZmZXIgY3RiOwo+ICAgICAgICAgdTMyIG5leHRfZmVuY2U7 Cj4gQEAgLTE2NCw0ICsxNzgsNSBAQCBib29sIGludGVsX3ZncHVfY2hlY2tfcHZfY2FwcyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAgICAgICAgICAgICAgIHZvaWQgX19p b21lbSAqc2hhcmVkX2FyZWEpOwo+ICB2b2lkIGludGVsX3ZncHVfY29uZmlnX3B2X2NhcHMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgICAgICAgICAgICAgICBlbnVtIHB2 X2NhcHMgY2FwLCB2b2lkICpkYXRhKTsKPiArdm9pZCB2Z3B1X3NldF9wdl9zdWJtaXNzaW9uKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4gICNlbmRpZiAvKiBfSTkxNV9WR1BVX0hf ICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3B2X3N1Ym1pc3Np b24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3B2X3N1Ym1pc3Npb24uYwo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uMTA4M2Q1Ngo+IC0tLSAvZGV2L251bGwK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wdl9zdWJtaXNzaW9uLmMKPiBAQCAt MCwwICsxLDMwMCBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4gKy8qCj4g KyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2lu Y2x1ZGUgImk5MTVfdmdwdS5oIgo+ICsjaW5jbHVkZSAiZ3QvaW50ZWxfbHJjX3JlZy5oIgo+ICsj aW5jbHVkZSAiZ3QvaW50ZWxfZ3RfcG0uaCIKPiArI2luY2x1ZGUgImk5MTVfdHJhY2UuaCIKPiAr Cj4gKyNkZWZpbmUgQ1RYX0RFU0NfRk9SQ0VfUkVTVE9SRSBCSVRfVUxMKDIpCj4gKwo+ICtzdGF0 aWMgdTY0IGV4ZWNsaXN0c191cGRhdGVfY29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkK PiArewo+ICsgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gcnEtPmh3X2NvbnRleHQ7 Cj4gKyAgICAgICB1MzIgKnJlZ19zdGF0ZSA9IGNlLT5scmNfcmVnX3N0YXRlOwo+ICsKPiArICAg ICAgIHJlZ19zdGF0ZVtDVFhfUklOR19UQUlMICsgMV0gPSBpbnRlbF9yaW5nX3NldF90YWlsKHJx LT5yaW5nLCBycS0+dGFpbCk7Cj4gKwo+ICsgICAgICAgcmV0dXJuIGNlLT5scmNfZGVzYzsKPiAr fQo+ICsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqdG9fcHJpb2xpc3Qo c3RydWN0IHJiX25vZGUgKnJiKQo+ICt7Cj4gKyAgICAgICByZXR1cm4gcmJfZW50cnkocmIsIHN0 cnVjdCBpOTE1X3ByaW9saXN0LCBub2RlKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgcHZfc3Vi bWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiArICAgICAgICAgICAgICBzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICoqb3V0LAo+ICsgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3JlcXVl c3QgKiplbmQpCj4gK3sKPiArICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICog Y29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwo+ICsgICAgICAgc3RydWN0IGk5 MTVfdmlydHVhbF9ncHVfcHYgKnB2ID0gZW5naW5lLT5pOTE1LT52Z3B1LnB2Owo+ICsgICAgICAg c3RydWN0IHB2X3N1Ym1pc3Npb24gKnB2X2Vsc3AgPSBwdi0+cHZfZWxzcFtlbmdpbmUtPmh3X2lk XTsKPiArICAgICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwo+ICsgICAgICAgaW50IG4sIGVy cjsKPiArCj4gKyAgICAgICBtZW1zZXQocHZfZWxzcC0+ZGVzY3MsIDAsIHNpemVvZihwdl9lbHNw LT5kZXNjcykpOwo+ICsgICAgICAgbiA9IDA7Cj4gKwo+ICsgICAgICAgZG8gewo+ICsgICAgICAg ICAgICAgICBycSA9ICpvdXQrKzsKPiArICAgICAgICAgICAgICAgcHZfZWxzcC0+ZGVzY3Nbbisr XSA9IGV4ZWNsaXN0c191cGRhdGVfY29udGV4dChycSk7Cj4gKyAgICAgICB9IHdoaWxlIChvdXQg IT0gZW5kKTsKPiArCj4gKyAgICAgICBzcGluX2xvY2soJnB2X2Vsc3AtPmxvY2spOwo+ICsgICAg ICAgcHZfZWxzcC0+c3VibWl0dGVkID0gdHJ1ZTsKPiArICAgICAgIHdyaXRlbChQVl9BQ1RJT05f RUxTUF9TVUJNSVNTSU9OLCBleGVjbGlzdHMtPnN1Ym1pdF9yZWcpOwo+ICsKPiArI2RlZmluZSBk b25lIChSRUFEX09OQ0UocHZfZWxzcC0+c3VibWl0dGVkKSA9PSBmYWxzZSkKPiArICAgICAgIGVy ciA9IHdhaXRfZm9yX2F0b21pY191cyhkb25lLCAxMDAwKTsKClBsZWFzZSB0ZWxsIG1lIHlvdSBo YXZlIGEgYmV0dGVyIHBsYW4gdGhhbiBhZGRpbmcgYSAxbXMgd2FpdCB3aXRoCmludGVycnVwdHMg b2ZmLgoKPiArI3VuZGVmIGRvbmUKPiArICAgICAgIHNwaW5fdW5sb2NrKCZwdl9lbHNwLT5sb2Nr KTsKPiArCj4gKyAgICAgICBpZiAodW5saWtlbHkoZXJyKSkKPiArICAgICAgICAgICAgICAgRFJN X0VSUk9SKCJQViAoJXMpIHdvcmtsb2FkIHN1Ym1pc3Npb24gZmFpbGVkXG4iLCBlbmdpbmUtPm5h bWUpOwo+ICsKPiArfQoKCj4gK3ZvaWQgdmdwdV9zZXRfcHZfc3VibWlzc2lvbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiArICAgICAgIC8qCj4gKyAgICAgICAgKiBXZSBp bmhlcml0IGEgYnVuY2ggb2YgZnVuY3Rpb25zIGZyb20gZXhlY2xpc3RzIHRoYXQgd2UnZCBsaWtl Cj4gKyAgICAgICAgKiB0byBrZWVwIHVzaW5nOgo+ICsgICAgICAgICoKPiArICAgICAgICAqICAg IGVuZ2luZS0+c3VibWl0X3JlcXVlc3QgPSBleGVjbGlzdHNfc3VibWl0X3JlcXVlc3Q7Cj4gKyAg ICAgICAgKiAgICBlbmdpbmUtPmNhbmNlbF9yZXF1ZXN0cyA9IGV4ZWNsaXN0c19jYW5jZWxfcmVx dWVzdHM7Cj4gKyAgICAgICAgKiAgICBlbmdpbmUtPnNjaGVkdWxlID0gZXhlY2xpc3RzX3NjaGVk dWxlOwo+ICsgICAgICAgICoKPiArICAgICAgICAqIEJ1dCB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRo ZSBhY3R1YWwgc3VibWlzc2lvbiBiYWNrZW5kIGluIG9yZGVyCj4gKyAgICAgICAgKiB0byB0YWxr IHRvIHRoZSBHVlQgd2l0aCBQViBub3RpZmljYXRpb24gbWVzc2FnZS4KPiArICAgICAgICAqLwo+ ICsKPiArICAgICAgIGVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQuZnVuYyA9IHZncHVfcHZfc3Vi bWlzc2lvbl90YXNrbGV0Owo+ICsKPiArICAgICAgIC8qIGRvIG5vdCB1c2UgZXhlY2xpc3RzIHBh cmsvdW5wYXJrICovCj4gKyAgICAgICBlbmdpbmUtPnBhcmsgPSBlbmdpbmUtPnVucGFyayA9IE5V TEw7CgpCdXQgdGhpcyB3YXMgdXNlZCB0byBlbmFibGUgdGhlIGludGVycnVwdHMgc28gdGhhdCB5 b3VyIHRhc2tsZXQgd2FzCmNhbGxlZC4gZ3VjIGRyb3BwZWQgaXQgYmVjYXVzZSB0aGV5IG9ubHkg cGxhbiB0byBydW4gb24gSFcgdGhhdCBhbHdheXMKc2VuZHMgdGhlIGludGVycnVwdHM7IHlvdXIg c3VwcG9ydGVkIEhXIG5lZWRzIHRoZSBpbnRlcnJ1cHRzIGVuYWJsZWQgb24KZGVtYW5kLgoKUGxl YXNlIGdvIGFuZCBhZGQgYSB0ZXN0IHRvIGRlbW9uc3RyYXRlIHRoaXMuCi1DaHJpcwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=