From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH i-g-t 01/24] i915/gem_exec_latency: Measure the latency of context switching Date: Fri, 22 Mar 2019 09:21:32 +0000 Message-ID: <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: 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 LnVrPgotLS0KIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jIHwgMTQ1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jIGIvdGVzdHMvaTkx NS9nZW1fZXhlY19sYXRlbmN5LmMKaW5kZXggZjMwOGUwODUxLi4wNGVjN2Q5ZDIgMTAwNjQ0Ci0t LSBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4 ZWNfbGF0ZW5jeS5jCkBAIC02MjksNiArNjI5LDE0MiBAQCBydGhvZ19sYXRlbmN5X29uX3Jpbmco aW50IGZkLCB1bnNpZ25lZCBpbnQgZW5naW5lLCBjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBp bgogCW11bm1hcChyZXN1bHRzLCBNTUFQX1NaKTsKIH0KIAorc3RhdGljIHZvaWQgY29udGV4dF9z d2l0Y2goaW50IGk5MTUsCisJCQkgICB1bnNpZ25lZCBpbnQgZW5naW5lLCBjb25zdCBjaGFyICpu YW1lLAorCQkJICAgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY19vYmplY3QyIG9ialsyXTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50 cnkgcmVsb2NbNV07CisJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBlYjsKKwl1aW50 MzJfdCAqY3MsICpiYmUsICpyZXN1bHRzLCB2OworCXVuc2lnbmVkIGludCBtbWlvX2Jhc2U7CisJ c3RydWN0IGlndF9tZWFuIG1lYW47CisJdWludDMyX3QgY3R4WzJdOworCisJLyogWFhYIGk5MTVf cXVlcnkoKSEgKi8KKwlzd2l0Y2ggKGVuZ2luZSkgeworCWNhc2UgSTkxNV9FWEVDX0RFRkFVTFQ6 CisJY2FzZSBJOTE1X0VYRUNfUkVOREVSOgorCQltbWlvX2Jhc2UgPSAweDIwMDA7CisJCWJyZWFr OworI2lmIDAKKwljYXNlIEk5MTVfRVhFQ19CU0Q6CisJCW1taW9fYmFzZSA9IDB4MTIwMDA7CisJ CWJyZWFrOworI2VuZGlmCisJY2FzZSBJOTE1X0VYRUNfQkxUOgorCQltbWlvX2Jhc2UgPSAweDIy MDAwOworCQlicmVhazsKKworCWNhc2UgSTkxNV9FWEVDX1ZFQk9YOgorCQlpZiAoaW50ZWxfZ2Vu KGludGVsX2dldF9kcm1fZGV2aWQoaTkxNSkpID49IDExKQorCQkJbW1pb19iYXNlID0gMHgxZDgw MDA7CisJCWVsc2UKKwkJCW1taW9fYmFzZSA9IDB4MWEwMDA7CisJCWJyZWFrOworCisJZGVmYXVs dDoKKwkJaWd0X3NraXAoIm1taW8gYmFzZSBub3Qga25vd25cbiIpOworCX0KKworCWZvciAoaW50 IGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdHgpOyBpKyspCisJCWN0eFtpXSA9IGdlbV9jb250ZXh0 X2NyZWF0ZShpOTE1KTsKKworCWlmIChmbGFncyAmIFBSRUVNUFQpIHsKKwkJZ2VtX2NvbnRleHRf c2V0X3ByaW9yaXR5KGk5MTUsIGN0eFswXSwgLTEwMjMpOworCQlnZW1fY29udGV4dF9zZXRfcHJp b3JpdHkoaTkxNSwgY3R4WzFdLCArMTAyMyk7CisJfQorCisJbWVtc2V0KG9iaiwgMCwgc2l6ZW9m KG9iaikpOworCW9ialswXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGk5MTUsIDQwOTYpOworCWdlbV9z ZXRfY2FjaGluZyhpOTE1LCBvYmpbMF0uaGFuZGxlLCAxKTsKKwlyZXN1bHRzID0gZ2VtX21tYXBf X2NwdShpOTE1LCBvYmpbMF0uaGFuZGxlLCAwLCA0MDk2LCBQUk9UX1JFQUQpOworCWdlbV9zZXRf ZG9tYWluKGk5MTUsIG9ialswXS5oYW5kbGUsIEk5MTVfR0VNX0RPTUFJTl9DUFUsIDApOworCisJ b2JqWzFdLmhhbmRsZSA9IGdlbV9jcmVhdGUoaTkxNSwgNDA5Nik7CisJbWVtc2V0KHJlbG9jLDAs IHNpemVvZihyZWxvYykpOworCW9ialsxXS5yZWxvY2F0aW9uX2NvdW50ID0gQVJSQVlfU0laRShy ZWxvYyk7CisJb2JqWzFdLnJlbG9jc19wdHIgPSB0b191c2VyX3BvaW50ZXIocmVsb2MpOworCWJi ZSA9IGdlbV9tbWFwX193YyhpOTE1LCBvYmpbMV0uaGFuZGxlLCAwLCA0MDk2LCBQUk9UX1dSSVRF KTsKKwlnZW1fc2V0X2RvbWFpbihpOTE1LCBvYmpbMV0uaGFuZGxlLAorCQkgICAgICAgSTkxNV9H RU1fRE9NQUlOX1dDLCBJOTE1X0dFTV9ET01BSU5fV0MpOworCisJY3MgPSBiYmU7CisJKmNzKysg PSAweDUgPDwgMjM7CisJKmNzKysgPSAweDI0IDw8IDIzIHwgMjsgLyogU1JNICovCisJKmNzKysg PSBtbWlvX2Jhc2UgKyAweDM1ODsgLyogVElNRVNUQU1QICovCisJcmVsb2NbMF0udGFyZ2V0X2hh bmRsZSA9IG9ialswXS5oYW5kbGU7CisJcmVsb2NbMF0ub2Zmc2V0ID0gKGNzIC0gYmJlKSAqIHNp emVvZigqY3MpOworCSpjcysrID0gMDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSBNSV9CQVRDSF9C VUZGRVJfU1RBUlQgfCAxOworCXJlbG9jWzFdLnRhcmdldF9oYW5kbGUgPSBvYmpbMV0uaGFuZGxl OworCXJlbG9jWzFdLm9mZnNldCA9IChjcyAtIGJiZSkgKiBzaXplb2YoKmNzKTsKKwkqY3MrKyA9 IDA7CisJKmNzKysgPSAwOworCisJY3MgPSBiYmUgKyA2NDsKKwkqY3MrKyA9IDB4MjQgPDwgMjMg fCAyOyAvKiBTUk0gKi8KKwkqY3MrKyA9IG1taW9fYmFzZSArIDB4MzU4OyAvKiBUSU1FU1RBTVAg Ki8KKwlyZWxvY1syXS50YXJnZXRfaGFuZGxlID0gb2JqWzBdLmhhbmRsZTsKKwlyZWxvY1syXS5v ZmZzZXQgPSAoY3MgLSBiYmUpICogc2l6ZW9mKCpjcyk7CisJKmNzKysgPSByZWxvY1syXS5kZWx0 YSA9IDQ7CisJKmNzKysgPSAwOworCSpjcysrID0gMHgyOSA8PCAyMyB8IDI7IC8qIExSTSAqLwor CSpjcysrID0gbW1pb19iYXNlICsgMHg2MDA7IC8qIEdQUjAgKi8KKwlyZWxvY1szXS50YXJnZXRf aGFuZGxlID0gb2JqWzBdLmhhbmRsZTsKKwlyZWxvY1szXS5vZmZzZXQgPSAoY3MgLSBiYmUpICog c2l6ZW9mKCpjcyk7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKwkqY3MrKyA9IDB4MjQgPDwg MjMgfCAyOyAvKiBTUk0gKi8KKwkqY3MrKyA9IG1taW9fYmFzZSArIDB4NjAwOyAvKiBHUFIwICov CisJcmVsb2NbNF0udGFyZ2V0X2hhbmRsZSA9IG9ialswXS5oYW5kbGU7CisJcmVsb2NbNF0ub2Zm c2V0ID0gKGNzIC0gYmJlKSAqIHNpemVvZigqY3MpOworCSpjcysrID0gcmVsb2NbNF0uZGVsdGEg PSA4OworCSpjcysrID0gMDsKKwkqY3MrKyA9IDB4YSA8PCAyMzsKKworCW1lbXNldCgmZWIsIDAs IHNpemVvZihlYikpOworCWViLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKG9iaik7CisJ ZWIuYnVmZmVyX2NvdW50ID0gQVJSQVlfU0laRShvYmopOworCWViLmZsYWdzID0gZW5naW5lOwor CWViLmZsYWdzIHw9IExPQ0FMX0k5MTVfRVhFQ19OT19SRUxPQzsKKworCXYgPSAwOworCWlndF9t ZWFuX2luaXQoJm1lYW4pOworCWlndF91bnRpbF90aW1lb3V0KDUpIHsKKwkJZWIucnN2ZDEgPSBj dHhbMF07CisJCWViLmJhdGNoX3N0YXJ0X29mZnNldCA9IDA7CisJCWdlbV9leGVjYnVmKGk5MTUs ICZlYik7CisKKwkJd2hpbGUgKHJlc3VsdHNbMF0gPT0gdikKKwkJCWlndF9hc3NlcnQoZ2VtX2Jv X2J1c3koaTkxNSwgb2JqWzFdLmhhbmRsZSkpOworCisJCWViLnJzdmQxID0gY3R4WzFdOworCQll Yi5iYXRjaF9zdGFydF9vZmZzZXQgPSA2NCAqIHNpemVvZigqY3MpOworCQlnZW1fZXhlY2J1Zihp OTE1LCAmZWIpOworCisJCSpiYmUgPSAweGEgPDwgMjM7CisJCWdlbV9zeW5jKGk5MTUsIG9ialsx XS5oYW5kbGUpOworCQkqYmJlID0gMHg1IDw8IDIzOworCisJCXYgPSByZXN1bHRzWzBdOworCQlp Z3RfbWVhbl9hZGQoJm1lYW4sIChyZXN1bHRzWzFdIC0gcmVzdWx0c1syXSkgKiByY3NfY2xvY2sp OworCX0KKwlpZ3RfaW5mbygiJXMgY29udGV4dCBzd2l0Y2ggbGF0ZW5jeSVzOiAlLjJmwrElLjJm dXNcbiIsCisJCSBuYW1lLCBmbGFncyAmIFBSRUVNUFQgPyAiIChwcmVlbXB0KSIgOiAiIiwKKwkJ IDFlLTMgKiBpZ3RfbWVhbl9nZXQoJm1lYW4pLAorCQkgMWUtMyAqIHNxcnQoaWd0X21lYW5fZ2V0 X3ZhcmlhbmNlKCZtZWFuKSkpOworCW11bm1hcChyZXN1bHRzLCA0MDk2KTsKKwltdW5tYXAoYmJl LCA0MDk2KTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShvYmopOyBpKyspCisJ CWdlbV9jbG9zZShpOTE1LCBvYmpbaV0uaGFuZGxlKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwg QVJSQVlfU0laRShjdHgpOyBpKyspCisJCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3R4W2ld KTsKK30KKwogc3RhdGljIGRvdWJsZSBjbG9ja3JhdGUoaW50IGk5MTUsIGludCByZWcpCiB7CiAJ dm9sYXRpbGUgdWludDMyX3QgKm1taW87CkBAIC03NTQsMTIgKzg5MCwyMSBAQCBpZ3RfbWFpbgog CQkJCQkJCSAgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLAogCQkJCQkJCSAgZS0+bmFtZSwgQ09SSyk7 CiAKKwkJCQlpZ3Rfc3VidGVzdF9mKCIlcy1jcyIsIGUtPm5hbWUpCisJCQkJCWNvbnRleHRfc3dp dGNoKGRldmljZSwKKwkJCQkJCSAgICAgICBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsCisJCQkJCQkg ICAgICAgZS0+bmFtZSwgMCk7CiAJCQkJaWd0X3N1YnRlc3RfZ3JvdXAgewogCQkJCQlpZ3RfZml4 dHVyZSB7CiAJCQkJCQlnZW1fcmVxdWlyZV9jb250ZXh0cyhkZXZpY2UpOwogCQkJCQkJaWd0X3Jl cXVpcmUoZ2VtX3NjaGVkdWxlcl9oYXNfcHJlZW1wdGlvbihkZXZpY2UpKTsKIAkJCQkJfQogCisJ CQkJCWlndF9zdWJ0ZXN0X2YoIiVzLWNzLXByZWVtcHQiLCBlLT5uYW1lKQorCQkJCQkJY29udGV4 dF9zd2l0Y2goZGV2aWNlLAorCQkJCQkJCQllLT5leGVjX2lkIHwgZS0+ZmxhZ3MsCisJCQkJCQkJ CWUtPm5hbWUsIFBSRUVNUFQpOworCiAJCQkJCWlndF9zdWJ0ZXN0X2YoIiVzLXByZWVtcHRpb24i LCBlLT5uYW1lKQogCQkJCQkJbGF0ZW5jeV9mcm9tX3JpbmcoZGV2aWNlLAogCQkJCQkJCQkgIGUt PmV4ZWNfaWQgfCBlLT5mbGFncywKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Chris Wilson Date: Fri, 22 Mar 2019 09:21:32 +0000 Message-Id: <20190322092155.1656-1-chris@chris-wilson.co.uk> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 01/24] 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: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org List-ID: TWVhc3VyZSB0aGUgYmFzZWxpbmUgbGF0ZW5jeSBiZXR3ZWVuIGNvbnRleHRzIGluIG9yZGVyIHRv IGRpcmVjdGx5CmNvbXBhcmUgdGhhdCB3aXRoIHRoZSBhZGRpdGlvbmFsIGNvc3Qgb2YgcHJlZW1w dGlvbi4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgotLS0KIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jIHwgMTQ1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jIGIvdGVzdHMvaTkx NS9nZW1fZXhlY19sYXRlbmN5LmMKaW5kZXggZjMwOGUwODUxLi4wNGVjN2Q5ZDIgMTAwNjQ0Ci0t LSBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4 ZWNfbGF0ZW5jeS5jCkBAIC02MjksNiArNjI5LDE0MiBAQCBydGhvZ19sYXRlbmN5X29uX3Jpbmco aW50IGZkLCB1bnNpZ25lZCBpbnQgZW5naW5lLCBjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBp bgogCW11bm1hcChyZXN1bHRzLCBNTUFQX1NaKTsKIH0KIAorc3RhdGljIHZvaWQgY29udGV4dF9z d2l0Y2goaW50IGk5MTUsCisJCQkgICB1bnNpZ25lZCBpbnQgZW5naW5lLCBjb25zdCBjaGFyICpu YW1lLAorCQkJICAgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY19vYmplY3QyIG9ialsyXTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50 cnkgcmVsb2NbNV07CisJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBlYjsKKwl1aW50 MzJfdCAqY3MsICpiYmUsICpyZXN1bHRzLCB2OworCXVuc2lnbmVkIGludCBtbWlvX2Jhc2U7CisJ c3RydWN0IGlndF9tZWFuIG1lYW47CisJdWludDMyX3QgY3R4WzJdOworCisJLyogWFhYIGk5MTVf cXVlcnkoKSEgKi8KKwlzd2l0Y2ggKGVuZ2luZSkgeworCWNhc2UgSTkxNV9FWEVDX0RFRkFVTFQ6 CisJY2FzZSBJOTE1X0VYRUNfUkVOREVSOgorCQltbWlvX2Jhc2UgPSAweDIwMDA7CisJCWJyZWFr OworI2lmIDAKKwljYXNlIEk5MTVfRVhFQ19CU0Q6CisJCW1taW9fYmFzZSA9IDB4MTIwMDA7CisJ CWJyZWFrOworI2VuZGlmCisJY2FzZSBJOTE1X0VYRUNfQkxUOgorCQltbWlvX2Jhc2UgPSAweDIy MDAwOworCQlicmVhazsKKworCWNhc2UgSTkxNV9FWEVDX1ZFQk9YOgorCQlpZiAoaW50ZWxfZ2Vu KGludGVsX2dldF9kcm1fZGV2aWQoaTkxNSkpID49IDExKQorCQkJbW1pb19iYXNlID0gMHgxZDgw MDA7CisJCWVsc2UKKwkJCW1taW9fYmFzZSA9IDB4MWEwMDA7CisJCWJyZWFrOworCisJZGVmYXVs dDoKKwkJaWd0X3NraXAoIm1taW8gYmFzZSBub3Qga25vd25cbiIpOworCX0KKworCWZvciAoaW50 IGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdHgpOyBpKyspCisJCWN0eFtpXSA9IGdlbV9jb250ZXh0 X2NyZWF0ZShpOTE1KTsKKworCWlmIChmbGFncyAmIFBSRUVNUFQpIHsKKwkJZ2VtX2NvbnRleHRf c2V0X3ByaW9yaXR5KGk5MTUsIGN0eFswXSwgLTEwMjMpOworCQlnZW1fY29udGV4dF9zZXRfcHJp b3JpdHkoaTkxNSwgY3R4WzFdLCArMTAyMyk7CisJfQorCisJbWVtc2V0KG9iaiwgMCwgc2l6ZW9m KG9iaikpOworCW9ialswXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGk5MTUsIDQwOTYpOworCWdlbV9z ZXRfY2FjaGluZyhpOTE1LCBvYmpbMF0uaGFuZGxlLCAxKTsKKwlyZXN1bHRzID0gZ2VtX21tYXBf X2NwdShpOTE1LCBvYmpbMF0uaGFuZGxlLCAwLCA0MDk2LCBQUk9UX1JFQUQpOworCWdlbV9zZXRf ZG9tYWluKGk5MTUsIG9ialswXS5oYW5kbGUsIEk5MTVfR0VNX0RPTUFJTl9DUFUsIDApOworCisJ b2JqWzFdLmhhbmRsZSA9IGdlbV9jcmVhdGUoaTkxNSwgNDA5Nik7CisJbWVtc2V0KHJlbG9jLDAs IHNpemVvZihyZWxvYykpOworCW9ialsxXS5yZWxvY2F0aW9uX2NvdW50ID0gQVJSQVlfU0laRShy ZWxvYyk7CisJb2JqWzFdLnJlbG9jc19wdHIgPSB0b191c2VyX3BvaW50ZXIocmVsb2MpOworCWJi ZSA9IGdlbV9tbWFwX193YyhpOTE1LCBvYmpbMV0uaGFuZGxlLCAwLCA0MDk2LCBQUk9UX1dSSVRF KTsKKwlnZW1fc2V0X2RvbWFpbihpOTE1LCBvYmpbMV0uaGFuZGxlLAorCQkgICAgICAgSTkxNV9H RU1fRE9NQUlOX1dDLCBJOTE1X0dFTV9ET01BSU5fV0MpOworCisJY3MgPSBiYmU7CisJKmNzKysg PSAweDUgPDwgMjM7CisJKmNzKysgPSAweDI0IDw8IDIzIHwgMjsgLyogU1JNICovCisJKmNzKysg PSBtbWlvX2Jhc2UgKyAweDM1ODsgLyogVElNRVNUQU1QICovCisJcmVsb2NbMF0udGFyZ2V0X2hh bmRsZSA9IG9ialswXS5oYW5kbGU7CisJcmVsb2NbMF0ub2Zmc2V0ID0gKGNzIC0gYmJlKSAqIHNp emVvZigqY3MpOworCSpjcysrID0gMDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSBNSV9CQVRDSF9C VUZGRVJfU1RBUlQgfCAxOworCXJlbG9jWzFdLnRhcmdldF9oYW5kbGUgPSBvYmpbMV0uaGFuZGxl OworCXJlbG9jWzFdLm9mZnNldCA9IChjcyAtIGJiZSkgKiBzaXplb2YoKmNzKTsKKwkqY3MrKyA9 IDA7CisJKmNzKysgPSAwOworCisJY3MgPSBiYmUgKyA2NDsKKwkqY3MrKyA9IDB4MjQgPDwgMjMg fCAyOyAvKiBTUk0gKi8KKwkqY3MrKyA9IG1taW9fYmFzZSArIDB4MzU4OyAvKiBUSU1FU1RBTVAg Ki8KKwlyZWxvY1syXS50YXJnZXRfaGFuZGxlID0gb2JqWzBdLmhhbmRsZTsKKwlyZWxvY1syXS5v ZmZzZXQgPSAoY3MgLSBiYmUpICogc2l6ZW9mKCpjcyk7CisJKmNzKysgPSByZWxvY1syXS5kZWx0 YSA9IDQ7CisJKmNzKysgPSAwOworCSpjcysrID0gMHgyOSA8PCAyMyB8IDI7IC8qIExSTSAqLwor CSpjcysrID0gbW1pb19iYXNlICsgMHg2MDA7IC8qIEdQUjAgKi8KKwlyZWxvY1szXS50YXJnZXRf aGFuZGxlID0gb2JqWzBdLmhhbmRsZTsKKwlyZWxvY1szXS5vZmZzZXQgPSAoY3MgLSBiYmUpICog c2l6ZW9mKCpjcyk7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKwkqY3MrKyA9IDB4MjQgPDwg MjMgfCAyOyAvKiBTUk0gKi8KKwkqY3MrKyA9IG1taW9fYmFzZSArIDB4NjAwOyAvKiBHUFIwICov CisJcmVsb2NbNF0udGFyZ2V0X2hhbmRsZSA9IG9ialswXS5oYW5kbGU7CisJcmVsb2NbNF0ub2Zm c2V0ID0gKGNzIC0gYmJlKSAqIHNpemVvZigqY3MpOworCSpjcysrID0gcmVsb2NbNF0uZGVsdGEg PSA4OworCSpjcysrID0gMDsKKwkqY3MrKyA9IDB4YSA8PCAyMzsKKworCW1lbXNldCgmZWIsIDAs IHNpemVvZihlYikpOworCWViLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKG9iaik7CisJ ZWIuYnVmZmVyX2NvdW50ID0gQVJSQVlfU0laRShvYmopOworCWViLmZsYWdzID0gZW5naW5lOwor CWViLmZsYWdzIHw9IExPQ0FMX0k5MTVfRVhFQ19OT19SRUxPQzsKKworCXYgPSAwOworCWlndF9t ZWFuX2luaXQoJm1lYW4pOworCWlndF91bnRpbF90aW1lb3V0KDUpIHsKKwkJZWIucnN2ZDEgPSBj dHhbMF07CisJCWViLmJhdGNoX3N0YXJ0X29mZnNldCA9IDA7CisJCWdlbV9leGVjYnVmKGk5MTUs ICZlYik7CisKKwkJd2hpbGUgKHJlc3VsdHNbMF0gPT0gdikKKwkJCWlndF9hc3NlcnQoZ2VtX2Jv X2J1c3koaTkxNSwgb2JqWzFdLmhhbmRsZSkpOworCisJCWViLnJzdmQxID0gY3R4WzFdOworCQll Yi5iYXRjaF9zdGFydF9vZmZzZXQgPSA2NCAqIHNpemVvZigqY3MpOworCQlnZW1fZXhlY2J1Zihp OTE1LCAmZWIpOworCisJCSpiYmUgPSAweGEgPDwgMjM7CisJCWdlbV9zeW5jKGk5MTUsIG9ialsx XS5oYW5kbGUpOworCQkqYmJlID0gMHg1IDw8IDIzOworCisJCXYgPSByZXN1bHRzWzBdOworCQlp Z3RfbWVhbl9hZGQoJm1lYW4sIChyZXN1bHRzWzFdIC0gcmVzdWx0c1syXSkgKiByY3NfY2xvY2sp OworCX0KKwlpZ3RfaW5mbygiJXMgY29udGV4dCBzd2l0Y2ggbGF0ZW5jeSVzOiAlLjJmwrElLjJm dXNcbiIsCisJCSBuYW1lLCBmbGFncyAmIFBSRUVNUFQgPyAiIChwcmVlbXB0KSIgOiAiIiwKKwkJ IDFlLTMgKiBpZ3RfbWVhbl9nZXQoJm1lYW4pLAorCQkgMWUtMyAqIHNxcnQoaWd0X21lYW5fZ2V0 X3ZhcmlhbmNlKCZtZWFuKSkpOworCW11bm1hcChyZXN1bHRzLCA0MDk2KTsKKwltdW5tYXAoYmJl LCA0MDk2KTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShvYmopOyBpKyspCisJ CWdlbV9jbG9zZShpOTE1LCBvYmpbaV0uaGFuZGxlKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwg QVJSQVlfU0laRShjdHgpOyBpKyspCisJCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3R4W2ld KTsKK30KKwogc3RhdGljIGRvdWJsZSBjbG9ja3JhdGUoaW50IGk5MTUsIGludCByZWcpCiB7CiAJ dm9sYXRpbGUgdWludDMyX3QgKm1taW87CkBAIC03NTQsMTIgKzg5MCwyMSBAQCBpZ3RfbWFpbgog CQkJCQkJCSAgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLAogCQkJCQkJCSAgZS0+bmFtZSwgQ09SSyk7 CiAKKwkJCQlpZ3Rfc3VidGVzdF9mKCIlcy1jcyIsIGUtPm5hbWUpCisJCQkJCWNvbnRleHRfc3dp dGNoKGRldmljZSwKKwkJCQkJCSAgICAgICBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsCisJCQkJCQkg ICAgICAgZS0+bmFtZSwgMCk7CiAJCQkJaWd0X3N1YnRlc3RfZ3JvdXAgewogCQkJCQlpZ3RfZml4 dHVyZSB7CiAJCQkJCQlnZW1fcmVxdWlyZV9jb250ZXh0cyhkZXZpY2UpOwogCQkJCQkJaWd0X3Jl cXVpcmUoZ2VtX3NjaGVkdWxlcl9oYXNfcHJlZW1wdGlvbihkZXZpY2UpKTsKIAkJCQkJfQogCisJ CQkJCWlndF9zdWJ0ZXN0X2YoIiVzLWNzLXByZWVtcHQiLCBlLT5uYW1lKQorCQkJCQkJY29udGV4 dF9zd2l0Y2goZGV2aWNlLAorCQkJCQkJCQllLT5leGVjX2lkIHwgZS0+ZmxhZ3MsCisJCQkJCQkJ CWUtPm5hbWUsIFBSRUVNUFQpOworCiAJCQkJCWlndF9zdWJ0ZXN0X2YoIiVzLXByZWVtcHRpb24i LCBlLT5uYW1lKQogCQkJCQkJbGF0ZW5jeV9mcm9tX3JpbmcoZGV2aWNlLAogCQkJCQkJCQkgIGUt PmV4ZWNfaWQgfCBlLT5mbGFncywKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2