From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ser, Simon" Subject: Re: [igt-dev] [PATCH i-g-t] benchmarks/gem_wsim: Heap allocate VLA structs Date: Fri, 24 May 2019 07:45:34 +0000 Message-ID: References: <20190524072551.24429-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190524072551.24429-1-chris@chris-wilson.co.uk> Content-Language: en-US Content-ID: <4D40AA4D01E84F439A963C2AE7D2229A@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" , "chris@chris-wilson.co.uk" Cc: "igt-dev@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE5LTA1LTI0IGF0IDA4OjI1ICswMTAwLCBDaHJpcyBXaWxzb24gd3JvdGU6DQo+ IEFwcGFyZW50bHkgVkxBIHN0cnVjdHMgKGUuZy4gc3RydWN0IHsgaW50IGFycmF5W2NvdW50XSB9 KSBpcyBhIGdjYw0KPiBleHRlbnNpb24gdGhhdCBjbGFuZyByZWZ1c2VzIHRvIHN1cHBvcnQgYXMg aGFuZGxpbmcgbWVtb3J5IGxheW91dCBpcyB0b28NCj4gZGlmZmljdWx0IGZvciBpdC4NCj4gDQo+ IE1vdmUgdGhlIG9uLXN0YWNrIFZMQSB0byB0aGUgaGVhcC4NCg0KSU1ITyB1c2luZyBhbiB1cHBl ciBib3VuZCB3b3VsZCBiZSBtdWNoIHNpbXBsZXIuDQoNCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+DQo+IENjOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPg0KPiAtLS0NCj4gIGJlbmNobWFya3MvZ2VtX3dzaW0u YyB8IDE0NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCj4gIDEg ZmlsZSBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkNCj4gDQo+IGRp ZmYgLS1naXQgYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMN Cj4gaW5kZXggZTJmZmI5M2E5Li4wYTAwMzJiZmYgMTAwNjQ0DQo+IC0tLSBhL2JlbmNobWFya3Mv Z2VtX3dzaW0uYw0KPiArKysgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMNCj4gQEAgLTE0NDEsNiAr MTQ0MSw0OCBAQCBzZXRfY3R4X3NzZXUoc3RydWN0IGN0eCAqY3R4LCB1aW50NjRfdCBzbGljZV9t YXNrKQ0KPiAgCXJldHVybiBzbGljZV9tYXNrOw0KPiAgfQ0KPiAgDQo+ICtzdGF0aWMgc2l6ZV90 IHNpemVvZl9sb2FkX2JhbGFuY2UoaW50IGNvdW50KQ0KPiArew0KPiArCXN0cnVjdCBpOTE1X2Nv bnRleHRfZW5naW5lc19sb2FkX2JhbGFuY2UgKnB0cjsNCj4gKw0KPiArCWFzc2VydChzaXplb2Yo cHRyLT5lbmdpbmVzW2NvdW50XSkgPT0gY291bnQgKiBzaXplb2YocHRyLT5lbmdpbmVzWzBdKSk7 DQo+ICsJcmV0dXJuIHNpemVvZigqcHRyKSArIHNpemVvZihwdHItPmVuZ2luZXNbY291bnRdKTsN Cj4gK30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19sb2FkX2Jh bGFuY2UgKg0KPiArYWxsb2NfbG9hZF9iYWxhbmNlKGludCBjb3VudCkNCj4gK3sNCj4gKwlyZXR1 cm4gY2FsbG9jKDEsIHNpemVvZl9sb2FkX2JhbGFuY2UoY291bnQpKTsNCj4gK30NCj4gKw0KPiAr c3RhdGljIHNpemVfdCBzaXplb2ZfcGFyYW1fZW5naW5lcyhpbnQgY291bnQpDQo+ICt7DQo+ICsJ c3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzICpwdHI7DQo+ICsNCj4gKwlhc3NlcnQo c2l6ZW9mKHB0ci0+ZW5naW5lc1tjb3VudF0pID09IGNvdW50ICogc2l6ZW9mKHB0ci0+ZW5naW5l c1swXSkpOw0KPiArCXJldHVybiBzaXplb2YoKnB0cikgKyBzaXplb2YocHRyLT5lbmdpbmVzW2Nv dW50XSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2Vu Z2luZXMgKg0KPiArYWxsb2NfcGFyYW1fZW5naW5lcyhpbnQgY291bnQpDQo+ICt7DQo+ICsJcmV0 dXJuIGNhbGxvYygxLCBzaXplb2ZfcGFyYW1fZW5naW5lcyhjb3VudCkpOw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgc2l6ZV90IHNpemVvZl9lbmdpbmVzX2JvbmQoaW50IGNvdW50KQ0KPiArew0KPiAr CXN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19ib25kICpwdHI7DQo+ICsNCj4gKwlhc3NlcnQo c2l6ZW9mKHB0ci0+ZW5naW5lc1tjb3VudF0pID09IGNvdW50ICogc2l6ZW9mKHB0ci0+ZW5naW5l c1swXSkpOw0KPiArCXJldHVybiBzaXplb2YoKnB0cikgKyBzaXplb2YocHRyLT5lbmdpbmVzW2Nv dW50XSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2luZXNf Ym9uZCAqDQo+ICthbGxvY19lbmdpbmVzX2JvbmQoaW50IGNvdW50KQ0KPiArew0KPiArCXJldHVy biBjYWxsb2MoMSwgc2l6ZW9mX2VuZ2luZXNfYm9uZChjb3VudCkpOw0KPiArfQ0KPiArDQo+ICBz dGF0aWMgaW50DQo+ICBwcmVwYXJlX3dvcmtsb2FkKHVuc2lnbmVkIGludCBpZCwgc3RydWN0IHdv cmtsb2FkICp3cmssIHVuc2lnbmVkIGludCBmbGFncykNCj4gIHsNCj4gQEAgLTE2NzYsNjYgKzE3 MTgsNTQgQEAgcHJlcGFyZV93b3JrbG9hZCh1bnNpZ25lZCBpbnQgaWQsIHN0cnVjdCB3b3JrbG9h ZCAqd3JrLCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQo+ICAJCX0NCj4gIA0KPiAgCQlpZiAoY3R4LT5l bmdpbmVfbWFwKSB7DQo+IC0JCQlJOTE1X0RFRklORV9DT05URVhUX1BBUkFNX0VOR0lORVMoc2V0 X2VuZ2luZXMsDQo+IC0JCQkJCQkJICBjdHgtPmVuZ2luZV9tYXBfY291bnQgKyAxKTsNCj4gLQkJ CUk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19MT0FEX0JBTEFOQ0UobG9hZF9iYWxhbmNlLA0K PiAtCQkJCQkJCQkgY3R4LT5lbmdpbmVfbWFwX2NvdW50KTsNCj4gKwkJCXN0cnVjdCBpOTE1X2Nv bnRleHRfcGFyYW1fZW5naW5lcyAqc2V0X2VuZ2luZXMgPQ0KPiArCQkJCWFsbG9jX3BhcmFtX2Vu Z2luZXMoY3R4LT5lbmdpbmVfbWFwX2NvdW50ICsgMSk7DQo+ICsJCQlzdHJ1Y3QgaTkxNV9jb250 ZXh0X2VuZ2luZXNfbG9hZF9iYWxhbmNlICpsb2FkX2JhbGFuY2UgPQ0KPiArCQkJCWFsbG9jX2xv YWRfYmFsYW5jZShjdHgtPmVuZ2luZV9tYXBfY291bnQpOw0KPiAgCQkJc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X3BhcmFtIHBhcmFtID0gew0KPiAgCQkJCS5jdHhfaWQgPSBjdHhfaWQsDQo+ ICAJCQkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMsDQo+IC0JCQkJLnNpemUg PSBzaXplb2Yoc2V0X2VuZ2luZXMpLA0KPiAtCQkJCS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRlcigm c2V0X2VuZ2luZXMpLA0KPiArCQkJCS5zaXplID0gc2l6ZW9mX3BhcmFtX2VuZ2luZXMoY3R4LT5l bmdpbmVfbWFwX2NvdW50ICsgMSksDQo+ICsJCQkJLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKHNl dF9lbmdpbmVzKSwNCj4gIAkJCX07DQo+ICsJCQlzdHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2luZXNf Ym9uZCAqbGFzdCA9IE5VTEw7DQo+ICANCj4gIAkJCWlmIChjdHgtPndhbnRzX2JhbGFuY2UpIHsN Cj4gLQkJCQlzZXRfZW5naW5lcy5leHRlbnNpb25zID0NCj4gLQkJCQkJdG9fdXNlcl9wb2ludGVy KCZsb2FkX2JhbGFuY2UpOw0KPiArCQkJCXNldF9lbmdpbmVzLT5leHRlbnNpb25zID0NCj4gKwkJ CQkJdG9fdXNlcl9wb2ludGVyKGxvYWRfYmFsYW5jZSk7DQo+ICANCj4gLQkJCQltZW1zZXQoJmxv YWRfYmFsYW5jZSwgMCwgc2l6ZW9mKGxvYWRfYmFsYW5jZSkpOw0KPiAtCQkJCWxvYWRfYmFsYW5j ZS5iYXNlLm5hbWUgPQ0KPiArCQkJCWxvYWRfYmFsYW5jZS0+YmFzZS5uYW1lID0NCj4gIAkJCQkJ STkxNV9DT05URVhUX0VOR0lORVNfRVhUX0xPQURfQkFMQU5DRTsNCj4gLQkJCQlsb2FkX2JhbGFu Y2UubnVtX3NpYmxpbmdzID0NCj4gKwkJCQlsb2FkX2JhbGFuY2UtPm51bV9zaWJsaW5ncyA9DQo+ ICAJCQkJCWN0eC0+ZW5naW5lX21hcF9jb3VudDsNCj4gIA0KPiAgCQkJCWZvciAoaiA9IDA7IGog PCBjdHgtPmVuZ2luZV9tYXBfY291bnQ7IGorKykNCj4gLQkJCQkJbG9hZF9iYWxhbmNlLmVuZ2lu ZXNbal0gPQ0KPiArCQkJCQlsb2FkX2JhbGFuY2UtPmVuZ2luZXNbal0gPQ0KPiAgCQkJCQkJZ2V0 X2VuZ2luZShjdHgtPmVuZ2luZV9tYXBbal0pOw0KPiAtCQkJfSBlbHNlIHsNCj4gLQkJCQlzZXRf ZW5naW5lcy5leHRlbnNpb25zID0gMDsNCj4gIAkJCX0NCj4gIA0KPiAgCQkJLyogUmVzZXJ2ZSBz bG90IGZvciB2aXJ0dWFsIGVuZ2luZS4gKi8NCj4gLQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbMF0u ZW5naW5lX2NsYXNzID0NCj4gKwkJCXNldF9lbmdpbmVzLT5lbmdpbmVzWzBdLmVuZ2luZV9jbGFz cyA9DQo+ICAJCQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRDsNCj4gLQkJCXNldF9lbmdpbmVz LmVuZ2luZXNbMF0uZW5naW5lX2luc3RhbmNlID0NCj4gKwkJCXNldF9lbmdpbmVzLT5lbmdpbmVz WzBdLmVuZ2luZV9pbnN0YW5jZSA9DQo+ICAJCQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9O T05FOw0KPiAgDQo+ICAJCQlmb3IgKGogPSAxOyBqIDw9IGN0eC0+ZW5naW5lX21hcF9jb3VudDsg aisrKQ0KPiAtCQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbal0gPQ0KPiArCQkJCXNldF9lbmdpbmVz LT5lbmdpbmVzW2pdID0NCj4gIAkJCQkJZ2V0X2VuZ2luZShjdHgtPmVuZ2luZV9tYXBbaiAtIDFd KTsNCj4gIA0KPiArCQkJbGFzdCA9IE5VTEw7DQo+ICAJCQlmb3IgKGogPSAwOyBqIDwgY3R4LT5i b25kX2NvdW50OyBqKyspIHsNCj4gIAkJCQl1bnNpZ25lZCBsb25nIG1hc2sgPSBjdHgtPmJvbmRz W2pdLm1hc2s7DQo+IC0JCQkJSTkxNV9ERUZJTkVfQ09OVEVYVF9FTkdJTkVTX0JPTkQoYm9uZCwN Cj4gLQkJCQkJCQkJIF9fYnVpbHRpbl9wb3Bjb3VudChtYXNrKSk7DQo+IC0JCQkJc3RydWN0IGk5 MTVfY29udGV4dF9lbmdpbmVzX2JvbmQgKnAgPSBOVUxMLCAqcHJldjsNCj4gKwkJCQlzdHJ1Y3Qg aTkxNV9jb250ZXh0X2VuZ2luZXNfYm9uZCAqYm9uZCA9DQo+ICsJCQkJCWFsbG9jX2VuZ2luZXNf Ym9uZChfX2J1aWx0aW5fcG9wY291bnQobWFzaykpOw0KPiAgCQkJCXVuc2lnbmVkIGludCBiLCBl Ow0KPiAgDQo+IC0JCQkJcHJldiA9IHA7DQo+IC0JCQkJcCA9IGFsbG9jYShzaXplb2YoYm9uZCkp Ow0KPiAtCQkJCWFzc2VydChwKTsNCj4gLQkJCQltZW1zZXQocCwgMCwgc2l6ZW9mKGJvbmQpKTsN Cj4gLQ0KPiAtCQkJCWlmIChqID09IDApDQo+IC0JCQkJCWxvYWRfYmFsYW5jZS5iYXNlLm5leHRf ZXh0ZW5zaW9uID0NCj4gLQkJCQkJCXRvX3VzZXJfcG9pbnRlcihwKTsNCj4gLQkJCQllbHNlIGlm IChqIDwgKGN0eC0+Ym9uZF9jb3VudCAtIDEpKQ0KPiAtCQkJCQlwcmV2LT5iYXNlLm5leHRfZXh0 ZW5zaW9uID0NCj4gLQkJCQkJCXRvX3VzZXJfcG9pbnRlcihwKTsNCj4gKwkJCQlib25kLT5iYXNl Lm5leHRfZXh0ZW5zaW9uID0gdG9fdXNlcl9wb2ludGVyKGxhc3QpOw0KPiArCQkJCWJvbmQtPmJh c2UubmFtZSA9IEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9CT05EOw0KPiAgDQo+IC0JCQkJcC0+ YmFzZS5uYW1lID0gSTkxNV9DT05URVhUX0VOR0lORVNfRVhUX0JPTkQ7DQo+IC0JCQkJcC0+dmly dHVhbF9pbmRleCA9IDA7DQo+IC0JCQkJcC0+bWFzdGVyID0gZ2V0X2VuZ2luZShjdHgtPmJvbmRz W2pdLm1hc3Rlcik7DQo+ICsJCQkJYm9uZC0+dmlydHVhbF9pbmRleCA9IDA7DQo+ICsJCQkJYm9u ZC0+bWFzdGVyID0gZ2V0X2VuZ2luZShjdHgtPmJvbmRzW2pdLm1hc3Rlcik7DQo+ICANCj4gIAkJ CQlmb3IgKGIgPSAwLCBlID0gMDsgbWFzazsgZSsrLCBtYXNrID4+PSAxKSB7DQo+ICAJCQkJCXVu c2lnbmVkIGludCBpZHg7DQo+IEBAIC0xNzQzLDQ0ICsxNzczLDU4IEBAIHByZXBhcmVfd29ya2xv YWQodW5zaWduZWQgaW50IGlkLCBzdHJ1Y3Qgd29ya2xvYWQgKndyaywgdW5zaWduZWQgaW50IGZs YWdzKQ0KPiAgCQkJCQlpZiAoIShtYXNrICYgMSkpDQo+ICAJCQkJCQljb250aW51ZTsNCj4gIA0K PiAtCQkJCQlpZHggPSBmaW5kX2VuZ2luZSgmc2V0X2VuZ2luZXMuZW5naW5lc1sxXSwNCj4gKwkJ CQkJaWR4ID0gZmluZF9lbmdpbmUoJnNldF9lbmdpbmVzLT5lbmdpbmVzWzFdLA0KPiAgCQkJCQkJ CSAgY3R4LT5lbmdpbmVfbWFwX2NvdW50LA0KPiAgCQkJCQkJCSAgZSk7DQo+IC0JCQkJCXAtPmVu Z2luZXNbYisrXSA9DQo+IC0JCQkJCQlzZXRfZW5naW5lcy5lbmdpbmVzWzEgKyBpZHhdOw0KPiAr CQkJCQlib25kLT5lbmdpbmVzW2IrK10gPQ0KPiArCQkJCQkJc2V0X2VuZ2luZXMtPmVuZ2luZXNb MSArIGlkeF07DQo+ICAJCQkJfQ0KPiArDQo+ICsJCQkJbGFzdCA9IGJvbmQ7DQo+ICAJCQl9DQo+ ICsJCQlsb2FkX2JhbGFuY2UtPmJhc2UubmV4dF9leHRlbnNpb24gPSB0b191c2VyX3BvaW50ZXIo bGFzdCk7DQo+ICANCj4gIAkJCWdlbV9jb250ZXh0X3NldF9wYXJhbShmZCwgJnBhcmFtKTsNCj4g Kw0KPiArCQkJd2hpbGUgKGxhc3QpIHsNCj4gKwkJCQlzdHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2lu ZXNfYm9uZCAqbmV4dCA9DQo+ICsJCQkJCWZyb21fdXNlcl9wb2ludGVyKGxhc3QtPmJhc2UubmV4 dF9leHRlbnNpb24pOw0KPiArCQkJCWZyZWUobGFzdCk7DQo+ICsJCQkJbGFzdCA9IG5leHQ7DQo+ ICsJCQl9DQo+ICsJCQlmcmVlKGxvYWRfYmFsYW5jZSk7DQo+ICsJCQlmcmVlKHNldF9lbmdpbmVz KTsNCj4gIAkJfSBlbHNlIGlmIChjdHgtPndhbnRzX2JhbGFuY2UpIHsNCj4gIAkJCWNvbnN0IHVu c2lnbmVkIGludCBjb3VudCA9IG51bV9lbmdpbmVzX2luX2NsYXNzKFZDUyk7DQo+IC0JCQlJOTE1 X0RFRklORV9DT05URVhUX0VOR0lORVNfTE9BRF9CQUxBTkNFKGxvYWRfYmFsYW5jZSwNCj4gLQkJ CQkJCQkJIGNvdW50KTsNCj4gLQkJCUk5MTVfREVGSU5FX0NPTlRFWFRfUEFSQU1fRU5HSU5FUyhz ZXRfZW5naW5lcywNCj4gLQkJCQkJCQkgIGNvdW50ICsgMSk7DQo+ICsJCQlzdHJ1Y3QgaTkxNV9j b250ZXh0X2VuZ2luZXNfbG9hZF9iYWxhbmNlICpsb2FkX2JhbGFuY2UgPQ0KPiArCQkJCWFsbG9j X2xvYWRfYmFsYW5jZShjb3VudCk7DQo+ICsJCQlzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2Vu Z2luZXMgKnNldF9lbmdpbmVzID0NCj4gKwkJCQlhbGxvY19wYXJhbV9lbmdpbmVzKGNvdW50ICsg MSk7DQo+ICAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gcGFyYW0gPSB7DQo+ ICAJCQkJLmN0eF9pZCA9IGN0eF9pZCwNCj4gIAkJCQkucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFS QU1fRU5HSU5FUywNCj4gLQkJCQkuc2l6ZSA9IHNpemVvZihzZXRfZW5naW5lcyksDQo+IC0JCQkJ LnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKCZzZXRfZW5naW5lcyksDQo+ICsJCQkJLnNpemUgPSBz aXplb2ZfcGFyYW1fZW5naW5lcyhjb3VudCArIDEpLA0KPiArCQkJCS52YWx1ZSA9IHRvX3VzZXJf cG9pbnRlcihzZXRfZW5naW5lcyksDQo+ICAJCQl9Ow0KPiAgDQo+IC0JCQlzZXRfZW5naW5lcy5l eHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVyKCZsb2FkX2JhbGFuY2UpOw0KPiArCQkJc2V0X2Vu Z2luZXMtPmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIobG9hZF9iYWxhbmNlKTsNCj4gIA0K PiAtCQkJc2V0X2VuZ2luZXMuZW5naW5lc1swXS5lbmdpbmVfY2xhc3MgPQ0KPiArCQkJc2V0X2Vu Z2luZXMtPmVuZ2luZXNbMF0uZW5naW5lX2NsYXNzID0NCj4gIAkJCQlJOTE1X0VOR0lORV9DTEFT U19JTlZBTElEOw0KPiAtCQkJc2V0X2VuZ2luZXMuZW5naW5lc1swXS5lbmdpbmVfaW5zdGFuY2Ug PQ0KPiArCQkJc2V0X2VuZ2luZXMtPmVuZ2luZXNbMF0uZW5naW5lX2luc3RhbmNlID0NCj4gIAkJ CQlJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05PTkU7DQo+IC0JCQlmaWxsX2VuZ2luZXNfY2xh c3MoJnNldF9lbmdpbmVzLmVuZ2luZXNbMV0sIFZDUyk7DQo+ICsJCQlmaWxsX2VuZ2luZXNfY2xh c3MoJnNldF9lbmdpbmVzLT5lbmdpbmVzWzFdLCBWQ1MpOw0KPiAgDQo+IC0JCQltZW1zZXQoJmxv YWRfYmFsYW5jZSwgMCwgc2l6ZW9mKGxvYWRfYmFsYW5jZSkpOw0KPiAtCQkJbG9hZF9iYWxhbmNl LmJhc2UubmFtZSA9DQo+ICsJCQlsb2FkX2JhbGFuY2UtPmJhc2UubmFtZSA9DQo+ICAJCQkJSTkx NV9DT05URVhUX0VOR0lORVNfRVhUX0xPQURfQkFMQU5DRTsNCj4gLQkJCWxvYWRfYmFsYW5jZS5u dW1fc2libGluZ3MgPSBjb3VudDsNCj4gKwkJCWxvYWRfYmFsYW5jZS0+bnVtX3NpYmxpbmdzID0g Y291bnQ7DQo+ICANCj4gLQkJCWZpbGxfZW5naW5lc19jbGFzcygmbG9hZF9iYWxhbmNlLmVuZ2lu ZXNbMF0sIFZDUyk7DQo+ICsJCQlmaWxsX2VuZ2luZXNfY2xhc3MoJmxvYWRfYmFsYW5jZS0+ZW5n aW5lc1swXSwgVkNTKTsNCj4gIA0KPiAgCQkJZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGZkLCAmcGFy YW0pOw0KPiArDQo+ICsJCQlmcmVlKHNldF9lbmdpbmVzKTsNCj4gKwkJCWZyZWUobG9hZF9iYWxh bmNlKTsNCj4gIAkJfQ0KPiAgDQo+ICAJCWlmICh3cmstPnNzZXUpIHsNCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Ser, Simon" Date: Fri, 24 May 2019 07:45:34 +0000 Message-ID: References: <20190524072551.24429-1-chris@chris-wilson.co.uk> In-Reply-To: <20190524072551.24429-1-chris@chris-wilson.co.uk> Content-Language: en-US Content-ID: <4D40AA4D01E84F439A963C2AE7D2229A@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t] benchmarks/gem_wsim: Heap allocate VLA structs List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "intel-gfx@lists.freedesktop.org" , "chris@chris-wilson.co.uk" Cc: "igt-dev@lists.freedesktop.org" , "Ursulin, Tvrtko" List-ID: T24gRnJpLCAyMDE5LTA1LTI0IGF0IDA4OjI1ICswMTAwLCBDaHJpcyBXaWxzb24gd3JvdGU6DQo+ IEFwcGFyZW50bHkgVkxBIHN0cnVjdHMgKGUuZy4gc3RydWN0IHsgaW50IGFycmF5W2NvdW50XSB9 KSBpcyBhIGdjYw0KPiBleHRlbnNpb24gdGhhdCBjbGFuZyByZWZ1c2VzIHRvIHN1cHBvcnQgYXMg aGFuZGxpbmcgbWVtb3J5IGxheW91dCBpcyB0b28NCj4gZGlmZmljdWx0IGZvciBpdC4NCj4gDQo+ IE1vdmUgdGhlIG9uLXN0YWNrIFZMQSB0byB0aGUgaGVhcC4NCg0KSU1ITyB1c2luZyBhbiB1cHBl ciBib3VuZCB3b3VsZCBiZSBtdWNoIHNpbXBsZXIuDQoNCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+DQo+IENjOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPg0KPiAtLS0NCj4gIGJlbmNobWFya3MvZ2VtX3dzaW0u YyB8IDE0NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCj4gIDEg ZmlsZSBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkNCj4gDQo+IGRp ZmYgLS1naXQgYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMN Cj4gaW5kZXggZTJmZmI5M2E5Li4wYTAwMzJiZmYgMTAwNjQ0DQo+IC0tLSBhL2JlbmNobWFya3Mv Z2VtX3dzaW0uYw0KPiArKysgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMNCj4gQEAgLTE0NDEsNiAr MTQ0MSw0OCBAQCBzZXRfY3R4X3NzZXUoc3RydWN0IGN0eCAqY3R4LCB1aW50NjRfdCBzbGljZV9t YXNrKQ0KPiAgCXJldHVybiBzbGljZV9tYXNrOw0KPiAgfQ0KPiAgDQo+ICtzdGF0aWMgc2l6ZV90 IHNpemVvZl9sb2FkX2JhbGFuY2UoaW50IGNvdW50KQ0KPiArew0KPiArCXN0cnVjdCBpOTE1X2Nv bnRleHRfZW5naW5lc19sb2FkX2JhbGFuY2UgKnB0cjsNCj4gKw0KPiArCWFzc2VydChzaXplb2Yo cHRyLT5lbmdpbmVzW2NvdW50XSkgPT0gY291bnQgKiBzaXplb2YocHRyLT5lbmdpbmVzWzBdKSk7 DQo+ICsJcmV0dXJuIHNpemVvZigqcHRyKSArIHNpemVvZihwdHItPmVuZ2luZXNbY291bnRdKTsN Cj4gK30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19sb2FkX2Jh bGFuY2UgKg0KPiArYWxsb2NfbG9hZF9iYWxhbmNlKGludCBjb3VudCkNCj4gK3sNCj4gKwlyZXR1 cm4gY2FsbG9jKDEsIHNpemVvZl9sb2FkX2JhbGFuY2UoY291bnQpKTsNCj4gK30NCj4gKw0KPiAr c3RhdGljIHNpemVfdCBzaXplb2ZfcGFyYW1fZW5naW5lcyhpbnQgY291bnQpDQo+ICt7DQo+ICsJ c3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzICpwdHI7DQo+ICsNCj4gKwlhc3NlcnQo c2l6ZW9mKHB0ci0+ZW5naW5lc1tjb3VudF0pID09IGNvdW50ICogc2l6ZW9mKHB0ci0+ZW5naW5l c1swXSkpOw0KPiArCXJldHVybiBzaXplb2YoKnB0cikgKyBzaXplb2YocHRyLT5lbmdpbmVzW2Nv dW50XSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2Vu Z2luZXMgKg0KPiArYWxsb2NfcGFyYW1fZW5naW5lcyhpbnQgY291bnQpDQo+ICt7DQo+ICsJcmV0 dXJuIGNhbGxvYygxLCBzaXplb2ZfcGFyYW1fZW5naW5lcyhjb3VudCkpOw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgc2l6ZV90IHNpemVvZl9lbmdpbmVzX2JvbmQoaW50IGNvdW50KQ0KPiArew0KPiAr CXN0cnVjdCBpOTE1X2NvbnRleHRfZW5naW5lc19ib25kICpwdHI7DQo+ICsNCj4gKwlhc3NlcnQo c2l6ZW9mKHB0ci0+ZW5naW5lc1tjb3VudF0pID09IGNvdW50ICogc2l6ZW9mKHB0ci0+ZW5naW5l c1swXSkpOw0KPiArCXJldHVybiBzaXplb2YoKnB0cikgKyBzaXplb2YocHRyLT5lbmdpbmVzW2Nv dW50XSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2luZXNf Ym9uZCAqDQo+ICthbGxvY19lbmdpbmVzX2JvbmQoaW50IGNvdW50KQ0KPiArew0KPiArCXJldHVy biBjYWxsb2MoMSwgc2l6ZW9mX2VuZ2luZXNfYm9uZChjb3VudCkpOw0KPiArfQ0KPiArDQo+ICBz dGF0aWMgaW50DQo+ICBwcmVwYXJlX3dvcmtsb2FkKHVuc2lnbmVkIGludCBpZCwgc3RydWN0IHdv cmtsb2FkICp3cmssIHVuc2lnbmVkIGludCBmbGFncykNCj4gIHsNCj4gQEAgLTE2NzYsNjYgKzE3 MTgsNTQgQEAgcHJlcGFyZV93b3JrbG9hZCh1bnNpZ25lZCBpbnQgaWQsIHN0cnVjdCB3b3JrbG9h ZCAqd3JrLCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQo+ICAJCX0NCj4gIA0KPiAgCQlpZiAoY3R4LT5l bmdpbmVfbWFwKSB7DQo+IC0JCQlJOTE1X0RFRklORV9DT05URVhUX1BBUkFNX0VOR0lORVMoc2V0 X2VuZ2luZXMsDQo+IC0JCQkJCQkJICBjdHgtPmVuZ2luZV9tYXBfY291bnQgKyAxKTsNCj4gLQkJ CUk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19MT0FEX0JBTEFOQ0UobG9hZF9iYWxhbmNlLA0K PiAtCQkJCQkJCQkgY3R4LT5lbmdpbmVfbWFwX2NvdW50KTsNCj4gKwkJCXN0cnVjdCBpOTE1X2Nv bnRleHRfcGFyYW1fZW5naW5lcyAqc2V0X2VuZ2luZXMgPQ0KPiArCQkJCWFsbG9jX3BhcmFtX2Vu Z2luZXMoY3R4LT5lbmdpbmVfbWFwX2NvdW50ICsgMSk7DQo+ICsJCQlzdHJ1Y3QgaTkxNV9jb250 ZXh0X2VuZ2luZXNfbG9hZF9iYWxhbmNlICpsb2FkX2JhbGFuY2UgPQ0KPiArCQkJCWFsbG9jX2xv YWRfYmFsYW5jZShjdHgtPmVuZ2luZV9tYXBfY291bnQpOw0KPiAgCQkJc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X3BhcmFtIHBhcmFtID0gew0KPiAgCQkJCS5jdHhfaWQgPSBjdHhfaWQsDQo+ ICAJCQkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMsDQo+IC0JCQkJLnNpemUg PSBzaXplb2Yoc2V0X2VuZ2luZXMpLA0KPiAtCQkJCS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRlcigm c2V0X2VuZ2luZXMpLA0KPiArCQkJCS5zaXplID0gc2l6ZW9mX3BhcmFtX2VuZ2luZXMoY3R4LT5l bmdpbmVfbWFwX2NvdW50ICsgMSksDQo+ICsJCQkJLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKHNl dF9lbmdpbmVzKSwNCj4gIAkJCX07DQo+ICsJCQlzdHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2luZXNf Ym9uZCAqbGFzdCA9IE5VTEw7DQo+ICANCj4gIAkJCWlmIChjdHgtPndhbnRzX2JhbGFuY2UpIHsN Cj4gLQkJCQlzZXRfZW5naW5lcy5leHRlbnNpb25zID0NCj4gLQkJCQkJdG9fdXNlcl9wb2ludGVy KCZsb2FkX2JhbGFuY2UpOw0KPiArCQkJCXNldF9lbmdpbmVzLT5leHRlbnNpb25zID0NCj4gKwkJ CQkJdG9fdXNlcl9wb2ludGVyKGxvYWRfYmFsYW5jZSk7DQo+ICANCj4gLQkJCQltZW1zZXQoJmxv YWRfYmFsYW5jZSwgMCwgc2l6ZW9mKGxvYWRfYmFsYW5jZSkpOw0KPiAtCQkJCWxvYWRfYmFsYW5j ZS5iYXNlLm5hbWUgPQ0KPiArCQkJCWxvYWRfYmFsYW5jZS0+YmFzZS5uYW1lID0NCj4gIAkJCQkJ STkxNV9DT05URVhUX0VOR0lORVNfRVhUX0xPQURfQkFMQU5DRTsNCj4gLQkJCQlsb2FkX2JhbGFu Y2UubnVtX3NpYmxpbmdzID0NCj4gKwkJCQlsb2FkX2JhbGFuY2UtPm51bV9zaWJsaW5ncyA9DQo+ ICAJCQkJCWN0eC0+ZW5naW5lX21hcF9jb3VudDsNCj4gIA0KPiAgCQkJCWZvciAoaiA9IDA7IGog PCBjdHgtPmVuZ2luZV9tYXBfY291bnQ7IGorKykNCj4gLQkJCQkJbG9hZF9iYWxhbmNlLmVuZ2lu ZXNbal0gPQ0KPiArCQkJCQlsb2FkX2JhbGFuY2UtPmVuZ2luZXNbal0gPQ0KPiAgCQkJCQkJZ2V0 X2VuZ2luZShjdHgtPmVuZ2luZV9tYXBbal0pOw0KPiAtCQkJfSBlbHNlIHsNCj4gLQkJCQlzZXRf ZW5naW5lcy5leHRlbnNpb25zID0gMDsNCj4gIAkJCX0NCj4gIA0KPiAgCQkJLyogUmVzZXJ2ZSBz bG90IGZvciB2aXJ0dWFsIGVuZ2luZS4gKi8NCj4gLQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbMF0u ZW5naW5lX2NsYXNzID0NCj4gKwkJCXNldF9lbmdpbmVzLT5lbmdpbmVzWzBdLmVuZ2luZV9jbGFz cyA9DQo+ICAJCQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRDsNCj4gLQkJCXNldF9lbmdpbmVz LmVuZ2luZXNbMF0uZW5naW5lX2luc3RhbmNlID0NCj4gKwkJCXNldF9lbmdpbmVzLT5lbmdpbmVz WzBdLmVuZ2luZV9pbnN0YW5jZSA9DQo+ICAJCQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9O T05FOw0KPiAgDQo+ICAJCQlmb3IgKGogPSAxOyBqIDw9IGN0eC0+ZW5naW5lX21hcF9jb3VudDsg aisrKQ0KPiAtCQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbal0gPQ0KPiArCQkJCXNldF9lbmdpbmVz LT5lbmdpbmVzW2pdID0NCj4gIAkJCQkJZ2V0X2VuZ2luZShjdHgtPmVuZ2luZV9tYXBbaiAtIDFd KTsNCj4gIA0KPiArCQkJbGFzdCA9IE5VTEw7DQo+ICAJCQlmb3IgKGogPSAwOyBqIDwgY3R4LT5i b25kX2NvdW50OyBqKyspIHsNCj4gIAkJCQl1bnNpZ25lZCBsb25nIG1hc2sgPSBjdHgtPmJvbmRz W2pdLm1hc2s7DQo+IC0JCQkJSTkxNV9ERUZJTkVfQ09OVEVYVF9FTkdJTkVTX0JPTkQoYm9uZCwN Cj4gLQkJCQkJCQkJIF9fYnVpbHRpbl9wb3Bjb3VudChtYXNrKSk7DQo+IC0JCQkJc3RydWN0IGk5 MTVfY29udGV4dF9lbmdpbmVzX2JvbmQgKnAgPSBOVUxMLCAqcHJldjsNCj4gKwkJCQlzdHJ1Y3Qg aTkxNV9jb250ZXh0X2VuZ2luZXNfYm9uZCAqYm9uZCA9DQo+ICsJCQkJCWFsbG9jX2VuZ2luZXNf Ym9uZChfX2J1aWx0aW5fcG9wY291bnQobWFzaykpOw0KPiAgCQkJCXVuc2lnbmVkIGludCBiLCBl Ow0KPiAgDQo+IC0JCQkJcHJldiA9IHA7DQo+IC0JCQkJcCA9IGFsbG9jYShzaXplb2YoYm9uZCkp Ow0KPiAtCQkJCWFzc2VydChwKTsNCj4gLQkJCQltZW1zZXQocCwgMCwgc2l6ZW9mKGJvbmQpKTsN Cj4gLQ0KPiAtCQkJCWlmIChqID09IDApDQo+IC0JCQkJCWxvYWRfYmFsYW5jZS5iYXNlLm5leHRf ZXh0ZW5zaW9uID0NCj4gLQkJCQkJCXRvX3VzZXJfcG9pbnRlcihwKTsNCj4gLQkJCQllbHNlIGlm IChqIDwgKGN0eC0+Ym9uZF9jb3VudCAtIDEpKQ0KPiAtCQkJCQlwcmV2LT5iYXNlLm5leHRfZXh0 ZW5zaW9uID0NCj4gLQkJCQkJCXRvX3VzZXJfcG9pbnRlcihwKTsNCj4gKwkJCQlib25kLT5iYXNl Lm5leHRfZXh0ZW5zaW9uID0gdG9fdXNlcl9wb2ludGVyKGxhc3QpOw0KPiArCQkJCWJvbmQtPmJh c2UubmFtZSA9IEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9CT05EOw0KPiAgDQo+IC0JCQkJcC0+ YmFzZS5uYW1lID0gSTkxNV9DT05URVhUX0VOR0lORVNfRVhUX0JPTkQ7DQo+IC0JCQkJcC0+dmly dHVhbF9pbmRleCA9IDA7DQo+IC0JCQkJcC0+bWFzdGVyID0gZ2V0X2VuZ2luZShjdHgtPmJvbmRz W2pdLm1hc3Rlcik7DQo+ICsJCQkJYm9uZC0+dmlydHVhbF9pbmRleCA9IDA7DQo+ICsJCQkJYm9u ZC0+bWFzdGVyID0gZ2V0X2VuZ2luZShjdHgtPmJvbmRzW2pdLm1hc3Rlcik7DQo+ICANCj4gIAkJ CQlmb3IgKGIgPSAwLCBlID0gMDsgbWFzazsgZSsrLCBtYXNrID4+PSAxKSB7DQo+ICAJCQkJCXVu c2lnbmVkIGludCBpZHg7DQo+IEBAIC0xNzQzLDQ0ICsxNzczLDU4IEBAIHByZXBhcmVfd29ya2xv YWQodW5zaWduZWQgaW50IGlkLCBzdHJ1Y3Qgd29ya2xvYWQgKndyaywgdW5zaWduZWQgaW50IGZs YWdzKQ0KPiAgCQkJCQlpZiAoIShtYXNrICYgMSkpDQo+ICAJCQkJCQljb250aW51ZTsNCj4gIA0K PiAtCQkJCQlpZHggPSBmaW5kX2VuZ2luZSgmc2V0X2VuZ2luZXMuZW5naW5lc1sxXSwNCj4gKwkJ CQkJaWR4ID0gZmluZF9lbmdpbmUoJnNldF9lbmdpbmVzLT5lbmdpbmVzWzFdLA0KPiAgCQkJCQkJ CSAgY3R4LT5lbmdpbmVfbWFwX2NvdW50LA0KPiAgCQkJCQkJCSAgZSk7DQo+IC0JCQkJCXAtPmVu Z2luZXNbYisrXSA9DQo+IC0JCQkJCQlzZXRfZW5naW5lcy5lbmdpbmVzWzEgKyBpZHhdOw0KPiAr CQkJCQlib25kLT5lbmdpbmVzW2IrK10gPQ0KPiArCQkJCQkJc2V0X2VuZ2luZXMtPmVuZ2luZXNb MSArIGlkeF07DQo+ICAJCQkJfQ0KPiArDQo+ICsJCQkJbGFzdCA9IGJvbmQ7DQo+ICAJCQl9DQo+ ICsJCQlsb2FkX2JhbGFuY2UtPmJhc2UubmV4dF9leHRlbnNpb24gPSB0b191c2VyX3BvaW50ZXIo bGFzdCk7DQo+ICANCj4gIAkJCWdlbV9jb250ZXh0X3NldF9wYXJhbShmZCwgJnBhcmFtKTsNCj4g Kw0KPiArCQkJd2hpbGUgKGxhc3QpIHsNCj4gKwkJCQlzdHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2lu ZXNfYm9uZCAqbmV4dCA9DQo+ICsJCQkJCWZyb21fdXNlcl9wb2ludGVyKGxhc3QtPmJhc2UubmV4 dF9leHRlbnNpb24pOw0KPiArCQkJCWZyZWUobGFzdCk7DQo+ICsJCQkJbGFzdCA9IG5leHQ7DQo+ ICsJCQl9DQo+ICsJCQlmcmVlKGxvYWRfYmFsYW5jZSk7DQo+ICsJCQlmcmVlKHNldF9lbmdpbmVz KTsNCj4gIAkJfSBlbHNlIGlmIChjdHgtPndhbnRzX2JhbGFuY2UpIHsNCj4gIAkJCWNvbnN0IHVu c2lnbmVkIGludCBjb3VudCA9IG51bV9lbmdpbmVzX2luX2NsYXNzKFZDUyk7DQo+IC0JCQlJOTE1 X0RFRklORV9DT05URVhUX0VOR0lORVNfTE9BRF9CQUxBTkNFKGxvYWRfYmFsYW5jZSwNCj4gLQkJ CQkJCQkJIGNvdW50KTsNCj4gLQkJCUk5MTVfREVGSU5FX0NPTlRFWFRfUEFSQU1fRU5HSU5FUyhz ZXRfZW5naW5lcywNCj4gLQkJCQkJCQkgIGNvdW50ICsgMSk7DQo+ICsJCQlzdHJ1Y3QgaTkxNV9j b250ZXh0X2VuZ2luZXNfbG9hZF9iYWxhbmNlICpsb2FkX2JhbGFuY2UgPQ0KPiArCQkJCWFsbG9j X2xvYWRfYmFsYW5jZShjb3VudCk7DQo+ICsJCQlzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2Vu Z2luZXMgKnNldF9lbmdpbmVzID0NCj4gKwkJCQlhbGxvY19wYXJhbV9lbmdpbmVzKGNvdW50ICsg MSk7DQo+ICAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gcGFyYW0gPSB7DQo+ ICAJCQkJLmN0eF9pZCA9IGN0eF9pZCwNCj4gIAkJCQkucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFS QU1fRU5HSU5FUywNCj4gLQkJCQkuc2l6ZSA9IHNpemVvZihzZXRfZW5naW5lcyksDQo+IC0JCQkJ LnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKCZzZXRfZW5naW5lcyksDQo+ICsJCQkJLnNpemUgPSBz aXplb2ZfcGFyYW1fZW5naW5lcyhjb3VudCArIDEpLA0KPiArCQkJCS52YWx1ZSA9IHRvX3VzZXJf cG9pbnRlcihzZXRfZW5naW5lcyksDQo+ICAJCQl9Ow0KPiAgDQo+IC0JCQlzZXRfZW5naW5lcy5l eHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVyKCZsb2FkX2JhbGFuY2UpOw0KPiArCQkJc2V0X2Vu Z2luZXMtPmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIobG9hZF9iYWxhbmNlKTsNCj4gIA0K PiAtCQkJc2V0X2VuZ2luZXMuZW5naW5lc1swXS5lbmdpbmVfY2xhc3MgPQ0KPiArCQkJc2V0X2Vu Z2luZXMtPmVuZ2luZXNbMF0uZW5naW5lX2NsYXNzID0NCj4gIAkJCQlJOTE1X0VOR0lORV9DTEFT U19JTlZBTElEOw0KPiAtCQkJc2V0X2VuZ2luZXMuZW5naW5lc1swXS5lbmdpbmVfaW5zdGFuY2Ug PQ0KPiArCQkJc2V0X2VuZ2luZXMtPmVuZ2luZXNbMF0uZW5naW5lX2luc3RhbmNlID0NCj4gIAkJ CQlJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05PTkU7DQo+IC0JCQlmaWxsX2VuZ2luZXNfY2xh c3MoJnNldF9lbmdpbmVzLmVuZ2luZXNbMV0sIFZDUyk7DQo+ICsJCQlmaWxsX2VuZ2luZXNfY2xh c3MoJnNldF9lbmdpbmVzLT5lbmdpbmVzWzFdLCBWQ1MpOw0KPiAgDQo+IC0JCQltZW1zZXQoJmxv YWRfYmFsYW5jZSwgMCwgc2l6ZW9mKGxvYWRfYmFsYW5jZSkpOw0KPiAtCQkJbG9hZF9iYWxhbmNl LmJhc2UubmFtZSA9DQo+ICsJCQlsb2FkX2JhbGFuY2UtPmJhc2UubmFtZSA9DQo+ICAJCQkJSTkx NV9DT05URVhUX0VOR0lORVNfRVhUX0xPQURfQkFMQU5DRTsNCj4gLQkJCWxvYWRfYmFsYW5jZS5u dW1fc2libGluZ3MgPSBjb3VudDsNCj4gKwkJCWxvYWRfYmFsYW5jZS0+bnVtX3NpYmxpbmdzID0g Y291bnQ7DQo+ICANCj4gLQkJCWZpbGxfZW5naW5lc19jbGFzcygmbG9hZF9iYWxhbmNlLmVuZ2lu ZXNbMF0sIFZDUyk7DQo+ICsJCQlmaWxsX2VuZ2luZXNfY2xhc3MoJmxvYWRfYmFsYW5jZS0+ZW5n aW5lc1swXSwgVkNTKTsNCj4gIA0KPiAgCQkJZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGZkLCAmcGFy YW0pOw0KPiArDQo+ICsJCQlmcmVlKHNldF9lbmdpbmVzKTsNCj4gKwkJCWZyZWUobG9hZF9iYWxh bmNlKTsNCj4gIAkJfQ0KPiAgDQo+ICAJCWlmICh3cmstPnNzZXUpIHsNCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==