From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Szwichtenberg, Radoslaw" Subject: Re: [PATCH i-g-t] pm_rps: [RFC] RPS tests documentation update Date: Fri, 8 Sep 2017 07:30:47 +0000 Message-ID: <1504855844.21576.14.camel@intel.com> References: <20170907121514.29861-1-katarzyna.dec@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id B58556EA91 for ; Fri, 8 Sep 2017 07:31:35 +0000 (UTC) In-Reply-To: Content-Language: en-US Content-ID: <1BF5A908703CBF47A5C8A131F9793135@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Dec, Katarzyna" , "intel-gfx@lists.freedesktop.org" , "Belgaumkar, Vinay" Cc: "daniel.vetter@ffwll.ch" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE3LTA5LTA3IGF0IDExOjI4IC0wNzAwLCBCZWxnYXVta2FyLCBWaW5heSB3cm90 ZToNCj4gDQo+IE9uIDkvNy8yMDE3IDU6MTUgQU0sIEthdGFyenluYSBEZWMgd3JvdGU6DQo+ID4g QWRkZWQgY29tbWVudHMgaW4gdHJpY2t5IHBsYWNlcyBmb3IgYmV0dGVyIGZlYXR1cmUgdW5kZXJz dGFuZGluZy4NCj4gPiBBZGRlZCBJR1RfVEVTVF9ERVNDUklQVElPTiBhbmQgc2hvcnQgZGVzY3Jp cHRpb24gZm9yIG5vbi1vYnZpb3VzDQo+ID4gc3VidGVzdHMuDQo+ID4gQ2hhbmdlZCBuYW1lIG9m ICdtYWdpYycgY2hlY2tpdCgpIGZ1bmN0aW9uIHRvIHNvbWV0aGluZyBtZWFuaW5nZnVsbC4NCj4g PiBDaGFuZ2VkIGp1bmsgc3RydWN0IGFuZCBzdHVmZiBhcnJheSBuYW1lcy4NCj4gPiBNYWRlIHNv bWUgbWlub3IgY29kaW5nIHN0eWxlIGNoYW5nZXMuDQo+ID4gDQo+ID4gQ2M6IFZpbmF5IEJlbGdh dW1rYXIgPHZpbmF5LmJlbGdhdW1rYXJAaW50ZWwuY29tPg0KPiA+IENjOiBQZXRyaSBMYXR2YWxh IDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4NCj4gPiBDYzogQXJrYWRpdXN6IEhpbGVyIDxhcmth ZGl1c3ouaGlsZXJAaW50ZWwuY29tPg0KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPg0KPiA+IA0KPiA+IFNpZ25lZC1vZmY6IEthdGFyenluYSBEZWMgPGthdGFy enluYS5kZWNAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+IMKgdGVzdHMvcG1fcnBzLmMgfCAxMDgg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ IC0tLS0tDQo+ID4gwqAxIGZpbGUgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRp b25zKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL3BtX3Jwcy5jIGIvdGVzdHMvcG1f cnBzLmMNCj4gPiBpbmRleCBlNzlmMGVhNy4uMWVlYjZjNmEgMTAwNjQ0DQo+ID4gLS0tIGEvdGVz dHMvcG1fcnBzLmMNCj4gPiArKysgYi90ZXN0cy9wbV9ycHMuYw0KPiA+IEBAIC00MCw2ICs0MCw4 IEBADQo+ID4gDQo+ID4gwqAjaW5jbHVkZSAiaW50ZWxfYnVmbWdyLmgiDQo+ID4gDQo+ID4gK0lH VF9URVNUX0RFU0NSSVBUSU9OKCJSZW5kZXIgUC1TdGF0ZXMgdGVzdHMgLSB2ZXJpZnkgR1BVIGZy ZXF1ZW5jeQ0KPiA+IGNoYW5nZXMiKTsNCj4gPiArDQo+ID4gwqBzdGF0aWMgaW50IGRybV9mZDsN Cj4gPiANCj4gPiDCoHN0YXRpYyBjb25zdCBjaGFyIHN5c2ZzX2Jhc2VfcGF0aFtdID0NCj4gPiAi L3N5cy9jbGFzcy9kcm0vY2FyZCVkL2d0XyVzX2ZyZXFfbWh6IjsNCj4gPiBAQCAtNTYsMTIgKzU4 LDE5IEBAIGVudW0gew0KPiA+IA0KPiA+IMKgc3RhdGljIGludCBvcmlnZnJlcXNbTlVNRlJFUV07 DQo+ID4gDQo+ID4gLXN0cnVjdCBqdW5rIHsNCj4gPiArc3RydWN0IHN5c2ZzX2ZpbGUgew0KPiA+ IMKgCWNvbnN0IGNoYXIgKm5hbWU7DQo+ID4gwqAJY29uc3QgY2hhciAqbW9kZTsNCj4gPiDCoAlG SUxFICpmaWxwOw0KPiA+IC19IHN0dWZmW10gPSB7DQo+ID4gLQl7ICJjdXIiLCAiciIsIE5VTEwg fSwgeyAibWluIiwgInJiKyIsIE5VTEwgfSwgeyAibWF4IiwgInJiKyIsIE5VTEwNCj4gPiB9LCB7 ICJSUDAiLCAiciIsIE5VTEwgfSwgeyAiUlAxIiwgInIiLCBOVUxMIH0sIHsgIlJQbiIsICJyIiwg TlVMTCB9LCB7DQo+ID4gImJvb3N0IiwgInJiKyIsIE5VTEwgfSwgeyBOVUxMLCBOVUxMLCBOVUxM IH0NCj4gPiArfSBzeXNmc19maWxlc1tdID0gew0KPiA+ICsJeyAiY3VyIiwgInIiLCBOVUxMIH0s DQo+ID4gKwl7ICJtaW4iLCAicmIrIiwgTlVMTCB9LA0KPiA+ICsJeyAibWF4IiwgInJiKyIsIE5V TEwgfSwNCj4gPiArCXsgIlJQMCIsICJyIiwgTlVMTCB9LA0KPiA+ICsJeyAiUlAxIiwgInIiLCBO VUxMIH0sDQo+ID4gKwl7ICJSUG4iLCAiciIsIE5VTEwgfSwNCj4gPiArCXsgImJvb3N0IiwgInJi KyIsIE5VTEwgfSwNCj4gPiArCXsgTlVMTCwgTlVMTCwgTlVMTCB9DQo+ID4gwqB9Ow0KPiA+IA0K PiA+IMKgc3RhdGljIGludCByZWFkdmFsKEZJTEUgKmZpbHApDQo+ID4gQEAgLTgxLDcgKzkwLDcg QEAgc3RhdGljIHZvaWQgcmVhZF9mcmVxcyhpbnQgKmZyZXFzKQ0KPiA+IMKgCWludCBpOw0KPiA+ IA0KPiA+IMKgCWZvciAoaSA9IDA7IGkgPCBOVU1GUkVROyBpKyspDQo+ID4gLQkJZnJlcXNbaV0g PSByZWFkdmFsKHN0dWZmW2ldLmZpbHApOw0KPiA+ICsJCWZyZXFzW2ldID0gcmVhZHZhbChzeXNm c19maWxlc1tpXS5maWxwKTsNCj4gPiDCoH0NCj4gPiANCj4gPiDCoHN0YXRpYyB2b2lkIG5zbGVl cCh1bnNpZ25lZCBsb25nIG5zKQ0KPiA+IEBAIC0xNDMsNyArMTUyLDcgQEAgc3RhdGljIGludCBk b193cml0ZXZhbChGSUxFICpmaWxwLCBpbnQgdmFsLCBpbnQgbGVycm5vLA0KPiA+IGJvb2wgcmVh ZGJhY2tfY2hlY2spDQo+ID4gwqAjZGVmaW5lIHdyaXRldmFsX2ludmFsKGZpbHAsIHZhbCkgZG9f d3JpdGV2YWwoZmlscCwgdmFsLCBFSU5WQUwsIHRydWUpDQo+ID4gwqAjZGVmaW5lIHdyaXRldmFs X25vY2hlY2soZmlscCwgdmFsKSBkb193cml0ZXZhbChmaWxwLCB2YWwsIDAsIGZhbHNlKQ0KPiA+ IA0KPiA+IC1zdGF0aWMgdm9pZCBjaGVja2l0KGNvbnN0IGludCAqZnJlcXMpDQo+ID4gK3N0YXRp YyB2b2lkIGNoZWNrX2ZyZXFfY29uc3RyYWludHMoY29uc3QgaW50ICpmcmVxcykNCj4gPiDCoHsN Cj4gPiDCoAlpZ3RfYXNzZXJ0X2x0ZShmcmVxc1tNSU5dLCBmcmVxc1tNQVhdKTsNCj4gPiDCoAlp Z3RfYXNzZXJ0X2x0ZShmcmVxc1tDVVJdLCBmcmVxc1tNQVhdKTsNCj4gPiBAQCAtMTYyLDcgKzE3 MSw3IEBAIHN0YXRpYyB2b2lkIGR1bXAoY29uc3QgaW50ICpmcmVxcykNCj4gPiANCj4gPiDCoAlp Z3RfZGVidWcoImd0IGZyZXEgKE1Ieik6Iik7DQo+ID4gwqAJZm9yIChpID0gMDsgaSA8IE5VTUZS RVE7IGkrKykNCj4gPiAtCQlpZ3RfZGVidWcoIsKgwqAlcz0lZCIsIHN0dWZmW2ldLm5hbWUsIGZy ZXFzW2ldKTsNCj4gPiArCQlpZ3RfZGVidWcoIsKgwqAlcz0lZCIsIHN5c2ZzX2ZpbGVzW2ldLm5h bWUsIGZyZXFzW2ldKTsNCj4gPiANCj4gPiDCoAlpZ3RfZGVidWcoIlxuIik7DQo+ID4gwqB9DQo+ ID4gQEAgLTM4NywxNCArMzk2LDE4IEBAIHN0YXRpYyBpbnQgZ2V0X2h3X3JvdW5kZWRfZnJlcShp bnQgdGFyZ2V0KQ0KPiA+IMKgCQlpZHggPSBNQVg7DQo+ID4gDQo+ID4gwqAJb2xkX2ZyZXEgPSBm cmVxc1tpZHhdOw0KPiA+IC0Jd3JpdGV2YWxfbm9jaGVjayhzdHVmZltpZHhdLmZpbHAsIHRhcmdl dCk7DQo+ID4gKwl3cml0ZXZhbF9ub2NoZWNrKHN5c2ZzX2ZpbGVzW2lkeF0uZmlscCwgdGFyZ2V0 KTsNCj4gPiDCoAlyZWFkX2ZyZXFzKGZyZXFzKTsNCj4gPiDCoAlyZXQgPSBmcmVxc1tpZHhdOw0K PiA+IC0Jd3JpdGV2YWxfbm9jaGVjayhzdHVmZltpZHhdLmZpbHAsIG9sZF9mcmVxKTsNCj4gPiAr CXdyaXRldmFsX25vY2hlY2soc3lzZnNfZmlsZXNbaWR4XS5maWxwLCBvbGRfZnJlcSk7DQo+ID4g DQo+ID4gwqAJcmV0dXJuIHJldDsNCj4gPiDCoH0NCj4gPiANCj4gPiArLyoNCj4gPiArICogTW9k aWZ5IHNvZnRsaW1pdCBNSU4gYW5kIE1BWCBmcmVxcyB0byB2YWxpZCBhbmQgaW52YWxpZCBsZXZl bHMuDQo+ID4gRGVwZW5kaW5nDQo+ID4gKyAqIG9uIHN1YnRlc3QgcnVuIGRpZmZlcmVudCBjaGVj ayBhZnRlciBlYWNoIG1vZGlmaWNhdGlvbi4NCj4gPiArICovDQo+ID4gwqBzdGF0aWMgdm9pZCBt aW5fbWF4X2NvbmZpZyh2b2lkICgqY2hlY2spKHZvaWQpLCBib29sIGxvYWRfZ3B1KQ0KPiA+IMKg ew0KPiA+IMKgCWludCBmbWlkID0gKG9yaWdmcmVxc1tSUG5dICsgb3JpZ2ZyZXFzW1JQMF0pIC8g MjsNCj4gPiBAQCAtNDExLDc4ICs0MjQsNzggQEAgc3RhdGljIHZvaWQgbWluX21heF9jb25maWco dm9pZCAoKmNoZWNrKSh2b2lkKSwgYm9vbA0KPiA+IGxvYWRfZ3B1KQ0KPiA+IMKgCWNoZWNrKCk7 DQo+ID4gDQo+ID4gwqAJaWd0X2RlYnVnKCJcblNldCBtaW49UlBuIGFuZCBtYXg9UlAwLi4uXG4i KTsNCj4gPiAtCXdyaXRldmFsKHN0dWZmW01JTl0uZmlscCwgb3JpZ2ZyZXFzW1JQbl0pOw0KPiA+ IC0Jd3JpdGV2YWwoc3R1ZmZbTUFYXS5maWxwLCBvcmlnZnJlcXNbUlAwXSk7DQo+ID4gKwl3cml0 ZXZhbChzeXNmc19maWxlc1tNSU5dLmZpbHAsIG9yaWdmcmVxc1tSUG5dKTsNCj4gPiArCXdyaXRl dmFsKHN5c2ZzX2ZpbGVzW01BWF0uZmlscCwgb3JpZ2ZyZXFzW1JQMF0pOw0KPiA+IMKgCWlmIChs b2FkX2dwdSkNCj4gPiDCoAkJZG9fbG9hZF9ncHUoKTsNCj4gPiDCoAljaGVjaygpOw0KPiA+IA0K PiA+IMKgCWlndF9kZWJ1ZygiXG5JbmNyZWFzZSBtaW4gdG8gbWlkcG9pbnQuLi5cbiIpOw0KPiA+ IC0Jd3JpdGV2YWwoc3R1ZmZbTUlOXS5maWxwLCBmbWlkKTsNCj4gPiArCXdyaXRldmFsKHN5c2Zz X2ZpbGVzW01JTl0uZmlscCwgZm1pZCk7DQo+ID4gwqAJaWYgKGxvYWRfZ3B1KQ0KPiA+IMKgCQlk b19sb2FkX2dwdSgpOw0KPiA+IMKgCWNoZWNrKCk7DQo+ID4gDQo+ID4gwqAJaWd0X2RlYnVnKCJc bkluY3JlYXNlIG1pbiB0byBSUDAuLi5cbiIpOw0KPiA+IC0Jd3JpdGV2YWwoc3R1ZmZbTUlOXS5m aWxwLCBvcmlnZnJlcXNbUlAwXSk7DQo+ID4gKwl3cml0ZXZhbChzeXNmc19maWxlc1tNSU5dLmZp bHAsIG9yaWdmcmVxc1tSUDBdKTsNCj4gPiDCoAlpZiAobG9hZF9ncHUpDQo+ID4gwqAJCWRvX2xv YWRfZ3B1KCk7DQo+ID4gwqAJY2hlY2soKTsNCj4gPiANCj4gPiDCoAlpZ3RfZGVidWcoIlxuSW5j cmVhc2UgbWluIGFib3ZlIFJQMCAoaW52YWxpZCkuLi5cbiIpOw0KPiA+IC0Jd3JpdGV2YWxfaW52 YWwoc3R1ZmZbTUlOXS5maWxwLCBvcmlnZnJlcXNbUlAwXSArIDEwMDApOw0KPiA+ICsJd3JpdGV2 YWxfaW52YWwoc3lzZnNfZmlsZXNbTUlOXS5maWxwLCBvcmlnZnJlcXNbUlAwXSArIDEwMDApOw0K PiA+IMKgCWNoZWNrKCk7DQo+ID4gDQo+ID4gwqAJaWd0X2RlYnVnKCJcbkRlY3JlYXNlIG1heCB0 byBSUG4gKGludmFsaWQpLi4uXG4iKTsNCj4gPiAtCXdyaXRldmFsX2ludmFsKHN0dWZmW01BWF0u ZmlscCwgb3JpZ2ZyZXFzW1JQbl0pOw0KPiA+ICsJd3JpdGV2YWxfaW52YWwoc3lzZnNfZmlsZXNb TUFYXS5maWxwLCBvcmlnZnJlcXNbUlBuXSk7DQo+ID4gwqAJY2hlY2soKTsNCj4gPiANCj4gPiDC oAlpZ3RfZGVidWcoIlxuRGVjcmVhc2UgbWluIHRvIG1pZHBvaW50Li4uXG4iKTsNCj4gPiAtCXdy aXRldmFsKHN0dWZmW01JTl0uZmlscCwgZm1pZCk7DQo+ID4gKwl3cml0ZXZhbChzeXNmc19maWxl c1tNSU5dLmZpbHAsIGZtaWQpOw0KPiA+IMKgCWlmIChsb2FkX2dwdSkNCj4gPiDCoAkJZG9fbG9h ZF9ncHUoKTsNCj4gPiDCoAljaGVjaygpOw0KPiA+IA0KPiA+IMKgCWlndF9kZWJ1ZygiXG5EZWNy ZWFzZSBtaW4gdG8gUlBuLi4uXG4iKTsNCj4gPiAtCXdyaXRldmFsKHN0dWZmW01JTl0uZmlscCwg b3JpZ2ZyZXFzW1JQbl0pOw0KPiA+ICsJd3JpdGV2YWwoc3lzZnNfZmlsZXNbTUlOXS5maWxwLCBv cmlnZnJlcXNbUlBuXSk7DQo+ID4gwqAJaWYgKGxvYWRfZ3B1KQ0KPiA+IMKgCQlkb19sb2FkX2dw dSgpOw0KPiA+IMKgCWNoZWNrKCk7DQo+ID4gDQo+ID4gwqAJaWd0X2RlYnVnKCJcbkRlY3JlYXNl IG1pbiBiZWxvdyBSUG4gKGludmFsaWQpLi4uXG4iKTsNCj4gPiAtCXdyaXRldmFsX2ludmFsKHN0 dWZmW01JTl0uZmlscCwgMCk7DQo+ID4gKwl3cml0ZXZhbF9pbnZhbChzeXNmc19maWxlc1tNSU5d LmZpbHAsIDApOw0KPiA+IMKgCWNoZWNrKCk7DQo+ID4gDQo+ID4gwqAJaWd0X2RlYnVnKCJcbkRl Y3JlYXNlIG1heCB0byBtaWRwb2ludC4uLlxuIik7DQo+ID4gLQl3cml0ZXZhbChzdHVmZltNQVhd LmZpbHAsIGZtaWQpOw0KPiA+ICsJd3JpdGV2YWwoc3lzZnNfZmlsZXNbTUFYXS5maWxwLCBmbWlk KTsNCj4gPiDCoAljaGVjaygpOw0KPiA+IA0KPiA+IMKgCWlndF9kZWJ1ZygiXG5EZWNyZWFzZSBt YXggdG8gUlBuLi4uXG4iKTsNCj4gPiAtCXdyaXRldmFsKHN0dWZmW01BWF0uZmlscCwgb3JpZ2Zy ZXFzW1JQbl0pOw0KPiA+ICsJd3JpdGV2YWwoc3lzZnNfZmlsZXNbTUFYXS5maWxwLCBvcmlnZnJl cXNbUlBuXSk7DQo+ID4gwqAJY2hlY2soKTsNCj4gPiANCj4gPiDCoAlpZ3RfZGVidWcoIlxuRGVj cmVhc2UgbWF4IGJlbG93IFJQbiAoaW52YWxpZCkuLi5cbiIpOw0KPiA+IC0Jd3JpdGV2YWxfaW52 YWwoc3R1ZmZbTUFYXS5maWxwLCAwKTsNCj4gPiArCXdyaXRldmFsX2ludmFsKHN5c2ZzX2ZpbGVz W01BWF0uZmlscCwgMCk7DQo+ID4gwqAJY2hlY2soKTsNCj4gPiANCj4gPiDCoAlpZ3RfZGVidWco IlxuSW5jcmVhc2UgbWluIHRvIFJQMCAoaW52YWxpZCkuLi5cbiIpOw0KPiA+IC0Jd3JpdGV2YWxf aW52YWwoc3R1ZmZbTUlOXS5maWxwLCBvcmlnZnJlcXNbUlAwXSk7DQo+ID4gKwl3cml0ZXZhbF9p bnZhbChzeXNmc19maWxlc1tNSU5dLmZpbHAsIG9yaWdmcmVxc1tSUDBdKTsNCj4gPiDCoAljaGVj aygpOw0KPiA+IA0KPiA+IMKgCWlndF9kZWJ1ZygiXG5JbmNyZWFzZSBtYXggdG8gbWlkcG9pbnQu Li5cbiIpOw0KPiA+IC0Jd3JpdGV2YWwoc3R1ZmZbTUFYXS5maWxwLCBmbWlkKTsNCj4gPiArCXdy aXRldmFsKHN5c2ZzX2ZpbGVzW01BWF0uZmlscCwgZm1pZCk7DQo+ID4gwqAJY2hlY2soKTsNCj4g PiANCj4gPiDCoAlpZ3RfZGVidWcoIlxuSW5jcmVhc2UgbWF4IHRvIFJQMC4uLlxuIik7DQo+ID4g LQl3cml0ZXZhbChzdHVmZltNQVhdLmZpbHAsIG9yaWdmcmVxc1tSUDBdKTsNCj4gPiArCXdyaXRl dmFsKHN5c2ZzX2ZpbGVzW01BWF0uZmlscCwgb3JpZ2ZyZXFzW1JQMF0pOw0KPiA+IMKgCWNoZWNr KCk7DQo+ID4gDQo+ID4gwqAJaWd0X2RlYnVnKCJcbkluY3JlYXNlIG1heCBhYm92ZSBSUDAgKGlu dmFsaWQpLi4uXG4iKTsNCj4gPiAtCXdyaXRldmFsX2ludmFsKHN0dWZmW01BWF0uZmlscCwgb3Jp Z2ZyZXFzW1JQMF0gKyAxMDAwKTsNCj4gPiArCXdyaXRldmFsX2ludmFsKHN5c2ZzX2ZpbGVzW01B WF0uZmlscCwgb3JpZ2ZyZXFzW1JQMF0gKyAxMDAwKTsNCj4gPiDCoAljaGVjaygpOw0KPiA+IA0K PiA+IC0Jd3JpdGV2YWwoc3R1ZmZbTUlOXS5maWxwLCBvcmlnZnJlcXNbTUlOXSk7DQo+ID4gLQl3 cml0ZXZhbChzdHVmZltNQVhdLmZpbHAsIG9yaWdmcmVxc1tNQVhdKTsNCj4gPiArCXdyaXRldmFs KHN5c2ZzX2ZpbGVzW01JTl0uZmlscCwgb3JpZ2ZyZXFzW01JTl0pOw0KPiA+ICsJd3JpdGV2YWwo c3lzZnNfZmlsZXNbTUFYXS5maWxwLCBvcmlnZnJlcXNbTUFYXSk7DQo+ID4gwqB9DQo+ID4gDQo+ ID4gwqBzdGF0aWMgdm9pZCBiYXNpY19jaGVjayh2b2lkKQ0KPiA+IEBAIC00OTEsNyArNTA0LDcg QEAgc3RhdGljIHZvaWQgYmFzaWNfY2hlY2sodm9pZCkNCj4gPiANCj4gPiDCoAlyZWFkX2ZyZXFz KGZyZXFzKTsNCj4gPiDCoAlkdW1wKGZyZXFzKTsNCj4gDQo+IEFsbW9zdCBmZWVsIGxpa2Ugd2Ug c2hvdWxkIGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiByZWFkX2FuZF9kdW1wX2ZyZXFzKCnCoA0KPiBp bnN0ZWFkIG9mIGNhbGxpbmcgMiBmdW5jdGlvbnMgbXVsdGlwbGUgdGltZXMuIFdlIHNob3VsZCBr ZWVwIHRoZSBvbGTCoA0KPiByZWFkX2ZyZXFzKCkgc2luY2UgaXQgaXMgY2FsbGVkIGluIGEgbG9v cCBvbiBvbmUgb2NjYXNpb24uIFNvbWV0aGluZyB0b8KgDQo+IHRoaW5rIGFib3V0IG1heWJlPw0K SSBkaXNhZ3JlZS4gVGhvc2UgYXJlIHBlcmZlY3RseSBmaW5lIHR3byBmdW5jdGlvbnMgdGhhdCBo YXZlIHZlcnkgZGVzY3JpcHRpdmUNCm5hbWVzLiBJIHRoaW5rIHRoYXQgaXQgaXMgYSBnb29kIHBy YWN0aWNlIHRvIGhhdmUgb25lIGZ1bmN0aW9uIHRvIGRvIG9ubHkgb25lDQp0aGluZyAoaWYgdGhp cyBtYWtlcyBzZW5zZSkgYmVjYXVzZSBpdCBkb2VzIG5vdCBsaW1pdCBpdHMgcmV1c2UgYW5kIGlz IGVhc2llciB0bw0KdW5kZXJzdGFuZCBieSB0aGUgcmVhZGVyLg0KDQotUmFkZWsNCj4gDQo+ID4g LQljaGVja2l0KGZyZXFzKTsNCj4gPiArCWNoZWNrX2ZyZXFfY29uc3RyYWludHMoZnJlcXMpOw0K PiA+IMKgfQ0KPiA+IA0KPiA+IMKgI2RlZmluZSBJRExFX1dBSVRfVElNRVNURVBfTVNFQyAyNTAN Cj4gPiBAQCAtNTA2LDcgKzUxOSw3IEBAIHN0YXRpYyB2b2lkIGlkbGVfY2hlY2sodm9pZCkNCj4g PiDCoAlkbyB7DQo+ID4gwqAJCXJlYWRfZnJlcXMoZnJlcXMpOw0KPiA+IMKgCQlkdW1wKGZyZXFz KTsNCj4gPiAtCQljaGVja2l0KGZyZXFzKTsNCj4gPiArCQljaGVja19mcmVxX2NvbnN0cmFpbnRz KGZyZXFzKTsNCj4gPiDCoAkJaWYgKGZyZXFzW0NVUl0gPT0gZnJlcXNbUlBuXSkNCj4gPiDCoAkJ CWJyZWFrOw0KPiA+IMKgCQl1c2xlZXAoMTAwMCAqIElETEVfV0FJVF9USU1FU1RFUF9NU0VDKTsN Cj4gPiBAQCAtNTI5LDcgKzU0Miw3IEBAIHN0YXRpYyB2b2lkIGxvYWRlZF9jaGVjayh2b2lkKQ0K PiA+IMKgCWRvIHsNCj4gPiDCoAkJcmVhZF9mcmVxcyhmcmVxcyk7DQo+ID4gwqAJCWR1bXAoZnJl cXMpOw0KPiA+IC0JCWNoZWNraXQoZnJlcXMpOw0KPiA+ICsJCWNoZWNrX2ZyZXFfY29uc3RyYWlu dHMoZnJlcXMpOw0KPiA+IMKgCQlpZiAoZnJlcXNbQ1VSXSA+PSBmcmVxc1tNQVhdKQ0KPiA+IMKg CQkJYnJlYWs7DQo+ID4gwqAJCXVzbGVlcCgxMDAwICogTE9BREVEX1dBSVRfVElNRVNURVBfTVNF Qyk7DQo+ID4gQEAgLTU0Nyw2ICs1NjAsOCBAQCBzdGF0aWMgdm9pZCBzdGFiaWxpemVfY2hlY2so aW50ICpvdXQpDQo+ID4gwqAJaW50IGZyZXFzW05VTUZSRVFdOw0KPiA+IMKgCWludCB3YWl0ID0g MDsNCj4gPiANCj4gPiArCS8qIE1vbml0b3IgZnJlcXVlbmNpZXMgdW50aWwgSFcgd2lsbCBzdGFi aWxpemUgY3VyIGZyZXF1ZW5jeS4NCj4gPiArCcKgKiBJdCBzaG91bGQgaGFwcGVuIHdpdGhpbiBh bGxvdHRlZCB0aW1lICovDQo+ID4gwqAJcmVhZF9mcmVxcyhmcmVxcyk7DQo+ID4gwqAJZHVtcChm cmVxcyk7DQo+ID4gwqAJdXNsZWVwKDEwMDAgKiBTVEFCSUxJWkVfV0FJVF9USU1FU1RFUF9NU0VD KTsNCj4gPiBAQCAtNTczLDcgKzU4OCw3IEBAIHN0YXRpYyB2b2lkIGJvb3N0X2ZyZXEoaW50IGZk LCBpbnQgKmJvb3N0X2ZyZXFzKQ0KPiA+IA0KPiA+IMKgCWZtaWQgPSBnZXRfaHdfcm91bmRlZF9m cmVxKGZtaWQpOw0KPiA+IMKgCS8qIFNldCBtYXggZnJlcSB0byBsZXNzIHRoZW4gYm9vc3QgZnJl cSAqLw0KPiA+IC0Jd3JpdGV2YWwoc3R1ZmZbTUFYXS5maWxwLCBmbWlkKTsNCj4gPiArCXdyaXRl dmFsKHN5c2ZzX2ZpbGVzW01BWF0uZmlscCwgZm1pZCk7DQo+ID4gDQo+ID4gwqAJLyogUHV0IGJv b3N0IG9uIHRoZSBzYW1lIGVuZ2luZSBhcyBsb3cgbG9hZCAqLw0KPiA+IMKgCWVuZ2luZSA9IEk5 MTVfRVhFQ19SRU5ERVI7DQo+ID4gQEAgLTU5Miw3ICs2MDcsNyBAQCBzdGF0aWMgdm9pZCBib29z dF9mcmVxKGludCBmZCwgaW50ICpib29zdF9mcmVxcykNCj4gPiDCoAlpZ3Rfc3Bpbl9iYXRjaF9m cmVlKGZkLCBsb2FkKTsNCj4gPiANCj4gPiDCoAkvKiBTZXQgbWF4IGZyZXEgdG8gb3JpZ2luYWwg c29mdG1heCAqLw0KPiA+IC0Jd3JpdGV2YWwoc3R1ZmZbTUFYXS5maWxwLCBvcmlnZnJlcXNbTUFY XSk7DQo+ID4gKwl3cml0ZXZhbChzeXNmc19maWxlc1tNQVhdLmZpbHAsIG9yaWdmcmVxc1tNQVhd KTsNCj4gPiDCoH0NCj4gPiANCj4gPiDCoHN0YXRpYyB2b2lkIHdhaXRib29zdChpbnQgZmQsIGJv b2wgcmVzZXQpDQo+ID4gQEAgLTYzNCwxMiArNjQ5LDEyIEBAIHN0YXRpYyB2b2lkIHdhaXRib29z dChpbnQgZmQsIGJvb2wgcmVzZXQpDQo+ID4gDQo+ID4gwqBzdGF0aWMgdm9pZCBwbV9ycHNfZXhp dF9oYW5kbGVyKGludCBzaWcpDQo+ID4gwqB7DQo+ID4gLQlpZiAob3JpZ2ZyZXFzW01JTl0gPiBy ZWFkdmFsKHN0dWZmW01BWF0uZmlscCkpIHsNCj4gPiAtCQl3cml0ZXZhbChzdHVmZltNQVhdLmZp bHAsIG9yaWdmcmVxc1tNQVhdKTsNCj4gPiAtCQl3cml0ZXZhbChzdHVmZltNSU5dLmZpbHAsIG9y aWdmcmVxc1tNSU5dKTsNCj4gPiArCWlmIChvcmlnZnJlcXNbTUlOXSA+IHJlYWR2YWwoc3lzZnNf ZmlsZXNbTUFYXS5maWxwKSkgew0KPiA+ICsJCXdyaXRldmFsKHN5c2ZzX2ZpbGVzW01BWF0uZmls cCwgb3JpZ2ZyZXFzW01BWF0pOw0KPiA+ICsJCXdyaXRldmFsKHN5c2ZzX2ZpbGVzW01JTl0uZmls cCwgb3JpZ2ZyZXFzW01JTl0pOw0KPiA+IMKgCX0gZWxzZSB7DQo+ID4gLQkJd3JpdGV2YWwoc3R1 ZmZbTUlOXS5maWxwLCBvcmlnZnJlcXNbTUlOXSk7DQo+ID4gLQkJd3JpdGV2YWwoc3R1ZmZbTUFY XS5maWxwLCBvcmlnZnJlcXNbTUFYXSk7DQo+ID4gKwkJd3JpdGV2YWwoc3lzZnNfZmlsZXNbTUlO XS5maWxwLCBvcmlnZnJlcXNbTUlOXSk7DQo+ID4gKwkJd3JpdGV2YWwoc3lzZnNfZmlsZXNbTUFY XS5maWxwLCBvcmlnZnJlcXNbTUFYXSk7DQo+ID4gwqAJfQ0KPiA+IA0KPiA+IMKgCWxvYWRfaGVs cGVyX2RlaW5pdCgpOw0KPiA+IEBAIC02NTIsNyArNjY3LDcgQEAgaWd0X21haW4NCj4gPiANCj4g PiDCoAlpZ3RfZml4dHVyZSB7DQo+ID4gwqAJCWNvbnN0IGludCBkZXZpY2UgPSBkcm1fZ2V0X2Nh cmQoKTsNCj4gPiAtCQlzdHJ1Y3QganVuayAqanVuayA9IHN0dWZmOw0KPiA+ICsJCXN0cnVjdCBz eXNmc19maWxlICpzeXNmc19maWxlID0gc3lzZnNfZmlsZXM7DQo+ID4gwqAJCWludCByZXQ7DQo+ ID4gDQo+ID4gwqAJCS8qIFVzZSBkcm1fb3Blbl9kcml2ZXIgdG8gdmVyaWZ5IGRldmljZSBleGlz dGVuY2UgKi8NCj4gPiBAQCAtNjYzLDE2ICs2NzgsMTcgQEAgaWd0X21haW4NCj4gPiDCoAkJZG8g ew0KPiA+IMKgCQkJaW50IHZhbCA9IC0xOw0KPiA+IMKgCQkJY2hhciAqcGF0aDsNCj4gPiAtCQkJ cmV0ID0gYXNwcmludGYoJnBhdGgsIHN5c2ZzX2Jhc2VfcGF0aCwgZGV2aWNlLA0KPiA+IGp1bmst Pm5hbWUpOw0KPiA+ICsNCj4gPiArCQkJcmV0ID0gYXNwcmludGYoJnBhdGgsIHN5c2ZzX2Jhc2Vf cGF0aCwgZGV2aWNlLA0KPiA+IHN5c2ZzX2ZpbGUtPm5hbWUpOw0KPiA+IMKgCQkJaWd0X2Fzc2Vy dChyZXQgIT0gLTEpOw0KPiA+IC0JCQlqdW5rLT5maWxwID0gZm9wZW4ocGF0aCwganVuay0+bW9k ZSk7DQo+ID4gLQkJCWlndF9yZXF1aXJlKGp1bmstPmZpbHApOw0KPiA+IC0JCQlzZXRidWYoanVu ay0+ZmlscCwgTlVMTCk7DQo+ID4gKwkJCXN5c2ZzX2ZpbGUtPmZpbHAgPSBmb3BlbihwYXRoLCBz eXNmc19maWxlLT5tb2RlKTsNCj4gPiArCQkJaWd0X3JlcXVpcmUoc3lzZnNfZmlsZS0+ZmlscCk7 DQo+ID4gKwkJCXNldGJ1ZihzeXNmc19maWxlLT5maWxwLCBOVUxMKTsNCj4gPiANCj4gPiAtCQkJ dmFsID0gcmVhZHZhbChqdW5rLT5maWxwKTsNCj4gPiArCQkJdmFsID0gcmVhZHZhbChzeXNmc19m aWxlLT5maWxwKTsNCj4gPiDCoAkJCWlndF9hc3NlcnQodmFsID49IDApOw0KPiA+IC0JCQlqdW5r Kys7DQo+ID4gLQkJfSB3aGlsZSAoanVuay0+bmFtZSAhPSBOVUxMKTsNCj4gPiArCQkJc3lzZnNf ZmlsZSsrOw0KPiA+ICsJCX0gd2hpbGUgKHN5c2ZzX2ZpbGUtPm5hbWUgIT0gTlVMTCk7DQo+ID4g DQo+ID4gwqAJCXJlYWRfZnJlcXMob3JpZ2ZyZXFzKTsNCj4gPiANCj4gPiBAQCAtNjg0LDE4ICs3 MDAsMjIgQEAgaWd0X21haW4NCj4gPiDCoAlpZ3Rfc3VidGVzdCgiYmFzaWMtYXBpIikNCj4gPiDC oAkJbWluX21heF9jb25maWcoYmFzaWNfY2hlY2ssIGZhbHNlKTsNCj4gPiANCj4gPiArCS8qIFZl cmlmeSB0aGUgY29uc3RyYWludHMsIGNoZWNrIGlmIHdlIGNhbiByZWFjaCBpZGxlICovDQo+ID4g wqAJaWd0X3N1YnRlc3QoIm1pbi1tYXgtY29uZmlnLWlkbGUiKQ0KPiA+IMKgCQltaW5fbWF4X2Nv bmZpZyhpZGxlX2NoZWNrLCB0cnVlKTsNCj4gPiANCj4gPiArCS8qIFZlcmlmeSB0aGUgY29uc3Ry YWludHMgd2l0aCBoaWdoIGxvYWQsIGNoZWNrIGlmIHdlIGNhbiByZWFjaCBtYXgNCj4gPiAqLw0K PiA+IMKgCWlndF9zdWJ0ZXN0KCJtaW4tbWF4LWNvbmZpZy1sb2FkZWQiKSB7DQo+ID4gwqAJCWxv YWRfaGVscGVyX3J1bihISUdIKTsNCj4gPiDCoAkJbWluX21heF9jb25maWcobG9hZGVkX2NoZWNr LCBmYWxzZSk7DQo+ID4gwqAJCWxvYWRfaGVscGVyX3N0b3AoKTsNCj4gPiDCoAl9DQo+ID4gDQo+ ID4gKwkvKiBDaGVja3MgaWYgd2UgYWNoaWV2ZSBib29zdCB1c2luZyBnZW1fd2FpdCAqLw0KPiAN Cj4gV2Ugc2hvdWxkIG1lbnRpb24gdGhpcyBpcyBkb2luZyBnZW1fd2FpdCBvbiBhIHNwaW5uaW5n IGJhdGNoLCBoZW5jZSB0aGXCoA0KPiBib29zdC4NCj4gDQo+IE90aGVyIHRoYW4gdGhpcyBhbmQg dGhlIGFib3ZlIGNvbW1lbnQsIExHVE0uDQo+IA0KPiBBY2tlZC1ieTogVmluYXkgQmVsZ2F1bWth ciA8dmluYXkuYmVsZ2F1bWthckBpbnRlbC5jb20+DQo+IA0KPiANCj4gPiDCoAlpZ3Rfc3VidGVz dCgid2FpdGJvb3N0IikNCj4gPiDCoAkJd2FpdGJvb3N0KGRybV9mZCwgZmFsc2UpOw0KPiA+IA0K PiA+ICsJLyogVGVzdCBib29zdCBmcmVxdWVuY3kgYWZ0ZXIgR1BVIHJlc2V0ICovDQo+ID4gwqAJ aWd0X3N1YnRlc3QoInJlc2V0Iikgew0KPiA+IMKgCQlpZ3RfaGFuZ190IGhhbmcgPSBpZ3RfYWxs b3dfaGFuZyhkcm1fZmQsIDAsIDApOw0KPiA+IMKgCQl3YWl0Ym9vc3QoZHJtX2ZkLCB0cnVlKTsN Cj4gPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QNCj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZw0KPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK