From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH i-g-t 25/25] i915/gem_exec_latency: Measure the latency of context switching Date: Thu, 14 Mar 2019 14:19:39 +0000 Message-ID: <20190314141939.26246-25-chris@chris-wilson.co.uk> References: <20190314141939.26246-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: <20190314141939.26246-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 TWVhc3VyZSB0aGUgYmFzZWxpbmUgbGF0ZW5jeSBiZXR3ZWVuIGNvbnRleHRzIGluIG9yZGVyIHRv IGRpcmVjdGx5CmNvbXBhcmUgdGhhdCB3aXRoIHRoZSBhZGRpdGlvbmFsIGNvc3Qgb2YgcHJlZW1w dGlvbi4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgotLS0KIHRlc3RzL2k5MTUvZ2VtX2N0eF9zaGFyZWQuYyAgIHwgICAyICstCiB0ZXN0cy9p OTE1L2dlbV9leGVjX2xhdGVuY3kuYyB8IDE0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE0MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fY3R4X3NoYXJlZC5jIGIvdGVzdHMvaTkxNS9n ZW1fY3R4X3NoYXJlZC5jCmluZGV4IDQyNjE1NTM1Ni4uMTg3OTIxYzdlIDEwMDY0NAotLS0gYS90 ZXN0cy9pOTE1L2dlbV9jdHhfc2hhcmVkLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fY3R4X3NoYXJl ZC5jCkBAIC01OTUsNyArNTk1LDcgQEAgc3RhdGljIHZvaWQgaW5kZXBlbmRlbnQoaW50IGk5MTUs IHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQogCQlicmVhazsKIAogCWRlZmF1bHQ6Ci0J CWlndF9za2lwKCJtbWlvIGJhc2Ugbm90IGtub3duIik7CisJCWlndF9za2lwKCJtbWlvIGJhc2Ug bm90IGtub3duXG4iKTsKIAl9CiAKIAlmb3IgKGludCBuID0gMDsgbiA8IEFSUkFZX1NJWkUoc3Bp bik7IG4rKykgewpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMgYi90 ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYwppbmRleCA2ZGQxOTFlY2UuLjg5YzVhZjY0NyAx MDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMKKysrIGIvdGVzdHMvaTkx NS9nZW1fZXhlY19sYXRlbmN5LmMKQEAgLTYyOCw2ICs2MjgsMTM5IEBAIHJ0aG9nX2xhdGVuY3lf b25fcmluZyhpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUsIGNvbnN0IGNoYXIgKm5hbWUsIHVu c2lnbmVkIGluCiAJbXVubWFwKHJlc3VsdHMsIE1NQVBfU1opOwogfQogCitzdGF0aWMgdm9pZCBj b250ZXh0X3N3aXRjaChpbnQgaTkxNSwKKwkJCSAgIHVuc2lnbmVkIGludCBlbmdpbmUsIGNvbnN0 IGNoYXIgKm5hbWUsCisJCQkgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IGRybV9p OTE1X2dlbV9leGVjX29iamVjdDIgb2JqWzJdOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVsb2Nh dGlvbl9lbnRyeSByZWxvY1s1XTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGVi OworCXVpbnQzMl90ICpjcywgKmJiZSwgKnJlc3VsdHMsIHY7CisJdW5zaWduZWQgaW50IG1taW9f YmFzZTsKKwlzdHJ1Y3QgaWd0X21lYW4gbWVhbjsKKwl1aW50MzJfdCBjdHhbMl07CisKKwkvKiBY WFggaTkxNV9xdWVyeSgpISAqLworCWlndF9za2lwX29uKGludGVsX2dlbihpbnRlbF9nZXRfZHJt X2RldmlkKGk5MTUpKSA+PSAxMSk7CisJc3dpdGNoIChlbmdpbmUpIHsKKwljYXNlIEk5MTVfRVhF Q19ERUZBVUxUOgorCWNhc2UgSTkxNV9FWEVDX1JFTkRFUjoKKwkJbW1pb19iYXNlID0gMHgyMDAw OworCQlicmVhazsKKyNpZiAwCisJY2FzZSBJOTE1X0VYRUNfQlNEOgorCQltbWlvX2Jhc2UgPSAw eDEyMDAwOworCQlicmVhazsKKyNlbmRpZgorCWNhc2UgSTkxNV9FWEVDX0JMVDoKKwkJbW1pb19i YXNlID0gMHgyMjAwMDsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X0VYRUNfVkVCT1g6CisJCW1taW9f YmFzZSA9IDB4MWEwMDA7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJaWd0X3NraXAoIm1taW8g YmFzZSBub3Qga25vd24iKTsKKwl9CisKKwlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUo Y3R4KTsgaSsrKQorCQljdHhbaV0gPSBnZW1fY29udGV4dF9jcmVhdGUoaTkxNSk7CisKKwlpZiAo ZmxhZ3MgJiBQUkVFTVBUKSB7CisJCWdlbV9jb250ZXh0X3NldF9wcmlvcml0eShpOTE1LCBjdHhb MF0sIC0xMDIzKTsKKwkJZ2VtX2NvbnRleHRfc2V0X3ByaW9yaXR5KGk5MTUsIGN0eFsxXSwgKzEw MjMpOworCX0KKworCW1lbXNldChvYmosIDAsIHNpemVvZihvYmopKTsKKwlvYmpbMF0uaGFuZGxl ID0gZ2VtX2NyZWF0ZShpOTE1LCA0MDk2KTsKKwlnZW1fc2V0X2NhY2hpbmcoaTkxNSwgb2JqWzBd LmhhbmRsZSwgMSk7CisJcmVzdWx0cyA9IGdlbV9tbWFwX19jcHUoaTkxNSwgb2JqWzBdLmhhbmRs ZSwgMCwgNDA5NiwgUFJPVF9SRUFEKTsKKwlnZW1fc2V0X2RvbWFpbihpOTE1LCBvYmpbMF0uaGFu ZGxlLCBJOTE1X0dFTV9ET01BSU5fQ1BVLCAwKTsKKworCW9ialsxXS5oYW5kbGUgPSBnZW1fY3Jl YXRlKGk5MTUsIDQwOTYpOworCW1lbXNldChyZWxvYywwLCBzaXplb2YocmVsb2MpKTsKKwlvYmpb MV0ucmVsb2NhdGlvbl9jb3VudCA9IEFSUkFZX1NJWkUocmVsb2MpOworCW9ialsxXS5yZWxvY3Nf cHRyID0gdG9fdXNlcl9wb2ludGVyKHJlbG9jKTsKKwliYmUgPSBnZW1fbW1hcF9fd2MoaTkxNSwg b2JqWzFdLmhhbmRsZSwgMCwgNDA5NiwgUFJPVF9XUklURSk7CisJZ2VtX3NldF9kb21haW4oaTkx NSwgb2JqWzFdLmhhbmRsZSwKKwkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9XQywgSTkxNV9HRU1f RE9NQUlOX1dDKTsKKworCWNzID0gYmJlOworCSpjcysrID0gMHg1IDw8IDIzOworCSpjcysrID0g MHgyNCA8PCAyMyB8IDI7IC8qIFNSTSAqLworCSpjcysrID0gbW1pb19iYXNlICsgMHgzNTg7IC8q IFRJTUVTVEFNUCAqLworCXJlbG9jWzBdLnRhcmdldF9oYW5kbGUgPSBvYmpbMF0uaGFuZGxlOwor CXJlbG9jWzBdLm9mZnNldCA9IChjcyAtIGJiZSkgKiBzaXplb2YoKmNzKTsKKwkqY3MrKyA9IDA7 CisJKmNzKysgPSAwOworCSpjcysrID0gTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIHwgMTsKKwlyZWxv Y1sxXS50YXJnZXRfaGFuZGxlID0gb2JqWzFdLmhhbmRsZTsKKwlyZWxvY1sxXS5vZmZzZXQgPSAo Y3MgLSBiYmUpICogc2l6ZW9mKCpjcyk7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKworCWNz ID0gYmJlICsgNjQ7CisJKmNzKysgPSAweDI0IDw8IDIzIHwgMjsgLyogU1JNICovCisJKmNzKysg PSBtbWlvX2Jhc2UgKyAweDM1ODsgLyogVElNRVNUQU1QICovCisJcmVsb2NbMl0udGFyZ2V0X2hh bmRsZSA9IG9ialswXS5oYW5kbGU7CisJcmVsb2NbMl0ub2Zmc2V0ID0gKGNzIC0gYmJlKSAqIHNp emVvZigqY3MpOworCSpjcysrID0gcmVsb2NbMl0uZGVsdGEgPSA0OworCSpjcysrID0gMDsKKwkq Y3MrKyA9IDB4MjkgPDwgMjMgfCAyOyAvKiBMUk0gKi8KKwkqY3MrKyA9IG1taW9fYmFzZSArIDB4 NjAwOyAvKiBHUFIwICovCisJcmVsb2NbM10udGFyZ2V0X2hhbmRsZSA9IG9ialswXS5oYW5kbGU7 CisJcmVsb2NbM10ub2Zmc2V0ID0gKGNzIC0gYmJlKSAqIHNpemVvZigqY3MpOworCSpjcysrID0g MDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAweDI0IDw8IDIzIHwgMjsgLyogU1JNICovCisJKmNz KysgPSBtbWlvX2Jhc2UgKyAweDYwMDsgLyogR1BSMCAqLworCXJlbG9jWzRdLnRhcmdldF9oYW5k bGUgPSBvYmpbMF0uaGFuZGxlOworCXJlbG9jWzRdLm9mZnNldCA9IChjcyAtIGJiZSkgKiBzaXpl b2YoKmNzKTsKKwkqY3MrKyA9IHJlbG9jWzRdLmRlbHRhID0gODsKKwkqY3MrKyA9IDA7CisJKmNz KysgPSAweGEgPDwgMjM7CisKKwltZW1zZXQoJmViLCAwLCBzaXplb2YoZWIpKTsKKwllYi5idWZm ZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihvYmopOworCWViLmJ1ZmZlcl9jb3VudCA9IEFSUkFZ X1NJWkUob2JqKTsKKwllYi5mbGFncyA9IGVuZ2luZTsKKwllYi5mbGFncyB8PSBMT0NBTF9JOTE1 X0VYRUNfTk9fUkVMT0M7CisKKwl2ID0gMDsKKwlpZ3RfbWVhbl9pbml0KCZtZWFuKTsKKwlpZ3Rf dW50aWxfdGltZW91dCg1KSB7CisJCWViLnJzdmQxID0gY3R4WzBdOworCQllYi5iYXRjaF9zdGFy dF9vZmZzZXQgPSAwOworCQlnZW1fZXhlY2J1ZihpOTE1LCAmZWIpOworCisJCXdoaWxlIChyZXN1 bHRzWzBdID09IHYpCisJCQlpZ3RfYXNzZXJ0KGdlbV9ib19idXN5KGk5MTUsIG9ialsxXS5oYW5k bGUpKTsKKworCQllYi5yc3ZkMSA9IGN0eFsxXTsKKwkJZWIuYmF0Y2hfc3RhcnRfb2Zmc2V0ID0g NjQgKiBzaXplb2YoKmNzKTsKKwkJZ2VtX2V4ZWNidWYoaTkxNSwgJmViKTsKKworCQkqYmJlID0g MHhhIDw8IDIzOworCQlnZW1fc3luYyhpOTE1LCBvYmpbMV0uaGFuZGxlKTsKKwkJKmJiZSA9IDB4 NSA8PCAyMzsKKworCQl2ID0gcmVzdWx0c1swXTsKKwkJaWd0X21lYW5fYWRkKCZtZWFuLCAocmVz dWx0c1sxXSAtIHJlc3VsdHNbMl0pICogcmNzX2Nsb2NrKTsKKwl9CisJaWd0X2luZm8oIiVzIGNv bnRleHQgc3dpdGNoIGxhdGVuY3klczogJS4yZsKxJS4yZnVzXG4iLAorCQkgbmFtZSwgZmxhZ3Mg JiBQUkVFTVBUID8gIiAocHJlZW1wdCkiIDogIiIsCisJCSAxZS0zICogaWd0X21lYW5fZ2V0KCZt ZWFuKSwKKwkJIDFlLTMgKiBzcXJ0KGlndF9tZWFuX2dldF92YXJpYW5jZSgmbWVhbikpKTsKKwlt dW5tYXAocmVzdWx0cywgNDA5Nik7CisJbXVubWFwKGJiZSwgNDA5Nik7CisKKwlmb3IgKGludCBp ID0gMDsgaSA8IEFSUkFZX1NJWkUob2JqKTsgaSsrKQorCQlnZW1fY2xvc2UoaTkxNSwgb2JqW2ld LmhhbmRsZSk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3R4KTsgaSsrKQor CQlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUsIGN0eFtpXSk7Cit9CisKIHN0YXRpYyBkb3VibGUg Y2xvY2tyYXRlKGludCBpOTE1LCBpbnQgcmVnKQogewogCXZvbGF0aWxlIHVpbnQzMl90ICptbWlv OwpAQCAtNzUzLDEyICs4ODYsMjEgQEAgaWd0X21haW4KIAkJCQkJCQkgIGUtPmV4ZWNfaWQgfCBl LT5mbGFncywKIAkJCQkJCQkgIGUtPm5hbWUsIENPUkspOwogCisJCQkJaWd0X3N1YnRlc3RfZigi JXMtY3MiLCBlLT5uYW1lKQorCQkJCQljb250ZXh0X3N3aXRjaChkZXZpY2UsCisJCQkJCQkgICAg ICAgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLAorCQkJCQkJICAgICAgIGUtPm5hbWUsIDApOwogCQkJ CWlndF9zdWJ0ZXN0X2dyb3VwIHsKIAkJCQkJaWd0X2ZpeHR1cmUgewogCQkJCQkJZ2VtX3JlcXVp cmVfY29udGV4dHMoZGV2aWNlKTsKIAkJCQkJCWlndF9yZXF1aXJlKGdlbV9zY2hlZHVsZXJfaGFz X3ByZWVtcHRpb24oZGV2aWNlKSk7CiAJCQkJCX0KIAorCQkJCQlpZ3Rfc3VidGVzdF9mKCIlcy1j cy1wcmVlbXB0IiwgZS0+bmFtZSkKKwkJCQkJCWNvbnRleHRfc3dpdGNoKGRldmljZSwKKwkJCQkJ CQkJZS0+ZXhlY19pZCB8IGUtPmZsYWdzLAorCQkJCQkJCQllLT5uYW1lLCBQUkVFTVBUKTsKKwog CQkJCQlpZ3Rfc3VidGVzdF9mKCIlcy1wcmVlbXB0aW9uIiwgZS0+bmFtZSkKIAkJCQkJCWxhdGVu Y3lfZnJvbV9yaW5nKGRldmljZSwKIAkJCQkJCQkJICBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsCi0t IAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Chris Wilson Date: Thu, 14 Mar 2019 14:19:39 +0000 Message-Id: <20190314141939.26246-25-chris@chris-wilson.co.uk> In-Reply-To: <20190314141939.26246-1-chris@chris-wilson.co.uk> References: <20190314141939.26246-1-chris@chris-wilson.co.uk> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH i-g-t 25/25] i915/gem_exec_latency: Measure the latency of context switching List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 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: TWVhc3VyZSB0aGUgYmFzZWxpbmUgbGF0ZW5jeSBiZXR3ZWVuIGNvbnRleHRzIGluIG9yZGVyIHRv IGRpcmVjdGx5CmNvbXBhcmUgdGhhdCB3aXRoIHRoZSBhZGRpdGlvbmFsIGNvc3Qgb2YgcHJlZW1w dGlvbi4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgotLS0KIHRlc3RzL2k5MTUvZ2VtX2N0eF9zaGFyZWQuYyAgIHwgICAyICstCiB0ZXN0cy9p OTE1L2dlbV9leGVjX2xhdGVuY3kuYyB8IDE0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE0MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fY3R4X3NoYXJlZC5jIGIvdGVzdHMvaTkxNS9n ZW1fY3R4X3NoYXJlZC5jCmluZGV4IDQyNjE1NTM1Ni4uMTg3OTIxYzdlIDEwMDY0NAotLS0gYS90 ZXN0cy9pOTE1L2dlbV9jdHhfc2hhcmVkLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fY3R4X3NoYXJl ZC5jCkBAIC01OTUsNyArNTk1LDcgQEAgc3RhdGljIHZvaWQgaW5kZXBlbmRlbnQoaW50IGk5MTUs IHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQogCQlicmVhazsKIAogCWRlZmF1bHQ6Ci0J CWlndF9za2lwKCJtbWlvIGJhc2Ugbm90IGtub3duIik7CisJCWlndF9za2lwKCJtbWlvIGJhc2Ug bm90IGtub3duXG4iKTsKIAl9CiAKIAlmb3IgKGludCBuID0gMDsgbiA8IEFSUkFZX1NJWkUoc3Bp bik7IG4rKykgewpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMgYi90 ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYwppbmRleCA2ZGQxOTFlY2UuLjg5YzVhZjY0NyAx MDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMKKysrIGIvdGVzdHMvaTkx NS9nZW1fZXhlY19sYXRlbmN5LmMKQEAgLTYyOCw2ICs2MjgsMTM5IEBAIHJ0aG9nX2xhdGVuY3lf b25fcmluZyhpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUsIGNvbnN0IGNoYXIgKm5hbWUsIHVu c2lnbmVkIGluCiAJbXVubWFwKHJlc3VsdHMsIE1NQVBfU1opOwogfQogCitzdGF0aWMgdm9pZCBj b250ZXh0X3N3aXRjaChpbnQgaTkxNSwKKwkJCSAgIHVuc2lnbmVkIGludCBlbmdpbmUsIGNvbnN0 IGNoYXIgKm5hbWUsCisJCQkgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IGRybV9p OTE1X2dlbV9leGVjX29iamVjdDIgb2JqWzJdOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVsb2Nh dGlvbl9lbnRyeSByZWxvY1s1XTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGVi OworCXVpbnQzMl90ICpjcywgKmJiZSwgKnJlc3VsdHMsIHY7CisJdW5zaWduZWQgaW50IG1taW9f YmFzZTsKKwlzdHJ1Y3QgaWd0X21lYW4gbWVhbjsKKwl1aW50MzJfdCBjdHhbMl07CisKKwkvKiBY WFggaTkxNV9xdWVyeSgpISAqLworCWlndF9za2lwX29uKGludGVsX2dlbihpbnRlbF9nZXRfZHJt X2RldmlkKGk5MTUpKSA+PSAxMSk7CisJc3dpdGNoIChlbmdpbmUpIHsKKwljYXNlIEk5MTVfRVhF Q19ERUZBVUxUOgorCWNhc2UgSTkxNV9FWEVDX1JFTkRFUjoKKwkJbW1pb19iYXNlID0gMHgyMDAw OworCQlicmVhazsKKyNpZiAwCisJY2FzZSBJOTE1X0VYRUNfQlNEOgorCQltbWlvX2Jhc2UgPSAw eDEyMDAwOworCQlicmVhazsKKyNlbmRpZgorCWNhc2UgSTkxNV9FWEVDX0JMVDoKKwkJbW1pb19i YXNlID0gMHgyMjAwMDsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X0VYRUNfVkVCT1g6CisJCW1taW9f YmFzZSA9IDB4MWEwMDA7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJaWd0X3NraXAoIm1taW8g YmFzZSBub3Qga25vd24iKTsKKwl9CisKKwlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUo Y3R4KTsgaSsrKQorCQljdHhbaV0gPSBnZW1fY29udGV4dF9jcmVhdGUoaTkxNSk7CisKKwlpZiAo ZmxhZ3MgJiBQUkVFTVBUKSB7CisJCWdlbV9jb250ZXh0X3NldF9wcmlvcml0eShpOTE1LCBjdHhb MF0sIC0xMDIzKTsKKwkJZ2VtX2NvbnRleHRfc2V0X3ByaW9yaXR5KGk5MTUsIGN0eFsxXSwgKzEw MjMpOworCX0KKworCW1lbXNldChvYmosIDAsIHNpemVvZihvYmopKTsKKwlvYmpbMF0uaGFuZGxl ID0gZ2VtX2NyZWF0ZShpOTE1LCA0MDk2KTsKKwlnZW1fc2V0X2NhY2hpbmcoaTkxNSwgb2JqWzBd LmhhbmRsZSwgMSk7CisJcmVzdWx0cyA9IGdlbV9tbWFwX19jcHUoaTkxNSwgb2JqWzBdLmhhbmRs ZSwgMCwgNDA5NiwgUFJPVF9SRUFEKTsKKwlnZW1fc2V0X2RvbWFpbihpOTE1LCBvYmpbMF0uaGFu ZGxlLCBJOTE1X0dFTV9ET01BSU5fQ1BVLCAwKTsKKworCW9ialsxXS5oYW5kbGUgPSBnZW1fY3Jl YXRlKGk5MTUsIDQwOTYpOworCW1lbXNldChyZWxvYywwLCBzaXplb2YocmVsb2MpKTsKKwlvYmpb MV0ucmVsb2NhdGlvbl9jb3VudCA9IEFSUkFZX1NJWkUocmVsb2MpOworCW9ialsxXS5yZWxvY3Nf cHRyID0gdG9fdXNlcl9wb2ludGVyKHJlbG9jKTsKKwliYmUgPSBnZW1fbW1hcF9fd2MoaTkxNSwg b2JqWzFdLmhhbmRsZSwgMCwgNDA5NiwgUFJPVF9XUklURSk7CisJZ2VtX3NldF9kb21haW4oaTkx NSwgb2JqWzFdLmhhbmRsZSwKKwkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9XQywgSTkxNV9HRU1f RE9NQUlOX1dDKTsKKworCWNzID0gYmJlOworCSpjcysrID0gMHg1IDw8IDIzOworCSpjcysrID0g MHgyNCA8PCAyMyB8IDI7IC8qIFNSTSAqLworCSpjcysrID0gbW1pb19iYXNlICsgMHgzNTg7IC8q IFRJTUVTVEFNUCAqLworCXJlbG9jWzBdLnRhcmdldF9oYW5kbGUgPSBvYmpbMF0uaGFuZGxlOwor CXJlbG9jWzBdLm9mZnNldCA9IChjcyAtIGJiZSkgKiBzaXplb2YoKmNzKTsKKwkqY3MrKyA9IDA7 CisJKmNzKysgPSAwOworCSpjcysrID0gTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIHwgMTsKKwlyZWxv Y1sxXS50YXJnZXRfaGFuZGxlID0gb2JqWzFdLmhhbmRsZTsKKwlyZWxvY1sxXS5vZmZzZXQgPSAo Y3MgLSBiYmUpICogc2l6ZW9mKCpjcyk7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKworCWNz ID0gYmJlICsgNjQ7CisJKmNzKysgPSAweDI0IDw8IDIzIHwgMjsgLyogU1JNICovCisJKmNzKysg PSBtbWlvX2Jhc2UgKyAweDM1ODsgLyogVElNRVNUQU1QICovCisJcmVsb2NbMl0udGFyZ2V0X2hh bmRsZSA9IG9ialswXS5oYW5kbGU7CisJcmVsb2NbMl0ub2Zmc2V0ID0gKGNzIC0gYmJlKSAqIHNp emVvZigqY3MpOworCSpjcysrID0gcmVsb2NbMl0uZGVsdGEgPSA0OworCSpjcysrID0gMDsKKwkq Y3MrKyA9IDB4MjkgPDwgMjMgfCAyOyAvKiBMUk0gKi8KKwkqY3MrKyA9IG1taW9fYmFzZSArIDB4 NjAwOyAvKiBHUFIwICovCisJcmVsb2NbM10udGFyZ2V0X2hhbmRsZSA9IG9ialswXS5oYW5kbGU7 CisJcmVsb2NbM10ub2Zmc2V0ID0gKGNzIC0gYmJlKSAqIHNpemVvZigqY3MpOworCSpjcysrID0g MDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAweDI0IDw8IDIzIHwgMjsgLyogU1JNICovCisJKmNz KysgPSBtbWlvX2Jhc2UgKyAweDYwMDsgLyogR1BSMCAqLworCXJlbG9jWzRdLnRhcmdldF9oYW5k bGUgPSBvYmpbMF0uaGFuZGxlOworCXJlbG9jWzRdLm9mZnNldCA9IChjcyAtIGJiZSkgKiBzaXpl b2YoKmNzKTsKKwkqY3MrKyA9IHJlbG9jWzRdLmRlbHRhID0gODsKKwkqY3MrKyA9IDA7CisJKmNz KysgPSAweGEgPDwgMjM7CisKKwltZW1zZXQoJmViLCAwLCBzaXplb2YoZWIpKTsKKwllYi5idWZm ZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihvYmopOworCWViLmJ1ZmZlcl9jb3VudCA9IEFSUkFZ X1NJWkUob2JqKTsKKwllYi5mbGFncyA9IGVuZ2luZTsKKwllYi5mbGFncyB8PSBMT0NBTF9JOTE1 X0VYRUNfTk9fUkVMT0M7CisKKwl2ID0gMDsKKwlpZ3RfbWVhbl9pbml0KCZtZWFuKTsKKwlpZ3Rf dW50aWxfdGltZW91dCg1KSB7CisJCWViLnJzdmQxID0gY3R4WzBdOworCQllYi5iYXRjaF9zdGFy dF9vZmZzZXQgPSAwOworCQlnZW1fZXhlY2J1ZihpOTE1LCAmZWIpOworCisJCXdoaWxlIChyZXN1 bHRzWzBdID09IHYpCisJCQlpZ3RfYXNzZXJ0KGdlbV9ib19idXN5KGk5MTUsIG9ialsxXS5oYW5k bGUpKTsKKworCQllYi5yc3ZkMSA9IGN0eFsxXTsKKwkJZWIuYmF0Y2hfc3RhcnRfb2Zmc2V0ID0g NjQgKiBzaXplb2YoKmNzKTsKKwkJZ2VtX2V4ZWNidWYoaTkxNSwgJmViKTsKKworCQkqYmJlID0g MHhhIDw8IDIzOworCQlnZW1fc3luYyhpOTE1LCBvYmpbMV0uaGFuZGxlKTsKKwkJKmJiZSA9IDB4 NSA8PCAyMzsKKworCQl2ID0gcmVzdWx0c1swXTsKKwkJaWd0X21lYW5fYWRkKCZtZWFuLCAocmVz dWx0c1sxXSAtIHJlc3VsdHNbMl0pICogcmNzX2Nsb2NrKTsKKwl9CisJaWd0X2luZm8oIiVzIGNv bnRleHQgc3dpdGNoIGxhdGVuY3klczogJS4yZsKxJS4yZnVzXG4iLAorCQkgbmFtZSwgZmxhZ3Mg JiBQUkVFTVBUID8gIiAocHJlZW1wdCkiIDogIiIsCisJCSAxZS0zICogaWd0X21lYW5fZ2V0KCZt ZWFuKSwKKwkJIDFlLTMgKiBzcXJ0KGlndF9tZWFuX2dldF92YXJpYW5jZSgmbWVhbikpKTsKKwlt dW5tYXAocmVzdWx0cywgNDA5Nik7CisJbXVubWFwKGJiZSwgNDA5Nik7CisKKwlmb3IgKGludCBp ID0gMDsgaSA8IEFSUkFZX1NJWkUob2JqKTsgaSsrKQorCQlnZW1fY2xvc2UoaTkxNSwgb2JqW2ld LmhhbmRsZSk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3R4KTsgaSsrKQor CQlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUsIGN0eFtpXSk7Cit9CisKIHN0YXRpYyBkb3VibGUg Y2xvY2tyYXRlKGludCBpOTE1LCBpbnQgcmVnKQogewogCXZvbGF0aWxlIHVpbnQzMl90ICptbWlv OwpAQCAtNzUzLDEyICs4ODYsMjEgQEAgaWd0X21haW4KIAkJCQkJCQkgIGUtPmV4ZWNfaWQgfCBl LT5mbGFncywKIAkJCQkJCQkgIGUtPm5hbWUsIENPUkspOwogCisJCQkJaWd0X3N1YnRlc3RfZigi JXMtY3MiLCBlLT5uYW1lKQorCQkJCQljb250ZXh0X3N3aXRjaChkZXZpY2UsCisJCQkJCQkgICAg ICAgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLAorCQkJCQkJICAgICAgIGUtPm5hbWUsIDApOwogCQkJ CWlndF9zdWJ0ZXN0X2dyb3VwIHsKIAkJCQkJaWd0X2ZpeHR1cmUgewogCQkJCQkJZ2VtX3JlcXVp cmVfY29udGV4dHMoZGV2aWNlKTsKIAkJCQkJCWlndF9yZXF1aXJlKGdlbV9zY2hlZHVsZXJfaGFz X3ByZWVtcHRpb24oZGV2aWNlKSk7CiAJCQkJCX0KIAorCQkJCQlpZ3Rfc3VidGVzdF9mKCIlcy1j cy1wcmVlbXB0IiwgZS0+bmFtZSkKKwkJCQkJCWNvbnRleHRfc3dpdGNoKGRldmljZSwKKwkJCQkJ CQkJZS0+ZXhlY19pZCB8IGUtPmZsYWdzLAorCQkJCQkJCQllLT5uYW1lLCBQUkVFTVBUKTsKKwog CQkJCQlpZ3Rfc3VidGVzdF9mKCIlcy1wcmVlbXB0aW9uIiwgZS0+bmFtZSkKIAkJCQkJCWxhdGVu Y3lfZnJvbV9yaW5nKGRldmljZSwKIAkJCQkJCQkJICBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsCi0t IAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==