From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH i-g-t 24/24] i915/gem_exec_balancer: Exercise bonded pairs Date: Fri, 22 Mar 2019 09:21:55 +0000 Message-ID: <20190322092155.1656-24-chris@chris-wilson.co.uk> References: <20190322092155.1656-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: <20190322092155.1656-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: intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIHN1Ym1pdC1mZW5jZSArIGxvYWRfYmFsYW5jaW5nIGFwaXMgYWxsb3cgZm9yIHVzIHRvIGV4 ZWN1dGUgYSBuYW1lZApwYWlyIG9mIGVuZ2luZXMgaW4gcGFyYWxsZWw7IHRoYXQgdGhpcyBieSBz dWJtaXR0aW5nIGEgcmVxdWVzdCB0byBvbmUKZW5naW5lLCB3ZSBjYW4gdGhlbiB1c2UgdGhlIGdl bmVyYXRlZCBzdWJtaXQtZmVuY2UgdG8gc3VibWl0IGEgc2Vjb25kCnJlcXVlc3QgdG8gYW5vdGhl ciBlbmdpbmUgYW5kIGhhdmUgaXQgZXhlY3V0ZSBhdCB0aGUgc2FtZSB0aW1lLgpGdXJ0aGVybW9y ZSwgYnkgc3BlY2lmeWluZyBib25kZWQgcGFpcnMsIHdlIGNhbiBkaXJlY3QgdGhlIHZpcnR1YWwK ZW5naW5lIHRvIHVzZSBhIHBhcnRpY3VsYXIgZW5naW5lIGluIHBhcmFsbGVsIHRvIHRoZSBmaXJz dCByZXF1ZXN0LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxz b24uY28udWs+Ci0tLQogdGVzdHMvaTkxNS9nZW1fZXhlY19iYWxhbmNlci5jIHwgMjM0ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDIyNSBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNf YmFsYW5jZXIuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYwppbmRleCA1NGY1MWVl MjMuLmNlZmUyMDRiNCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19iYWxhbmNlci5j CisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYwpAQCAtMTAyLDEyICsxMDIsNDEg QEAgbGlzdF9lbmdpbmVzKGludCBpOTE1LCB1aW50MzJfdCBjbGFzc19tYXNrLCB1bnNpZ25lZCBp bnQgKm91dCkKIAlyZXR1cm4gZW5naW5lczsKIH0KIAorc3RhdGljIGludCBfX3NldF9lbmdpbmVz KGludCBpOTE1LCB1aW50MzJfdCBjdHgsCisJCQkgY29uc3Qgc3RydWN0IGNsYXNzX2luc3RhbmNl ICpjaSwKKwkJCSB1bnNpZ25lZCBpbnQgY291bnQpCit7CisJSTkxNV9ERUZJTkVfQ09OVEVYVF9Q QVJBTV9FTkdJTkVTKGVuZ2luZXMsIGNvdW50KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRl eHRfcGFyYW0gcCA9IHsKKwkJLmN0eF9pZCA9IGN0eCwKKwkJLnBhcmFtID0gSTkxNV9DT05URVhU X1BBUkFNX0VOR0lORVMsCisJCS5zaXplID0gc2l6ZW9mKGVuZ2luZXMpLAorCQkudmFsdWUgPSB0 b191c2VyX3BvaW50ZXIoJmVuZ2luZXMpCisJfTsKKworCWVuZ2luZXMuZXh0ZW5zaW9ucyA9IDA7 CisJbWVtY3B5KGVuZ2luZXMuY2xhc3NfaW5zdGFuY2UsIGNpLCBzaXplb2YoZW5naW5lcy5jbGFz c19pbnN0YW5jZSkpOworCisJcmV0dXJuIF9fZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZw KTsKK30KKworc3RhdGljIHZvaWQgc2V0X2VuZ2luZXMoaW50IGk5MTUsIHVpbnQzMl90IGN0eCwK KwkJCWNvbnN0IHN0cnVjdCBjbGFzc19pbnN0YW5jZSAqY2ksCisJCQl1bnNpZ25lZCBpbnQgY291 bnQpCit7CisJaWd0X2Fzc2VydF9lcShfX3NldF9lbmdpbmVzKGk5MTUsIGN0eCwgY2ksIGNvdW50 KSwgMCk7Cit9CisKIHN0YXRpYyBpbnQgX19zZXRfbG9hZF9iYWxhbmNlcihpbnQgaTkxNSwgdWlu dDMyX3QgY3R4LAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBjbGFzc19pbnN0YW5jZSAqY2ksCi0J CQkgICAgICAgdW5zaWduZWQgaW50IGNvdW50KQorCQkJICAgICAgIHVuc2lnbmVkIGludCBjb3Vu dCwKKwkJCSAgICAgICB2b2lkICpleHQpCiB7CiAJc3RydWN0IGk5MTVfY29udGV4dF9lbmdpbmVz X2xvYWRfYmFsYW5jZSBiYWxhbmNlciA9IHsKLQkJeyAubmFtZSA9IEk5MTVfQ09OVEVYVF9FTkdJ TkVTX0VYVF9MT0FEX0JBTEFOQ0UgfSwKKwkJeworCQkJLm5leHRfZXh0ZW5zaW9uID0gdG9fdXNl cl9wb2ludGVyKGV4dCksCisJCQkubmFtZSA9IEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9MT0FE X0JBTEFOQ0UKKwkJfSwKIAkJLmVuZ2luZXNfbWFzayA9IH4wdWxsLAogCX07CiAJSTkxNV9ERUZJ TkVfQ09OVEVYVF9QQVJBTV9FTkdJTkVTKGVuZ2luZXMsIGNvdW50ICsgMSk7CkBAIC0xMjgsOSAr MTU3LDEwIEBAIHN0YXRpYyBpbnQgX19zZXRfbG9hZF9iYWxhbmNlcihpbnQgaTkxNSwgdWludDMy X3QgY3R4LAogCiBzdGF0aWMgdm9pZCBzZXRfbG9hZF9iYWxhbmNlcihpbnQgaTkxNSwgdWludDMy X3QgY3R4LAogCQkJICAgICAgY29uc3Qgc3RydWN0IGNsYXNzX2luc3RhbmNlICpjaSwKLQkJCSAg ICAgIHVuc2lnbmVkIGludCBjb3VudCkKKwkJCSAgICAgIHVuc2lnbmVkIGludCBjb3VudCwKKwkJ CSAgICAgIHZvaWQgKmV4dCkKIHsKLQlpZ3RfYXNzZXJ0X2VxKF9fc2V0X2xvYWRfYmFsYW5jZXIo aTkxNSwgY3R4LCBjaSwgY291bnQpLCAwKTsKKwlpZ3RfYXNzZXJ0X2VxKF9fc2V0X2xvYWRfYmFs YW5jZXIoaTkxNSwgY3R4LCBjaSwgY291bnQsIGV4dCksIDApOwogfQogCiBzdGF0aWMgdWludDMy X3QgbG9hZF9iYWxhbmNlcl9jcmVhdGUoaW50IGk5MTUsCkBAIC0xNDAsNyArMTcwLDcgQEAgc3Rh dGljIHVpbnQzMl90IGxvYWRfYmFsYW5jZXJfY3JlYXRlKGludCBpOTE1LAogCXVpbnQzMl90IGN0 eDsKIAogCWN0eCA9IGdlbV9jb250ZXh0X2NyZWF0ZShpOTE1KTsKLQlzZXRfbG9hZF9iYWxhbmNl cihpOTE1LCBjdHgsIGNpLCBjb3VudCk7CisJc2V0X2xvYWRfYmFsYW5jZXIoaTkxNSwgY3R4LCBj aSwgY291bnQsIE5VTEwpOwogCiAJcmV0dXJuIGN0eDsKIH0KQEAgLTI3NSw2ICszMDUsNzQgQEAg c3RhdGljIHZvaWQgaW52YWxpZF9iYWxhbmNlcihpbnQgaTkxNSkKIAlmcmVlKGNpKTsKIH0KIAor c3RhdGljIHZvaWQgaW52YWxpZF9ib25kcyhpbnQgaTkxNSkKK3sKKwlzdHJ1Y3QgaTkxNV9jb250 ZXh0X2VuZ2luZXNfYm9uZCBib25kc1sxNl07CisJSTkxNV9ERUZJTkVfQ09OVEVYVF9QQVJBTV9F TkdJTkVTKGVuZ2luZXMsIDEpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBw ID0geworCQkuY3R4X2lkID0gZ2VtX2NvbnRleHRfY3JlYXRlKGk5MTUpLAorCQkucGFyYW0gPSBJ OTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUywKKwkJLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKCZl bmdpbmVzKSwKKwkJLnNpemUgPSBzaXplb2YoZW5naW5lcyksCisJfTsKKwl1aW50MzJfdCBoYW5k bGU7CisJdm9pZCAqcHRyOworCisJbWVtc2V0KCZlbmdpbmVzLCAwLCBzaXplb2YoZW5naW5lcykp OworCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CisKKwltZW1zZXQoYm9uZHMsIDAs IHNpemVvZihib25kcykpOworCWZvciAoaW50IG4gPSAwOyBuIDwgQVJSQVlfU0laRShib25kcyk7 IG4rKykgeworCQlib25kc1tuXS5iYXNlLm5hbWUgPSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRf Qk9ORDsKKwkJYm9uZHNbbl0uYmFzZS5uZXh0X2V4dGVuc2lvbiA9CisJCQluID8gdG9fdXNlcl9w b2ludGVyKCZib25kc1tuIC0gMV0pIDogMDsKKwkJYm9uZHNbbl0uc2libGluZ19tYXNrID0gMHgx OworCX0KKwllbmdpbmVzLmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIoJmJvbmRzKTsKKwln ZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOworCisJYm9uZHNbMF0uYmFzZS5uZXh0X2V4 dGVuc2lvbiA9IC0xdWxsOworCWlndF9hc3NlcnRfZXEoX19nZW1fY29udGV4dF9zZXRfcGFyYW0o aTkxNSwgJnApLCAtRUZBVUxUKTsKKworCWJvbmRzWzBdLmJhc2UubmV4dF9leHRlbnNpb24gPSB0 b191c2VyX3BvaW50ZXIoJmJvbmRzWzBdKTsKKwlpZ3RfYXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRf c2V0X3BhcmFtKGk5MTUsICZwKSwgLUUyQklHKTsKKworCWVuZ2luZXMuZXh0ZW5zaW9ucyA9IHRv X3VzZXJfcG9pbnRlcigmYm9uZHNbMV0pOworCWlndF9hc3NlcnRfZXEoX19nZW1fY29udGV4dF9z ZXRfcGFyYW0oaTkxNSwgJnApLCAtRTJCSUcpOworCWJvbmRzWzBdLmJhc2UubmV4dF9leHRlbnNp b24gPSAwOworCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CisKKwloYW5kbGUgPSBn ZW1fY3JlYXRlKGk5MTUsIDQwOTYgKiAzKTsKKwlwdHIgPSBnZW1fbW1hcF9fZ3R0KGk5MTUsIGhh bmRsZSwgNDA5NiAqIDMsIFBST1RfV1JJVEUpOworCWdlbV9jbG9zZShpOTE1LCBoYW5kbGUpOwor CisJbWVtY3B5KHB0ciArIDQwOTYsICZib25kc1swXSwgc2l6ZW9mKGJvbmRzWzBdKSk7CisJZW5n aW5lcy5leHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVyKHB0cikgKyA0MDk2OworCWdlbV9jb250 ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CisKKwltZW1jcHkocHRyLCAmYm9uZHNbMF0sIHNpemVv Zihib25kc1swXSkpOworCWJvbmRzWzBdLmJhc2UubmV4dF9leHRlbnNpb24gPSB0b191c2VyX3Bv aW50ZXIocHRyKTsKKwltZW1jcHkocHRyICsgNDA5NiwgJmJvbmRzWzBdLCBzaXplb2YoYm9uZHNb MF0pKTsKKwlnZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOworCisJbXVubWFwKHB0ciwg NDA5Nik7CisJaWd0X2Fzc2VydF9lcShfX2dlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCks IC1FRkFVTFQpOworCisJYm9uZHNbMF0uYmFzZS5uZXh0X2V4dGVuc2lvbiA9IDA7CisJbWVtY3B5 KHB0ciArIDgxOTIsICZib25kc1swXSwgc2l6ZW9mKGJvbmRzWzBdKSk7CisJYm9uZHNbMF0uYmFz ZS5uZXh0X2V4dGVuc2lvbiA9IHRvX3VzZXJfcG9pbnRlcihwdHIpICsgODE5MjsKKwltZW1jcHko cHRyICsgNDA5NiwgJmJvbmRzWzBdLCBzaXplb2YoYm9uZHNbMF0pKTsKKwlnZW1fY29udGV4dF9z ZXRfcGFyYW0oaTkxNSwgJnApOworCisJbXVubWFwKHB0ciArIDgxOTIsIDQwOTYpOworCWlndF9h c3NlcnRfZXEoX19nZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApLCAtRUZBVUxUKTsKKwor CW11bm1hcChwdHIgKyA0MDk2LCA0MDk2KTsKKwlpZ3RfYXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRf c2V0X3BhcmFtKGk5MTUsICZwKSwgLUVGQVVMVCk7CisKKwlnZW1fY29udGV4dF9kZXN0cm95KGk5 MTUsIHAuY3R4X2lkKTsKK30KKwogc3RhdGljIHZvaWQga2lja19rdGhyZWFkcyhpbnQgcGVyaW9k X3VzKQogewogCXNjaGVkX3lpZWxkKCk7CkBAIC0zODQsNyArNDgyLDcgQEAgc3RhdGljIHZvaWQg aW5kaXZpZHVhbChpbnQgaTkxNSkKIAogCQlmb3IgKGludCBwYXNzID0gMDsgcGFzcyA8IGNvdW50 OyBwYXNzKyspIHsgLyogYXBwcm94LiBjb3VudCEgKi8KIAkJCWlndF9wZXJtdXRlX2FycmF5KGNp LCBjb3VudCwgaWd0X2V4Y2hhbmdlX2ludDY0KTsKLQkJCXNldF9sb2FkX2JhbGFuY2VyKGk5MTUs IGN0eCwgY2ksIGNvdW50KTsKKwkJCXNldF9sb2FkX2JhbGFuY2VyKGk5MTUsIGN0eCwgY2ksIGNv dW50LCBOVUxMKTsKIAkJCWZvciAodW5zaWduZWQgaW50IG4gPSAwOyBuIDwgY291bnQ7IG4rKykK IAkJCQljaGVja19pbmRpdmlkdWFsX2VuZ2luZShpOTE1LCBjdHgsIGNpLCBuKTsKIAkJfQpAQCAt Mzk2LDYgKzQ5NCwxMTUgQEAgc3RhdGljIHZvaWQgaW5kaXZpZHVhbChpbnQgaTkxNSkKIAlnZW1f cXVpZXNjZW50X2dwdShpOTE1KTsKIH0KIAorc3RhdGljIHZvaWQgYm9uZGVkKGludCBpOTE1LCB1 bnNpZ25lZCBpbnQgZmxhZ3MpCisjZGVmaW5lIENPUksgMHgxCit7CisJc3RydWN0IGk5MTVfY29u dGV4dF9lbmdpbmVzX2JvbmQgYm9uZHNbMTZdOworCXN0cnVjdCBjbGFzc19pbnN0YW5jZSAqbWFz dGVyX2VuZ2luZXM7CisJdWludDMyX3QgbWFzdGVyOworCisJLyoKKwkgKiBJOTE1X0NPTlRFWFRf UEFSQU1fRU5HSU5FIHByb3ZpZGVzIGFuIGV4dGVuc2lvbiB0aGF0IGFsbG93cyB1cworCSAqIHRv IHNwZWNpZnkgd2hpY2ggZW5naW5lKHMpIHRvIHBhaXIgd2l0aCBhIHBhcmFsbGVsIChFWEVDX1NV Qk1JVCkKKwkgKiByZXF1ZXN0IHN1Ym1pdHRlZCB0byBhbm90aGVyIGVuZ2luZS4KKwkgKi8KKwor CW1hc3RlciA9IGdlbV9xdWV1ZV9jcmVhdGUoaTkxNSk7CisKKwltZW1zZXQoYm9uZHMsIDAsIHNp emVvZihib25kcykpOworCWZvciAoaW50IG4gPSAwOyBuIDwgQVJSQVlfU0laRShib25kcyk7IG4r KykgeworCQlib25kc1tuXS5iYXNlLm5hbWUgPSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfQk9O RDsKKwkJYm9uZHNbbl0uYmFzZS5uZXh0X2V4dGVuc2lvbiA9CisJCQluID8gdG9fdXNlcl9wb2lu dGVyKCZib25kc1tuIC0gMV0pIDogMDsKKwkJYm9uZHNbbl0uc2libGluZ19tYXNrID0gMSA8PCBu OworCX0KKworCWZvciAoaW50IG1hc2sgPSAwOyBtYXNrIDwgMzI7IG1hc2srKykgeworCQl1bnNp Z25lZCBpbnQgY291bnQsIGxpbWl0OworCQlzdHJ1Y3QgY2xhc3NfaW5zdGFuY2UgKnNpYmxpbmdz OworCQl1aW50MzJfdCBjdHg7CisJCWludCBuOworCisJCXNpYmxpbmdzID0gbGlzdF9lbmdpbmVz KGk5MTUsIDF1IDw8IG1hc2ssICZjb3VudCk7CisJCWlmICghc2libGluZ3MpCisJCQljb250aW51 ZTsKKworCQlpZiAoY291bnQgPCAyKSB7CisJCQlmcmVlKHNpYmxpbmdzKTsKKwkJCWNvbnRpbnVl OworCQl9CisKKwkJaWd0X2RlYnVnKCJGb3VuZCAlZCBlbmdpbmVzIG9mIGNsYXNzICVkXG4iLCBj b3VudCwgbWFzayk7CisKKwkJbWFzdGVyX2VuZ2luZXMgPSBsaXN0X2VuZ2luZXMoaTkxNSwgfigx dSA8PCBtYXNrKSwgJmxpbWl0KTsKKwkJc2V0X2VuZ2luZXMoaTkxNSwgbWFzdGVyLCBtYXN0ZXJf ZW5naW5lcywgbGltaXQpOworCisJCWxpbWl0ID0gbWluKGNvdW50LCBsaW1pdCk7CisJCWZvciAo biA9IDA7IG4gPCBsaW1pdDsgbisrKSB7CisJCQlib25kc1tuXS5tYXN0ZXJfY2xhc3MgPSBtYXN0 ZXJfZW5naW5lc1tuXS5jbGFzczsKKwkJCWJvbmRzW25dLm1hc3Rlcl9pbnN0YW5jZSA9IG1hc3Rl cl9lbmdpbmVzW25dLmluc3RhbmNlOworCQl9CisKKwkJY3R4ID0gZ2VtX2NvbnRleHRfY2xvbmUo aTkxNSwKKwkJCQkgICAgICAgCW1hc3RlciwgSTkxNV9DT05URVhUX0NMT05FX1ZNLAorCQkJCQlJ OTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1NJTkdMRV9USU1FTElORSk7CisJCXNldF9sb2FkX2Jh bGFuY2VyKGk5MTUsIGN0eCwgc2libGluZ3MsIGNvdW50LCAmYm9uZHNbbGltaXQgLSAxXSk7CisK KwkJZm9yIChuID0gMDsgbiA8IGxpbWl0OyBuKyspIHsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY2J1ZmZlcjIgZWI7CisJCQlJR1RfQ09SS19IQU5ETEUoY29yayk7CisJCQlpZ3Rfc3Bpbl90 ICpzcGluLCAqcGx1ZzsKKwkJCWRvdWJsZSBsb2FkOworCQkJaW50IHBtdTsKKworCQkJaWd0X2Fz c2VydChzaWJsaW5nc1tuXS5jbGFzcyAhPSBtYXN0ZXJfZW5naW5lc1tuXS5jbGFzcyk7CisKKwkJ CXBtdSA9IHBlcmZfaTkxNV9vcGVuKEk5MTVfUE1VX0VOR0lORV9CVVNZKHNpYmxpbmdzW25dLmNs YXNzLAorCQkJCQkJCQkgIHNpYmxpbmdzW25dLmluc3RhbmNlKSk7CisKKwkJCXBsdWcgPSBOVUxM OworCQkJaWYgKGZsYWdzICYgQ09SSykgeworCQkJCXBsdWcgPSBfX2lndF9zcGluX2JhdGNoX25l dyhpOTE1LAorCQkJCQkJCSAgICAuY3R4ID0gbWFzdGVyLAorCQkJCQkJCSAgICAuZW5naW5lID0g biwKKwkJCQkJCQkgICAgLmRlcGVuZGVuY3kgPSBpZ3RfY29ya19wbHVnKCZjb3JrLCBpOTE1KSk7 CisJCQl9CisKKwkJCXNwaW4gPSBfX2lndF9zcGluX2JhdGNoX25ldyhpOTE1LAorCQkJCQkJICAg IC5jdHggPSBtYXN0ZXIsCisJCQkJCQkgICAgLmVuZ2luZSA9IG4sCisJCQkJCQkgICAgLmZsYWdz ID0gSUdUX1NQSU5fRkVOQ0VfT1VUKTsKKworCQkJZWIgPSBzcGluLT5leGVjYnVmOworCQkJZWIu cnN2ZDEgPSBjdHg7CisJCQllYi5yc3ZkMiA9IHNwaW4tPm91dF9mZW5jZTsKKwkJCWViLmZsYWdz ID0gSTkxNV9FWEVDX0ZFTkNFX1NVQk1JVDsKKwkJCWdlbV9leGVjYnVmKGk5MTUsICZlYik7CisK KwkJCWlmIChwbHVnKSB7CisJCQkJaWd0X2NvcmtfdW5wbHVnKCZjb3JrKTsKKwkJCQlpZ3Rfc3Bp bl9iYXRjaF9mcmVlKGk5MTUsIHBsdWcpOworCQkJfQorCisJCQlsb2FkID0gbWVhc3VyZV9sb2Fk KHBtdSwgMTAwMDApOworCQkJaWd0X3NwaW5fYmF0Y2hfZnJlZShpOTE1LCBzcGluKTsKKworCQkJ Y2xvc2UocG11KTsKKworCQkJaWd0X2Fzc2VydF9mKGxvYWQgPiAwLjkwLAorCQkJCSAgICAgImVu Z2luZSAlZCAoY2xhc3M6aW5zdGFuY2UgJWQ6JWQpIHdhcyBmb3VuZCB0byBiZSBvbmx5ICUuMWYl JSBidXN5XG4iLAorCQkJCSAgICAgbiwgc2libGluZ3Nbbl0uY2xhc3MsIHNpYmxpbmdzW25dLmlu c3RhbmNlLAorCQkJCSAgICAgbG9hZCoxMDApOworCQl9CisKKwkJZ2VtX2NvbnRleHRfZGVzdHJv eShpOTE1LCBjdHgpOworCQlmcmVlKG1hc3Rlcl9lbmdpbmVzKTsKKwkJZnJlZShzaWJsaW5ncyk7 CisJfQorCisJZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1LCBtYXN0ZXIpOworfQorCiBzdGF0aWMg aW50IGFkZF9wbXUoaW50IHBtdSwgY29uc3Qgc3RydWN0IGNsYXNzX2luc3RhbmNlICpjaSkKIHsK IAlyZXR1cm4gcGVyZl9pOTE1X29wZW5fZ3JvdXAoSTkxNV9QTVVfRU5HSU5FX0JVU1koY2ktPmNs YXNzLApAQCAtNjk4LDcgKzkwNSw3IEBAIHN0YXRpYyB2b2lkIHNlbWFwaG9yZShpbnQgaTkxNSkK IAkJY291bnQgPSBBUlJBWV9TSVpFKGJsb2NrKTsKIAogCQlmb3IgKGludCBpID0gMDsgaSA8IGNv dW50OyBpKyspIHsKLQkJCXNldF9sb2FkX2JhbGFuY2VyKGk5MTUsIGJsb2NrW2ldLCBjaSwgY291 bnQpOworCQkJc2V0X2xvYWRfYmFsYW5jZXIoaTkxNSwgYmxvY2tbaV0sIGNpLCBjb3VudCwgTlVM TCk7CiAJCQlzcGluW2ldID0gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoaTkxNSwKIAkJCQkJCSAgICAg ICAuY3R4ID0gYmxvY2tbaV0sCiAJCQkJCQkgICAgICAgLmRlcGVuZGVuY3kgPSBzY3JhdGNoKTsK QEAgLTcwOSw3ICs5MTYsNyBAQCBzdGF0aWMgdm9pZCBzZW1hcGhvcmUoaW50IGk5MTUpCiAJCSAq IG9yIHdlIGxldCB0aGUgdmlwIHRocm91Z2guIElmIG5vdCwgd2UgaGFuZy4KIAkJICovCiAJCXZp cCA9IGdlbV9jb250ZXh0X2NyZWF0ZShpOTE1KTsKLQkJc2V0X2xvYWRfYmFsYW5jZXIoaTkxNSwg dmlwLCBjaSwgY291bnQpOworCQlzZXRfbG9hZF9iYWxhbmNlcihpOTE1LCB2aXAsIGNpLCBjb3Vu dCwgTlVMTCk7CiAJCXBpbmcoaTkxNSwgdmlwLCAwKTsKIAkJZ2VtX2NvbnRleHRfZGVzdHJveShp OTE1LCB2aXApOwogCkBAIC04MjYsNyArMTAzMyw3IEBAIHN0YXRpYyBib29sIGhhc19sb2FkX2Jh bGFuY2VyKGludCBpOTE1KQogCWludCBlcnI7CiAKIAljdHggPSBnZW1fY29udGV4dF9jcmVhdGUo aTkxNSk7Ci0JZXJyID0gX19zZXRfbG9hZF9iYWxhbmNlcihpOTE1LCBjdHgsICZjaSwgMSk7CisJ ZXJyID0gX19zZXRfbG9hZF9iYWxhbmNlcihpOTE1LCBjdHgsICZjaSwgMSwgTlVMTCk7CiAJZ2Vt X2NvbnRleHRfZGVzdHJveShpOTE1LCBjdHgpOwogCiAJcmV0dXJuIGVyciA9PSAwOwpAQCAtODUy LDYgKzEwNTksOSBAQCBpZ3RfbWFpbgogCWlndF9zdWJ0ZXN0KCJpbnZhbGlkLWJhbGFuY2VyIikK IAkJaW52YWxpZF9iYWxhbmNlcihpOTE1KTsKIAorCWlndF9zdWJ0ZXN0KCJpbnZhbGlkLWJvbmRz IikKKwkJaW52YWxpZF9ib25kcyhpOTE1KTsKKwogCWlndF9zdWJ0ZXN0KCJpbmRpdmlkdWFsIikK IAkJaW5kaXZpZHVhbChpOTE1KTsKIApAQCAtODgwLDYgKzEwOTAsMTIgQEAgaWd0X21haW4KIAlp Z3Rfc3VidGVzdCgic21va2UiKQogCQlzbW9rZXRlc3QoaTkxNSwgMjApOwogCisJaWd0X3N1YnRl c3QoImJvbmRlZC1pbW0iKQorCQlib25kZWQoaTkxNSwgMCk7CisKKwlpZ3Rfc3VidGVzdCgiYm9u ZGVkLWNvcmsiKQorCQlib25kZWQoaTkxNSwgQ09SSyk7CisKIAlpZ3RfZml4dHVyZSB7CiAJCWln dF9zdG9wX2hhbmdfZGV0ZWN0b3IoKTsKIAl9Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Chris Wilson Date: Fri, 22 Mar 2019 09:21:55 +0000 Message-Id: <20190322092155.1656-24-chris@chris-wilson.co.uk> In-Reply-To: <20190322092155.1656-1-chris@chris-wilson.co.uk> References: <20190322092155.1656-1-chris@chris-wilson.co.uk> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 24/24] i915/gem_exec_balancer: Exercise bonded pairs 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 Cc: igt-dev@lists.freedesktop.org List-ID: VGhlIHN1Ym1pdC1mZW5jZSArIGxvYWRfYmFsYW5jaW5nIGFwaXMgYWxsb3cgZm9yIHVzIHRvIGV4 ZWN1dGUgYSBuYW1lZApwYWlyIG9mIGVuZ2luZXMgaW4gcGFyYWxsZWw7IHRoYXQgdGhpcyBieSBz dWJtaXR0aW5nIGEgcmVxdWVzdCB0byBvbmUKZW5naW5lLCB3ZSBjYW4gdGhlbiB1c2UgdGhlIGdl bmVyYXRlZCBzdWJtaXQtZmVuY2UgdG8gc3VibWl0IGEgc2Vjb25kCnJlcXVlc3QgdG8gYW5vdGhl ciBlbmdpbmUgYW5kIGhhdmUgaXQgZXhlY3V0ZSBhdCB0aGUgc2FtZSB0aW1lLgpGdXJ0aGVybW9y ZSwgYnkgc3BlY2lmeWluZyBib25kZWQgcGFpcnMsIHdlIGNhbiBkaXJlY3QgdGhlIHZpcnR1YWwK ZW5naW5lIHRvIHVzZSBhIHBhcnRpY3VsYXIgZW5naW5lIGluIHBhcmFsbGVsIHRvIHRoZSBmaXJz dCByZXF1ZXN0LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxz b24uY28udWs+Ci0tLQogdGVzdHMvaTkxNS9nZW1fZXhlY19iYWxhbmNlci5jIHwgMjM0ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDIyNSBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNf YmFsYW5jZXIuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYwppbmRleCA1NGY1MWVl MjMuLmNlZmUyMDRiNCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19iYWxhbmNlci5j CisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYwpAQCAtMTAyLDEyICsxMDIsNDEg QEAgbGlzdF9lbmdpbmVzKGludCBpOTE1LCB1aW50MzJfdCBjbGFzc19tYXNrLCB1bnNpZ25lZCBp bnQgKm91dCkKIAlyZXR1cm4gZW5naW5lczsKIH0KIAorc3RhdGljIGludCBfX3NldF9lbmdpbmVz KGludCBpOTE1LCB1aW50MzJfdCBjdHgsCisJCQkgY29uc3Qgc3RydWN0IGNsYXNzX2luc3RhbmNl ICpjaSwKKwkJCSB1bnNpZ25lZCBpbnQgY291bnQpCit7CisJSTkxNV9ERUZJTkVfQ09OVEVYVF9Q QVJBTV9FTkdJTkVTKGVuZ2luZXMsIGNvdW50KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRl eHRfcGFyYW0gcCA9IHsKKwkJLmN0eF9pZCA9IGN0eCwKKwkJLnBhcmFtID0gSTkxNV9DT05URVhU X1BBUkFNX0VOR0lORVMsCisJCS5zaXplID0gc2l6ZW9mKGVuZ2luZXMpLAorCQkudmFsdWUgPSB0 b191c2VyX3BvaW50ZXIoJmVuZ2luZXMpCisJfTsKKworCWVuZ2luZXMuZXh0ZW5zaW9ucyA9IDA7 CisJbWVtY3B5KGVuZ2luZXMuY2xhc3NfaW5zdGFuY2UsIGNpLCBzaXplb2YoZW5naW5lcy5jbGFz c19pbnN0YW5jZSkpOworCisJcmV0dXJuIF9fZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZw KTsKK30KKworc3RhdGljIHZvaWQgc2V0X2VuZ2luZXMoaW50IGk5MTUsIHVpbnQzMl90IGN0eCwK KwkJCWNvbnN0IHN0cnVjdCBjbGFzc19pbnN0YW5jZSAqY2ksCisJCQl1bnNpZ25lZCBpbnQgY291 bnQpCit7CisJaWd0X2Fzc2VydF9lcShfX3NldF9lbmdpbmVzKGk5MTUsIGN0eCwgY2ksIGNvdW50 KSwgMCk7Cit9CisKIHN0YXRpYyBpbnQgX19zZXRfbG9hZF9iYWxhbmNlcihpbnQgaTkxNSwgdWlu dDMyX3QgY3R4LAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBjbGFzc19pbnN0YW5jZSAqY2ksCi0J CQkgICAgICAgdW5zaWduZWQgaW50IGNvdW50KQorCQkJICAgICAgIHVuc2lnbmVkIGludCBjb3Vu dCwKKwkJCSAgICAgICB2b2lkICpleHQpCiB7CiAJc3RydWN0IGk5MTVfY29udGV4dF9lbmdpbmVz X2xvYWRfYmFsYW5jZSBiYWxhbmNlciA9IHsKLQkJeyAubmFtZSA9IEk5MTVfQ09OVEVYVF9FTkdJ TkVTX0VYVF9MT0FEX0JBTEFOQ0UgfSwKKwkJeworCQkJLm5leHRfZXh0ZW5zaW9uID0gdG9fdXNl cl9wb2ludGVyKGV4dCksCisJCQkubmFtZSA9IEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9MT0FE X0JBTEFOQ0UKKwkJfSwKIAkJLmVuZ2luZXNfbWFzayA9IH4wdWxsLAogCX07CiAJSTkxNV9ERUZJ TkVfQ09OVEVYVF9QQVJBTV9FTkdJTkVTKGVuZ2luZXMsIGNvdW50ICsgMSk7CkBAIC0xMjgsOSAr MTU3LDEwIEBAIHN0YXRpYyBpbnQgX19zZXRfbG9hZF9iYWxhbmNlcihpbnQgaTkxNSwgdWludDMy X3QgY3R4LAogCiBzdGF0aWMgdm9pZCBzZXRfbG9hZF9iYWxhbmNlcihpbnQgaTkxNSwgdWludDMy X3QgY3R4LAogCQkJICAgICAgY29uc3Qgc3RydWN0IGNsYXNzX2luc3RhbmNlICpjaSwKLQkJCSAg ICAgIHVuc2lnbmVkIGludCBjb3VudCkKKwkJCSAgICAgIHVuc2lnbmVkIGludCBjb3VudCwKKwkJ CSAgICAgIHZvaWQgKmV4dCkKIHsKLQlpZ3RfYXNzZXJ0X2VxKF9fc2V0X2xvYWRfYmFsYW5jZXIo aTkxNSwgY3R4LCBjaSwgY291bnQpLCAwKTsKKwlpZ3RfYXNzZXJ0X2VxKF9fc2V0X2xvYWRfYmFs YW5jZXIoaTkxNSwgY3R4LCBjaSwgY291bnQsIGV4dCksIDApOwogfQogCiBzdGF0aWMgdWludDMy X3QgbG9hZF9iYWxhbmNlcl9jcmVhdGUoaW50IGk5MTUsCkBAIC0xNDAsNyArMTcwLDcgQEAgc3Rh dGljIHVpbnQzMl90IGxvYWRfYmFsYW5jZXJfY3JlYXRlKGludCBpOTE1LAogCXVpbnQzMl90IGN0 eDsKIAogCWN0eCA9IGdlbV9jb250ZXh0X2NyZWF0ZShpOTE1KTsKLQlzZXRfbG9hZF9iYWxhbmNl cihpOTE1LCBjdHgsIGNpLCBjb3VudCk7CisJc2V0X2xvYWRfYmFsYW5jZXIoaTkxNSwgY3R4LCBj aSwgY291bnQsIE5VTEwpOwogCiAJcmV0dXJuIGN0eDsKIH0KQEAgLTI3NSw2ICszMDUsNzQgQEAg c3RhdGljIHZvaWQgaW52YWxpZF9iYWxhbmNlcihpbnQgaTkxNSkKIAlmcmVlKGNpKTsKIH0KIAor c3RhdGljIHZvaWQgaW52YWxpZF9ib25kcyhpbnQgaTkxNSkKK3sKKwlzdHJ1Y3QgaTkxNV9jb250 ZXh0X2VuZ2luZXNfYm9uZCBib25kc1sxNl07CisJSTkxNV9ERUZJTkVfQ09OVEVYVF9QQVJBTV9F TkdJTkVTKGVuZ2luZXMsIDEpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBw ID0geworCQkuY3R4X2lkID0gZ2VtX2NvbnRleHRfY3JlYXRlKGk5MTUpLAorCQkucGFyYW0gPSBJ OTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUywKKwkJLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKCZl bmdpbmVzKSwKKwkJLnNpemUgPSBzaXplb2YoZW5naW5lcyksCisJfTsKKwl1aW50MzJfdCBoYW5k bGU7CisJdm9pZCAqcHRyOworCisJbWVtc2V0KCZlbmdpbmVzLCAwLCBzaXplb2YoZW5naW5lcykp OworCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CisKKwltZW1zZXQoYm9uZHMsIDAs IHNpemVvZihib25kcykpOworCWZvciAoaW50IG4gPSAwOyBuIDwgQVJSQVlfU0laRShib25kcyk7 IG4rKykgeworCQlib25kc1tuXS5iYXNlLm5hbWUgPSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRf Qk9ORDsKKwkJYm9uZHNbbl0uYmFzZS5uZXh0X2V4dGVuc2lvbiA9CisJCQluID8gdG9fdXNlcl9w b2ludGVyKCZib25kc1tuIC0gMV0pIDogMDsKKwkJYm9uZHNbbl0uc2libGluZ19tYXNrID0gMHgx OworCX0KKwllbmdpbmVzLmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIoJmJvbmRzKTsKKwln ZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOworCisJYm9uZHNbMF0uYmFzZS5uZXh0X2V4 dGVuc2lvbiA9IC0xdWxsOworCWlndF9hc3NlcnRfZXEoX19nZW1fY29udGV4dF9zZXRfcGFyYW0o aTkxNSwgJnApLCAtRUZBVUxUKTsKKworCWJvbmRzWzBdLmJhc2UubmV4dF9leHRlbnNpb24gPSB0 b191c2VyX3BvaW50ZXIoJmJvbmRzWzBdKTsKKwlpZ3RfYXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRf c2V0X3BhcmFtKGk5MTUsICZwKSwgLUUyQklHKTsKKworCWVuZ2luZXMuZXh0ZW5zaW9ucyA9IHRv X3VzZXJfcG9pbnRlcigmYm9uZHNbMV0pOworCWlndF9hc3NlcnRfZXEoX19nZW1fY29udGV4dF9z ZXRfcGFyYW0oaTkxNSwgJnApLCAtRTJCSUcpOworCWJvbmRzWzBdLmJhc2UubmV4dF9leHRlbnNp b24gPSAwOworCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CisKKwloYW5kbGUgPSBn ZW1fY3JlYXRlKGk5MTUsIDQwOTYgKiAzKTsKKwlwdHIgPSBnZW1fbW1hcF9fZ3R0KGk5MTUsIGhh bmRsZSwgNDA5NiAqIDMsIFBST1RfV1JJVEUpOworCWdlbV9jbG9zZShpOTE1LCBoYW5kbGUpOwor CisJbWVtY3B5KHB0ciArIDQwOTYsICZib25kc1swXSwgc2l6ZW9mKGJvbmRzWzBdKSk7CisJZW5n aW5lcy5leHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVyKHB0cikgKyA0MDk2OworCWdlbV9jb250 ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CisKKwltZW1jcHkocHRyLCAmYm9uZHNbMF0sIHNpemVv Zihib25kc1swXSkpOworCWJvbmRzWzBdLmJhc2UubmV4dF9leHRlbnNpb24gPSB0b191c2VyX3Bv aW50ZXIocHRyKTsKKwltZW1jcHkocHRyICsgNDA5NiwgJmJvbmRzWzBdLCBzaXplb2YoYm9uZHNb MF0pKTsKKwlnZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOworCisJbXVubWFwKHB0ciwg NDA5Nik7CisJaWd0X2Fzc2VydF9lcShfX2dlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCks IC1FRkFVTFQpOworCisJYm9uZHNbMF0uYmFzZS5uZXh0X2V4dGVuc2lvbiA9IDA7CisJbWVtY3B5 KHB0ciArIDgxOTIsICZib25kc1swXSwgc2l6ZW9mKGJvbmRzWzBdKSk7CisJYm9uZHNbMF0uYmFz ZS5uZXh0X2V4dGVuc2lvbiA9IHRvX3VzZXJfcG9pbnRlcihwdHIpICsgODE5MjsKKwltZW1jcHko cHRyICsgNDA5NiwgJmJvbmRzWzBdLCBzaXplb2YoYm9uZHNbMF0pKTsKKwlnZW1fY29udGV4dF9z ZXRfcGFyYW0oaTkxNSwgJnApOworCisJbXVubWFwKHB0ciArIDgxOTIsIDQwOTYpOworCWlndF9h c3NlcnRfZXEoX19nZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApLCAtRUZBVUxUKTsKKwor CW11bm1hcChwdHIgKyA0MDk2LCA0MDk2KTsKKwlpZ3RfYXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRf c2V0X3BhcmFtKGk5MTUsICZwKSwgLUVGQVVMVCk7CisKKwlnZW1fY29udGV4dF9kZXN0cm95KGk5 MTUsIHAuY3R4X2lkKTsKK30KKwogc3RhdGljIHZvaWQga2lja19rdGhyZWFkcyhpbnQgcGVyaW9k X3VzKQogewogCXNjaGVkX3lpZWxkKCk7CkBAIC0zODQsNyArNDgyLDcgQEAgc3RhdGljIHZvaWQg aW5kaXZpZHVhbChpbnQgaTkxNSkKIAogCQlmb3IgKGludCBwYXNzID0gMDsgcGFzcyA8IGNvdW50 OyBwYXNzKyspIHsgLyogYXBwcm94LiBjb3VudCEgKi8KIAkJCWlndF9wZXJtdXRlX2FycmF5KGNp LCBjb3VudCwgaWd0X2V4Y2hhbmdlX2ludDY0KTsKLQkJCXNldF9sb2FkX2JhbGFuY2VyKGk5MTUs IGN0eCwgY2ksIGNvdW50KTsKKwkJCXNldF9sb2FkX2JhbGFuY2VyKGk5MTUsIGN0eCwgY2ksIGNv dW50LCBOVUxMKTsKIAkJCWZvciAodW5zaWduZWQgaW50IG4gPSAwOyBuIDwgY291bnQ7IG4rKykK IAkJCQljaGVja19pbmRpdmlkdWFsX2VuZ2luZShpOTE1LCBjdHgsIGNpLCBuKTsKIAkJfQpAQCAt Mzk2LDYgKzQ5NCwxMTUgQEAgc3RhdGljIHZvaWQgaW5kaXZpZHVhbChpbnQgaTkxNSkKIAlnZW1f cXVpZXNjZW50X2dwdShpOTE1KTsKIH0KIAorc3RhdGljIHZvaWQgYm9uZGVkKGludCBpOTE1LCB1 bnNpZ25lZCBpbnQgZmxhZ3MpCisjZGVmaW5lIENPUksgMHgxCit7CisJc3RydWN0IGk5MTVfY29u dGV4dF9lbmdpbmVzX2JvbmQgYm9uZHNbMTZdOworCXN0cnVjdCBjbGFzc19pbnN0YW5jZSAqbWFz dGVyX2VuZ2luZXM7CisJdWludDMyX3QgbWFzdGVyOworCisJLyoKKwkgKiBJOTE1X0NPTlRFWFRf UEFSQU1fRU5HSU5FIHByb3ZpZGVzIGFuIGV4dGVuc2lvbiB0aGF0IGFsbG93cyB1cworCSAqIHRv IHNwZWNpZnkgd2hpY2ggZW5naW5lKHMpIHRvIHBhaXIgd2l0aCBhIHBhcmFsbGVsIChFWEVDX1NV Qk1JVCkKKwkgKiByZXF1ZXN0IHN1Ym1pdHRlZCB0byBhbm90aGVyIGVuZ2luZS4KKwkgKi8KKwor CW1hc3RlciA9IGdlbV9xdWV1ZV9jcmVhdGUoaTkxNSk7CisKKwltZW1zZXQoYm9uZHMsIDAsIHNp emVvZihib25kcykpOworCWZvciAoaW50IG4gPSAwOyBuIDwgQVJSQVlfU0laRShib25kcyk7IG4r KykgeworCQlib25kc1tuXS5iYXNlLm5hbWUgPSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfQk9O RDsKKwkJYm9uZHNbbl0uYmFzZS5uZXh0X2V4dGVuc2lvbiA9CisJCQluID8gdG9fdXNlcl9wb2lu dGVyKCZib25kc1tuIC0gMV0pIDogMDsKKwkJYm9uZHNbbl0uc2libGluZ19tYXNrID0gMSA8PCBu OworCX0KKworCWZvciAoaW50IG1hc2sgPSAwOyBtYXNrIDwgMzI7IG1hc2srKykgeworCQl1bnNp Z25lZCBpbnQgY291bnQsIGxpbWl0OworCQlzdHJ1Y3QgY2xhc3NfaW5zdGFuY2UgKnNpYmxpbmdz OworCQl1aW50MzJfdCBjdHg7CisJCWludCBuOworCisJCXNpYmxpbmdzID0gbGlzdF9lbmdpbmVz KGk5MTUsIDF1IDw8IG1hc2ssICZjb3VudCk7CisJCWlmICghc2libGluZ3MpCisJCQljb250aW51 ZTsKKworCQlpZiAoY291bnQgPCAyKSB7CisJCQlmcmVlKHNpYmxpbmdzKTsKKwkJCWNvbnRpbnVl OworCQl9CisKKwkJaWd0X2RlYnVnKCJGb3VuZCAlZCBlbmdpbmVzIG9mIGNsYXNzICVkXG4iLCBj b3VudCwgbWFzayk7CisKKwkJbWFzdGVyX2VuZ2luZXMgPSBsaXN0X2VuZ2luZXMoaTkxNSwgfigx dSA8PCBtYXNrKSwgJmxpbWl0KTsKKwkJc2V0X2VuZ2luZXMoaTkxNSwgbWFzdGVyLCBtYXN0ZXJf ZW5naW5lcywgbGltaXQpOworCisJCWxpbWl0ID0gbWluKGNvdW50LCBsaW1pdCk7CisJCWZvciAo biA9IDA7IG4gPCBsaW1pdDsgbisrKSB7CisJCQlib25kc1tuXS5tYXN0ZXJfY2xhc3MgPSBtYXN0 ZXJfZW5naW5lc1tuXS5jbGFzczsKKwkJCWJvbmRzW25dLm1hc3Rlcl9pbnN0YW5jZSA9IG1hc3Rl cl9lbmdpbmVzW25dLmluc3RhbmNlOworCQl9CisKKwkJY3R4ID0gZ2VtX2NvbnRleHRfY2xvbmUo aTkxNSwKKwkJCQkgICAgICAgCW1hc3RlciwgSTkxNV9DT05URVhUX0NMT05FX1ZNLAorCQkJCQlJ OTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1NJTkdMRV9USU1FTElORSk7CisJCXNldF9sb2FkX2Jh bGFuY2VyKGk5MTUsIGN0eCwgc2libGluZ3MsIGNvdW50LCAmYm9uZHNbbGltaXQgLSAxXSk7CisK KwkJZm9yIChuID0gMDsgbiA8IGxpbWl0OyBuKyspIHsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY2J1ZmZlcjIgZWI7CisJCQlJR1RfQ09SS19IQU5ETEUoY29yayk7CisJCQlpZ3Rfc3Bpbl90 ICpzcGluLCAqcGx1ZzsKKwkJCWRvdWJsZSBsb2FkOworCQkJaW50IHBtdTsKKworCQkJaWd0X2Fz c2VydChzaWJsaW5nc1tuXS5jbGFzcyAhPSBtYXN0ZXJfZW5naW5lc1tuXS5jbGFzcyk7CisKKwkJ CXBtdSA9IHBlcmZfaTkxNV9vcGVuKEk5MTVfUE1VX0VOR0lORV9CVVNZKHNpYmxpbmdzW25dLmNs YXNzLAorCQkJCQkJCQkgIHNpYmxpbmdzW25dLmluc3RhbmNlKSk7CisKKwkJCXBsdWcgPSBOVUxM OworCQkJaWYgKGZsYWdzICYgQ09SSykgeworCQkJCXBsdWcgPSBfX2lndF9zcGluX2JhdGNoX25l dyhpOTE1LAorCQkJCQkJCSAgICAuY3R4ID0gbWFzdGVyLAorCQkJCQkJCSAgICAuZW5naW5lID0g biwKKwkJCQkJCQkgICAgLmRlcGVuZGVuY3kgPSBpZ3RfY29ya19wbHVnKCZjb3JrLCBpOTE1KSk7 CisJCQl9CisKKwkJCXNwaW4gPSBfX2lndF9zcGluX2JhdGNoX25ldyhpOTE1LAorCQkJCQkJICAg IC5jdHggPSBtYXN0ZXIsCisJCQkJCQkgICAgLmVuZ2luZSA9IG4sCisJCQkJCQkgICAgLmZsYWdz ID0gSUdUX1NQSU5fRkVOQ0VfT1VUKTsKKworCQkJZWIgPSBzcGluLT5leGVjYnVmOworCQkJZWIu cnN2ZDEgPSBjdHg7CisJCQllYi5yc3ZkMiA9IHNwaW4tPm91dF9mZW5jZTsKKwkJCWViLmZsYWdz ID0gSTkxNV9FWEVDX0ZFTkNFX1NVQk1JVDsKKwkJCWdlbV9leGVjYnVmKGk5MTUsICZlYik7CisK KwkJCWlmIChwbHVnKSB7CisJCQkJaWd0X2NvcmtfdW5wbHVnKCZjb3JrKTsKKwkJCQlpZ3Rfc3Bp bl9iYXRjaF9mcmVlKGk5MTUsIHBsdWcpOworCQkJfQorCisJCQlsb2FkID0gbWVhc3VyZV9sb2Fk KHBtdSwgMTAwMDApOworCQkJaWd0X3NwaW5fYmF0Y2hfZnJlZShpOTE1LCBzcGluKTsKKworCQkJ Y2xvc2UocG11KTsKKworCQkJaWd0X2Fzc2VydF9mKGxvYWQgPiAwLjkwLAorCQkJCSAgICAgImVu Z2luZSAlZCAoY2xhc3M6aW5zdGFuY2UgJWQ6JWQpIHdhcyBmb3VuZCB0byBiZSBvbmx5ICUuMWYl JSBidXN5XG4iLAorCQkJCSAgICAgbiwgc2libGluZ3Nbbl0uY2xhc3MsIHNpYmxpbmdzW25dLmlu c3RhbmNlLAorCQkJCSAgICAgbG9hZCoxMDApOworCQl9CisKKwkJZ2VtX2NvbnRleHRfZGVzdHJv eShpOTE1LCBjdHgpOworCQlmcmVlKG1hc3Rlcl9lbmdpbmVzKTsKKwkJZnJlZShzaWJsaW5ncyk7 CisJfQorCisJZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1LCBtYXN0ZXIpOworfQorCiBzdGF0aWMg aW50IGFkZF9wbXUoaW50IHBtdSwgY29uc3Qgc3RydWN0IGNsYXNzX2luc3RhbmNlICpjaSkKIHsK IAlyZXR1cm4gcGVyZl9pOTE1X29wZW5fZ3JvdXAoSTkxNV9QTVVfRU5HSU5FX0JVU1koY2ktPmNs YXNzLApAQCAtNjk4LDcgKzkwNSw3IEBAIHN0YXRpYyB2b2lkIHNlbWFwaG9yZShpbnQgaTkxNSkK IAkJY291bnQgPSBBUlJBWV9TSVpFKGJsb2NrKTsKIAogCQlmb3IgKGludCBpID0gMDsgaSA8IGNv dW50OyBpKyspIHsKLQkJCXNldF9sb2FkX2JhbGFuY2VyKGk5MTUsIGJsb2NrW2ldLCBjaSwgY291 bnQpOworCQkJc2V0X2xvYWRfYmFsYW5jZXIoaTkxNSwgYmxvY2tbaV0sIGNpLCBjb3VudCwgTlVM TCk7CiAJCQlzcGluW2ldID0gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoaTkxNSwKIAkJCQkJCSAgICAg ICAuY3R4ID0gYmxvY2tbaV0sCiAJCQkJCQkgICAgICAgLmRlcGVuZGVuY3kgPSBzY3JhdGNoKTsK QEAgLTcwOSw3ICs5MTYsNyBAQCBzdGF0aWMgdm9pZCBzZW1hcGhvcmUoaW50IGk5MTUpCiAJCSAq IG9yIHdlIGxldCB0aGUgdmlwIHRocm91Z2guIElmIG5vdCwgd2UgaGFuZy4KIAkJICovCiAJCXZp cCA9IGdlbV9jb250ZXh0X2NyZWF0ZShpOTE1KTsKLQkJc2V0X2xvYWRfYmFsYW5jZXIoaTkxNSwg dmlwLCBjaSwgY291bnQpOworCQlzZXRfbG9hZF9iYWxhbmNlcihpOTE1LCB2aXAsIGNpLCBjb3Vu dCwgTlVMTCk7CiAJCXBpbmcoaTkxNSwgdmlwLCAwKTsKIAkJZ2VtX2NvbnRleHRfZGVzdHJveShp OTE1LCB2aXApOwogCkBAIC04MjYsNyArMTAzMyw3IEBAIHN0YXRpYyBib29sIGhhc19sb2FkX2Jh bGFuY2VyKGludCBpOTE1KQogCWludCBlcnI7CiAKIAljdHggPSBnZW1fY29udGV4dF9jcmVhdGUo aTkxNSk7Ci0JZXJyID0gX19zZXRfbG9hZF9iYWxhbmNlcihpOTE1LCBjdHgsICZjaSwgMSk7CisJ ZXJyID0gX19zZXRfbG9hZF9iYWxhbmNlcihpOTE1LCBjdHgsICZjaSwgMSwgTlVMTCk7CiAJZ2Vt X2NvbnRleHRfZGVzdHJveShpOTE1LCBjdHgpOwogCiAJcmV0dXJuIGVyciA9PSAwOwpAQCAtODUy LDYgKzEwNTksOSBAQCBpZ3RfbWFpbgogCWlndF9zdWJ0ZXN0KCJpbnZhbGlkLWJhbGFuY2VyIikK IAkJaW52YWxpZF9iYWxhbmNlcihpOTE1KTsKIAorCWlndF9zdWJ0ZXN0KCJpbnZhbGlkLWJvbmRz IikKKwkJaW52YWxpZF9ib25kcyhpOTE1KTsKKwogCWlndF9zdWJ0ZXN0KCJpbmRpdmlkdWFsIikK IAkJaW5kaXZpZHVhbChpOTE1KTsKIApAQCAtODgwLDYgKzEwOTAsMTIgQEAgaWd0X21haW4KIAlp Z3Rfc3VidGVzdCgic21va2UiKQogCQlzbW9rZXRlc3QoaTkxNSwgMjApOwogCisJaWd0X3N1YnRl c3QoImJvbmRlZC1pbW0iKQorCQlib25kZWQoaTkxNSwgMCk7CisKKwlpZ3Rfc3VidGVzdCgiYm9u ZGVkLWNvcmsiKQorCQlib25kZWQoaTkxNSwgQ09SSyk7CisKIAlpZ3RfZml4dHVyZSB7CiAJCWln dF9zdG9wX2hhbmdfZGV0ZWN0b3IoKTsKIAl9Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1k ZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaWd0LWRldg==