From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH igt v2] igt/gem_exec_schedule: Exercise "deep" preemption Date: Tue, 27 Feb 2018 15:25:35 +0200 Message-ID: <874lm2sgxc.fsf@gaia.fi.intel.com> References: <20180224183835.16804-1-chris@chris-wilson.co.uk> <20180226152658.15609-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 475C36E690 for ; Tue, 27 Feb 2018 13:29:45 +0000 (UTC) In-Reply-To: <20180226152658.15609-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gSW4gaW52 ZXN0aWdhdGluZyB0aGUgaXNzdWUgd2l0aCBoYXZpbmcgdG8gZm9yY2UgcHJlZW1wdGlvbiB3aXRo aW4gdGhlCj4gZXhlY3V0aW5nIEVMU1BbXSwgd2Ugd2FudCB0byB0cmlnZ2VyIHByZWVtcHRpb24g YmV0d2VlbiBhbGwgZWxlbWVudHMgb2YKPiB0aGF0IGFycmF5LiBUbyB0aGF0IGVuZCwgd2UgaXNz dWUgYSBzZXJpZXMgb2YgcmVxdWVzdHMgd2l0aCBkaWZmZXJlbnQKPiBwcmlvcml0aWVzIHRvIGZp bGwgdGhlIGluLWZsaWdodCBFTFNQW10gYW5kIHRoZW4gZGVtYW5kIHByZWVtcHRpb24gaW50bwo+ IHRoZSBtaWRkbGUgb2YgdGhhdCBzZXJpZXMuIE9uZSBjYW4gdGhpbmsgb2YgZXZlbiBtb3JlIGNv bXBsaWNhdGVkCj4gcmVvcmRlcmluZyByZXF1aXJlbWVudHMgb2YgRUxTUFtdLCB0cnlpbmcgdG8g c3dpdGNoIGJldHdlZW4gZXZlcnkKPiBwb3NzaWJsZSBjb21iaW5hdGlvbiBvZiBwZXJtdXRhdGlv bnMuIFJhdGhlciB0aGFuIGNoZWNrIGFsbCAyIGJpbGxpb24KPiBjb21iaW5hdGlvbnMsIGJlIGNv bnRlbnQgd2l0aCBhIGZldy4KPgo+IHYyOiBBZGQgYSBkaWZmZXJlbnQgcGF0dGVybiBmb3IgcXVl dWVkIHJlcXVlc3RzLiBOb3Qgb25seSBkbyB3ZSBuZWVkIHRvCj4gaW5qZWN0IGEgcmVxdWVzdCBp bnRvIHRoZSBtaWRkbGUgb2YgYSBzaW5nbGUgY29udGV4dCB3aXRoIGEgcXVldWUgb2YKPiBkaWZm ZXJlbnQgcHJpb3JpdHkgY29udGV4dHMsIGJ1dCB3ZSBhbHNvIHdhbnQgYSBxdWV1ZSBvZiBkaWZm ZXJlbnQKPiBjb250ZXh0cywgYXMgdGhleSBoYXZlIGRpZmZlcmVudCBwYXR0ZXJucyBvZiBFTFNQ W10gYmVoYXZpb3VyLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Cj4gQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwu Y29tPgo+IENjOiBNaWNoYcWCIFdpbmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+ Cj4gLS0tCj4gIHRlc3RzL2dlbV9leGVjX3NjaGVkdWxlLmMgfCAxODggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTY5IGlu c2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9l eGVjX3NjaGVkdWxlLmMgYi90ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jCj4gaW5kZXggOGE2OWFi NWMuLjdmMWJkYTQyIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV9leGVjX3NjaGVkdWxlLmMKPiAr KysgYi90ZXN0cy9nZW1fZXhlY19zY2hlZHVsZS5jCj4gQEAgLTM3MywxMyArMzczLDc4IEBAIHN0 YXRpYyB2b2lkIHByZWVtcHQoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBmbGFncykK PiAgCWdlbV9jbG9zZShmZCwgcmVzdWx0KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgcHJlZW1w dF9vdGhlcihpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCj4gKyNkZWZpbmUgQ0hBSU4gMHgxCj4gKyNk ZWZpbmUgQ09OVEVYVFMgMHgyCj4gKwo+ICtzdGF0aWMgaWd0X3NwaW5fdCAqX19ub2lzZShpbnQg ZmQsIHVpbnQzMl90IGN0eCwgaW50IHByaW8sIGlndF9zcGluX3QgKnNwaW4pCj4gK3sKPiArCXVu c2lnbmVkIG90aGVyOwo+ICsKPiArCWdlbV9jb250ZXh0X3NldF9wcmlvcml0eShmZCwgY3R4LCBw cmlvKTsKPiArCj4gKwlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIG90aGVyKSB7Cj4gKwkJ aWYgKHNwaW4gPT0gTlVMTCkgewo+ICsJCQlzcGluID0gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoZmQs IGN0eCwgb3RoZXIsIDApOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY19vYmplY3QyIG9iaiA9IHsKPiArCQkJCS5oYW5kbGUgPSBzcGluLT5oYW5kbGUsCj4gKwkJ CX07Cj4gKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZWIgPSB7Cj4gKwkJCQku YnVmZmVyX2NvdW50ID0gMSwKPiArCQkJCS5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigm b2JqKSwKPiArCQkJCS5yc3ZkMSA9IGN0eCwKPiArCQkJCS5mbGFncyA9IG90aGVyLAo+ICsJCQl9 Owo+ICsJCQlnZW1fZXhlY2J1ZihmZCwgJmViKTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJcmV0dXJu IHNwaW47Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIF9fcHJlZW1wdF9vdGhlcihpbnQgZmQsCj4g KwkJCSAgICB1aW50MzJfdCAqY3R4LAo+ICsJCQkgICAgdW5zaWduZWQgaW50IHRhcmdldCwgdW5z aWduZWQgaW50IHByaW1hcnksCj4gKwkJCSAgICB1bnNpZ25lZCBmbGFncykKPiAgewo+ICAJdWlu dDMyX3QgcmVzdWx0ID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7Cj4gIAl1aW50MzJfdCAqcHRyID0g Z2VtX21tYXBfX2d0dChmZCwgcmVzdWx0LCA0MDk2LCBQUk9UX1JFQUQpOwo+IC0JaWd0X3NwaW5f dCAqc3BpbltNQVhfRU5HSU5FU107Cj4gLQl1bnNpZ25lZCBpbnQgb3RoZXI7Cj4gLQl1bnNpZ25l ZCBpbnQgbiwgaTsKPiArCXVuc2lnbmVkIGludCBuLCBpLCBvdGhlcjsKPiArCj4gKwluID0gMDsK PiArCXN0b3JlX2R3b3JkKGZkLCBjdHhbTE9dLCBwcmltYXJ5LAo+ICsJCSAgICByZXN1bHQsIChu ICsgMSkqc2l6ZW9mKHVpbnQzMl90KSwgbiArIDEsCj4gKwkJICAgIDAsIEk5MTVfR0VNX0RPTUFJ Tl9SRU5ERVIpOwo+ICsJbisrOwo+ICsKPiArCWlmIChmbGFncyAmIENIQUlOKSB7Cj4gKwkJZm9y X2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBvdGhlcikgewo+ICsJCQlzdG9yZV9kd29yZChmZCwg Y3R4W0xPXSwgb3RoZXIsCj4gKwkJCQkgICAgcmVzdWx0LCAobiArIDEpKnNpemVvZih1aW50MzJf dCksIG4gKyAxLAo+ICsJCQkJICAgIDAsIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIpOwo+ICsJCQlu Kys7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXN0b3JlX2R3b3JkKGZkLCBjdHhbSEldLCB0YXJnZXQs Cj4gKwkJICAgIHJlc3VsdCwgKG4gKyAxKSpzaXplb2YodWludDMyX3QpLCBuICsgMSwKPiArCQkg ICAgMCwgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUik7Cj4gKwo+ICsJaWd0X2RlYnVnZnNfZHVtcChm ZCwgImk5MTVfZW5naW5lX2luZm8iKTsKPiArCWdlbV9zZXRfZG9tYWluKGZkLCByZXN1bHQsIEk5 MTVfR0VNX0RPTUFJTl9HVFQsIDApOwo+ICsKPiArCW4rKzsKPiArCWZvciAoaSA9IDA7IGkgPD0g bjsgaSsrKQo+ICsJCWlndF9hc3NlcnRfZXFfdTMyKHB0cltpXSwgaSk7Cj4gKwo+ICsJbXVubWFw KHB0ciwgNDA5Nik7Cj4gKwlnZW1fY2xvc2UoZmQsIHJlc3VsdCk7Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIHByZWVtcHRfb3RoZXIoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBpbnQg ZmxhZ3MpCj4gK3sKPiArCXVuc2lnbmVkIGludCBwcmltYXJ5Owo+ICsJaWd0X3NwaW5fdCAqc3Bp biA9IE5VTEw7Cj4gIAl1aW50MzJfdCBjdHhbM107Cj4gIAo+ICAJLyogT24gZWFjaCBlbmdpbmUs IGluc2VydAo+IEBAIC0zOTYsMzYgKzQ2MSw5NyBAQCBzdGF0aWMgdm9pZCBwcmVlbXB0X290aGVy KGludCBmZCwgdW5zaWduZWQgcmluZykKPiAgCWdlbV9jb250ZXh0X3NldF9wcmlvcml0eShmZCwg Y3R4W0xPXSwgTUlOX1BSSU8pOwo+ICAKPiAgCWN0eFtOT0lTRV0gPSBnZW1fY29udGV4dF9jcmVh dGUoZmQpOwo+ICsJc3BpbiA9IF9fbm9pc2UoZmQsIGN0eFtOT0lTRV0sIDAsIE5VTEwpOwo+ICAK PiAgCWN0eFtISV0gPSBnZW1fY29udGV4dF9jcmVhdGUoZmQpOwo+ICAJZ2VtX2NvbnRleHRfc2V0 X3ByaW9yaXR5KGZkLCBjdHhbSEldLCBNQVhfUFJJTyk7Cj4gIAo+ICsJZm9yX2VhY2hfcGh5c2lj YWxfZW5naW5lKGZkLCBwcmltYXJ5KSB7Cj4gKwkJaWd0X2RlYnVnKCJQcmltYXJ5IGVuZ2luZTog JXNcbiIsIGVfXy0+bmFtZSk7Cj4gKwkJX19wcmVlbXB0X290aGVyKGZkLCBjdHgsIHJpbmcsIHBy aW1hcnksIGZsYWdzKTsKPiArCj4gKwl9Cj4gKwo+ICsJaWd0X2Fzc2VydChnZW1fYm9fYnVzeShm ZCwgc3Bpbi0+aGFuZGxlKSk7Cj4gKwlpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGZkLCBzcGluKTsKPiAr Cj4gKwlnZW1fY29udGV4dF9kZXN0cm95KGZkLCBjdHhbTE9dKTsKPiArCWdlbV9jb250ZXh0X2Rl c3Ryb3koZmQsIGN0eFtOT0lTRV0pOwo+ICsJZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4W0hJ XSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIF9fcHJlZW1wdF9xdWV1ZShpbnQgZmQsCj4gKwkJ CSAgICB1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHByaW1hcnksCj4gKwkJCSAgICB1bnNpZ25l ZCBkZXB0aCwgdW5zaWduZWQgZmxhZ3MpCj4gK3sKPiArCXVpbnQzMl90IHJlc3VsdCA9IGdlbV9j cmVhdGUoZmQsIDQwOTYpOwo+ICsJdWludDMyX3QgKnB0ciA9IGdlbV9tbWFwX19ndHQoZmQsIHJl c3VsdCwgNDA5NiwgUFJPVF9SRUFEKTsKPiArCWlndF9zcGluX3QgKmFib3ZlID0gTlVMTCwgKmJl bG93ID0gTlVMTDsKPiArCXVuc2lnbmVkIGludCBvdGhlciwgbiwgaTsKPiArCWludCBwcmlvID0g TUFYX1BSSU87Cj4gKwl1aW50MzJfdCBjdHhbM10gPSB7Cj4gKwkJZ2VtX2NvbnRleHRfY3JlYXRl KGZkKSwKPiArCQlnZW1fY29udGV4dF9jcmVhdGUoZmQpLAo+ICsJCWdlbV9jb250ZXh0X2NyZWF0 ZShmZCksCj4gKwl9Owo+ICsKPiArCWZvciAobiA9IDA7IG4gPCBkZXB0aDsgbisrKSB7Cj4gKwkJ aWYgKGZsYWdzICYgQ09OVEVYVFMpIHsKPiArCQkJZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4 W05PSVNFXSk7Cj4gKwkJCWN0eFtOT0lTRV0gPSBnZW1fY29udGV4dF9jcmVhdGUoZmQpOwo+ICsJ CX0KPiArCQlhYm92ZSA9IF9fbm9pc2UoZmQsIGN0eFtOT0lTRV0sIHByaW8tLSwgYWJvdmUpOwo+ ICsJfQo+ICsKPiArCWdlbV9jb250ZXh0X3NldF9wcmlvcml0eShmZCwgY3R4W0hJXSwgcHJpby0t KTsKPiArCj4gKwlmb3IgKDsgbiA8IE1BWF9FTFNQX1FMRU47IG4rKykgewo+ICsJCWlmIChmbGFn cyAmIENPTlRFWFRTKSB7Cj4gKwkJCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtOT0lTRV0p Owo+ICsJCQljdHhbTk9JU0VdID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKPiArCQl9Cj4gKwkJ YmVsb3cgPSBfX25vaXNlKGZkLCBjdHhbTk9JU0VdLCBwcmlvLS0sIGJlbG93KTsKPiArCX0KPiAr Cj4gKwlnZW1fY29udGV4dF9zZXRfcHJpb3JpdHkoZmQsIGN0eFtMT10sIHByaW8tLSk7Cj4gKwo+ ICAJbiA9IDA7Cj4gLQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIG90aGVyKSB7Cj4gLQkJ aWd0X2Fzc2VydChuIDwgQVJSQVlfU0laRShzcGluKSk7Cj4gKwlzdG9yZV9kd29yZChmZCwgY3R4 W0xPXSwgcHJpbWFyeSwKPiArCQkgICAgcmVzdWx0LCAobiArIDEpKnNpemVvZih1aW50MzJfdCks IG4gKyAxLAo+ICsJCSAgICAwLCBJOTE1X0dFTV9ET01BSU5fUkVOREVSKTsKPiArCW4rKzsKPiAg Cj4gLQkJc3BpbltuXSA9IF9faWd0X3NwaW5fYmF0Y2hfbmV3KGZkLCBjdHhbTk9JU0VdLCBvdGhl ciwgMCk7Cj4gLQkJc3RvcmVfZHdvcmQoZmQsIGN0eFtMT10sIG90aGVyLAo+IC0JCQkgICAgcmVz dWx0LCAobiArIDEpKnNpemVvZih1aW50MzJfdCksIG4gKyAxLAo+IC0JCQkgICAgMCwgSTkxNV9H RU1fRE9NQUlOX1JFTkRFUik7Cj4gLQkJbisrOwo+ICsJaWYgKGZsYWdzICYgQ0hBSU4pIHsKPiAr CQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIG90aGVyKSB7Cj4gKwkJCXN0b3JlX2R3b3Jk KGZkLCBjdHhbTE9dLCBvdGhlciwKPiArCQkJCSAgICByZXN1bHQsIChuICsgMSkqc2l6ZW9mKHVp bnQzMl90KSwgbiArIDEsCj4gKwkJCQkgICAgMCwgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUik7Cj4g KwkJCW4rKzsKPiArCQl9Cj4gIAl9Cj4gLQlzdG9yZV9kd29yZChmZCwgY3R4W0hJXSwgcmluZywK PiArCj4gKwlzdG9yZV9kd29yZChmZCwgY3R4W0hJXSwgdGFyZ2V0LAo+ICAJCSAgICByZXN1bHQs IChuICsgMSkqc2l6ZW9mKHVpbnQzMl90KSwgbiArIDEsCj4gIAkJICAgIDAsIEk5MTVfR0VNX0RP TUFJTl9SRU5ERVIpOwo+ICAKPiAgCWlndF9kZWJ1Z2ZzX2R1bXAoZmQsICJpOTE1X2VuZ2luZV9p bmZvIik7Cj4gLQlnZW1fc2V0X2RvbWFpbihmZCwgcmVzdWx0LCBJOTE1X0dFTV9ET01BSU5fR1RU LCAwKTsKPiAgCj4gLQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Cj4gLQkJaWd0X2Fzc2VydChn ZW1fYm9fYnVzeShmZCwgc3BpbltpXS0+aGFuZGxlKSk7Cj4gLQkJaWd0X3NwaW5fYmF0Y2hfZnJl ZShmZCwgc3BpbltpXSk7Cj4gKwlpZiAoYWJvdmUpIHsKPiArCQlpZ3RfYXNzZXJ0KGdlbV9ib19i dXN5KGZkLCBhYm92ZS0+aGFuZGxlKSk7Cj4gKwkJaWd0X3NwaW5fYmF0Y2hfZnJlZShmZCwgYWJv dmUpOwo+ICAJfQo+ICAKPiArCWdlbV9zZXRfZG9tYWluKGZkLCByZXN1bHQsIEk5MTVfR0VNX0RP TUFJTl9HVFQsIDApOwo+ICsKPiAgCW4rKzsKPiAgCWZvciAoaSA9IDA7IGkgPD0gbjsgaSsrKQo+ ICAJCWlndF9hc3NlcnRfZXFfdTMyKHB0cltpXSwgaSk7Cj4gIAo+ICsJaWYgKGJlbG93KSB7Cj4g KwkJaWd0X2Fzc2VydChnZW1fYm9fYnVzeShmZCwgYmVsb3ctPmhhbmRsZSkpOwo+ICsJCWlndF9z cGluX2JhdGNoX2ZyZWUoZmQsIGJlbG93KTsKPiArCX0KPiArCj4gIAlnZW1fY29udGV4dF9kZXN0 cm95KGZkLCBjdHhbTE9dKTsKPiAgCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtOT0lTRV0p Owo+ICAJZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4W0hJXSk7Cj4gQEAgLTQzNCw2ICs1NjAs MTYgQEAgc3RhdGljIHZvaWQgcHJlZW1wdF9vdGhlcihpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCj4g IAlnZW1fY2xvc2UoZmQsIHJlc3VsdCk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIHByZWVtcHRf cXVldWUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4gK3sKPiAr CXVuc2lnbmVkIG90aGVyOwo+ICsKPiArCWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgb3Ro ZXIpIHsKPiArCQlmb3IgKHVuc2lnbmVkIGRlcHRoID0gMDsgZGVwdGggPD0gTUFYX0VMU1BfUUxF TjsgZGVwdGgrKykKPiArCQkJX19wcmVlbXB0X3F1ZXVlKGZkLCByaW5nLCBvdGhlciwgZGVwdGgs IGZsYWdzKTsKPiArCX0KPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgcHJlZW1wdF9zZWxmKGludCBm ZCwgdW5zaWduZWQgcmluZykKPiAgewo+ICAJdWludDMyX3QgcmVzdWx0ID0gZ2VtX2NyZWF0ZShm ZCwgNDA5Nik7Cj4gQEAgLTk4MSwxMiArMTExNywyNiBAQCBpZ3RfbWFpbgo+ICAJCQkJCWlndF9z dWJ0ZXN0X2YoInByZWVtcHQtY29udGV4dHMtJXMiLCBlLT5uYW1lKQo+ICAJCQkJCQlwcmVlbXB0 KGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIE5FV19DVFgpOwo+ICAKPiAtCQkJCQlpZ3Rfc3Vi dGVzdF9mKCJwcmVlbXB0LW90aGVyLSVzIiwgZS0+bmFtZSkKPiAtCQkJCQkJcHJlZW1wdF9vdGhl cihmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKTsKPiAtCj4gIAkJCQkJaWd0X3N1YnRlc3RfZigi cHJlZW1wdC1zZWxmLSVzIiwgZS0+bmFtZSkKPiAgCQkJCQkJcHJlZW1wdF9zZWxmKGZkLCBlLT5l eGVjX2lkIHwgZS0+ZmxhZ3MpOwo+ICAKPiArCQkJCQlpZ3Rfc3VidGVzdF9mKCJwcmVlbXB0LW90 aGVyLSVzIiwgZS0+bmFtZSkKPiArCQkJCQkJcHJlZW1wdF9vdGhlcihmZCwgZS0+ZXhlY19pZCB8 IGUtPmZsYWdzLCAwKTsKPiArCj4gKwkJCQkJaWd0X3N1YnRlc3RfZigicHJlZW1wdC1vdGhlci1j aGFpbi0lcyIsIGUtPm5hbWUpCj4gKwkJCQkJCXByZWVtcHRfb3RoZXIoZmQsIGUtPmV4ZWNfaWQg fCBlLT5mbGFncywgQ0hBSU4pOwo+ICsKPiArCQkJCQlpZ3Rfc3VidGVzdF9mKCJwcmVlbXB0LXF1 ZXVlLSVzIiwgZS0+bmFtZSkKPiArCQkJCQkJcHJlZW1wdF9xdWV1ZShmZCwgZS0+ZXhlY19pZCB8 IGUtPmZsYWdzLCAwKTsKPiArCj4gKwkJCQkJaWd0X3N1YnRlc3RfZigicHJlZW1wdC1xdWV1ZS1j aGFpbi0lcyIsIGUtPm5hbWUpCj4gKwkJCQkJCXByZWVtcHRfcXVldWUoZmQsIGUtPmV4ZWNfaWQg fCBlLT5mbGFncywgQ0hBSU4pOwo+ICsJCQkJCWlndF9zdWJ0ZXN0X2YoInByZWVtcHQtY29udGV4 dHMtJXMiLCBlLT5uYW1lKQoKVGhpcyB3aWxsIGNvbGxpZGUgd2l0aCB0aGUgc2FtZSBuYW1lIGFz IHRoZSB0ZXN0IGFib3ZlOgpwcmVlbXB0KGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIE5FV19D VFgpOwoKLU1pa2EKCj4gKwkJCQkJCXByZWVtcHRfcXVldWUoZmQsIGUtPmV4ZWNfaWQgfCBlLT5m bGFncywgQ09OVEVYVFMpOwo+ICsKPiArCQkJCQlpZ3Rfc3VidGVzdF9mKCJwcmVlbXB0LWNvbnRl eHRzLWNoYWluLSVzIiwgZS0+bmFtZSkKPiArCQkJCQkJcHJlZW1wdF9xdWV1ZShmZCwgZS0+ZXhl Y19pZCB8IGUtPmZsYWdzLCBDT05URVhUUyB8IENIQUlOKTsKPiArCj4gIAkJCQkJaWd0X3N1YnRl c3RfZ3JvdXAgewo+ICAJCQkJCQlpZ3RfaGFuZ190IGhhbmc7Cj4gIAo+IC0tIAo+IDIuMTYuMgo+ Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=