From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 1/2] drm/i915: Reduce recursive mutex locking from the shrinker Date: Fri, 4 Jan 2019 14:02:16 +0000 Message-ID: <20190104140217.17822-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 30A996EC70 for ; Fri, 4 Jan 2019 14:02:21 +0000 (UTC) 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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkluIHR3byBj b2RlcGF0aHMgaW50ZXJuYWwgdG8gdGhlIHNocmlua2VyIHdlIGtub3cgd2Ugd2lsbCBlbmQgdXAg dGFraW5nCnRoZSByZXN1cnNpdmUgbXV0ZXggcGF0aC4KCkl0IGluc3RlYWQgZmVlbHMgbW9yZSBl bGVnYW50IHRvIGF2b2lkIHRoaXMgYWx0b2dldGhlciBhbmQgbm90IGNhbGwKbXV0ZXhfdHJ5bG9j a19yZWN1cnNpdmUgaW4gdGhvc2UgY2FzZXMuCgpXZSBhY2hpZXZlIHRoaXMgYnkgZXh0cmFjdGlu ZyB0aGUgc2hyaW5raW5nIHBhcnQgdG8gX19pOTE1X2dlbV9zaHJpbmssCndyYXBwZWQgYnkgc3Ry dWN0IG11dGV4IHRha2luZyBpOTE1X2dlbV9zaHJpbmsuCgpBdCB0aGUgc2FtZSB0aW1lIG1vdmUg dGhlIHJ1bnRpbWUgcG0gcmVmZXJlbmNlIHRha2luZyB0byBhbHdheXMgYmUgaW4gdGhlCnVzdWFs LCBiZWZvcmUgc3RydWN0IG11dGV4LCBvcmRlci4KCnYyOgogKiBEb24ndCB1c2UgZmxhZ3MgYnV0 IHNwbGl0IGk5MTVfZ2VtX3NocmluayBpbnRvIGxvY2tlZCBhbmQgdW5sb2NrZWQuCgpTaWduZWQt b2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMgfCAxNTIgKysrKysrKysrKysr Ky0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA2OSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwppbmRleCBlYTkw ZDNhMGQ1MTEuLjFlZTViMDhkYWIxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fc2hyaW5rZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9z aHJpbmtlci5jCkBAIC0xMTcsMzYgKzExNywxMSBAQCBzdGF0aWMgYm9vbCB1bnNhZmVfZHJvcF9w YWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXJldHVybiAhaTkxNV9nZW1f b2JqZWN0X2hhc19wYWdlcyhvYmopOwogfQogCi0vKioKLSAqIGk5MTVfZ2VtX3NocmluayAtIFNo cmluayBidWZmZXIgb2JqZWN0IGNhY2hlcwotICogQGk5MTU6IGk5MTUgZGV2aWNlCi0gKiBAdGFy Z2V0OiBhbW91bnQgb2YgbWVtb3J5IHRvIG1ha2UgYXZhaWxhYmxlLCBpbiBwYWdlcwotICogQG5y X3NjYW5uZWQ6IG9wdGlvbmFsIG91dHB1dCBmb3IgbnVtYmVyIG9mIHBhZ2VzIHNjYW5uZWQgKGlu Y3JlbWVudGFsKQotICogQGZsYWdzOiBjb250cm9sIGZsYWdzIGZvciBzZWxlY3RpbmcgY2FjaGUg dHlwZXMKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBtYWluIGludGVyZmFjZSB0byB0aGUg c2hyaW5rZXIuIEl0IHdpbGwgdHJ5IHRvIHJlbGVhc2UKLSAqIHVwIHRvIEB0YXJnZXQgcGFnZXMg b2YgbWFpbiBtZW1vcnkgYmFja2luZyBzdG9yYWdlIGZyb20gYnVmZmVyIG9iamVjdHMuCi0gKiBT ZWxlY3Rpb24gb2YgdGhlIHNwZWNpZmljIGNhY2hlcyBjYW4gYmUgZG9uZSB3aXRoIEBmbGFncy4g VGhpcyBpcyBlLmcuIHVzZWZ1bAotICogd2hlbiBwdXJnZWFibGUgb2JqZWN0cyBzaG91bGQgYmUg cmVtb3ZlZCBmcm9tIGNhY2hlcyBwcmVmZXJlbnRpYWxseS4KLSAqCi0gKiBOb3RlIHRoYXQgaXQn cyBub3QgZ3VhcmFudGVlZCB0aGF0IHJlbGVhc2VkIGFtb3VudCBpcyBhY3R1YWxseSBhdmFpbGFi bGUgYXMKLSAqIGZyZWUgc3lzdGVtIG1lbW9yeSAtIHRoZSBwYWdlcyBtaWdodCBzdGlsbCBiZSBp bi11c2VkIHRvIGR1ZSB0byBvdGhlciByZWFzb25zCi0gKiAobGlrZSBjcHUgbW1hcHMpIG9yIHRo ZSBtbSBjb3JlIGhhcyByZXVzZWQgdGhlbSBiZWZvcmUgd2UgY291bGQgZ3JhYiB0aGVtLgotICog VGhlcmVmb3JlIGNvZGUgdGhhdCBuZWVkcyB0byBleHBsaWNpdGx5IHNocmluayBidWZmZXIgb2Jq ZWN0cyBjYWNoZXMgKGUuZy4gdG8KLSAqIGF2b2lkIGRlYWRsb2NrcyBpbiBtZW1vcnkgcmVjbGFp bSkgbXVzdCBmYWxsIGJhY2sgdG8gaTkxNV9nZW1fc2hyaW5rX2FsbCgpLgotICoKLSAqIEFsc28g bm90ZSB0aGF0IGFueSBraW5kIG9mIHBpbm5pbmcgKGJvdGggcGVyLXZtYSBhZGRyZXNzIHNwYWNl IHBpbnMgYW5kCi0gKiBiYWNraW5nIHN0b3JhZ2UgcGlucyBhdCB0aGUgYnVmZmVyIG9iamVjdCBs ZXZlbCkgcmVzdWx0IGluIHRoZSBzaHJpbmtlciBjb2RlCi0gKiBoYXZpbmcgdG8gc2tpcCB0aGUg b2JqZWN0LgotICoKLSAqIFJldHVybnM6Ci0gKiBUaGUgbnVtYmVyIG9mIHBhZ2VzIG9mIGJhY2tp bmcgc3RvcmFnZSBhY3R1YWxseSByZWxlYXNlZC4KLSAqLwogdW5zaWduZWQgbG9uZwotaTkxNV9n ZW1fc2hyaW5rKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQl1bnNpZ25lZCBsb25n IHRhcmdldCwKLQkJdW5zaWduZWQgbG9uZyAqbnJfc2Nhbm5lZCwKLQkJdW5zaWduZWQgZmxhZ3Mp CitfX2k5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJICB1 bnNpZ25lZCBsb25nIHRhcmdldCwKKwkJICB1bnNpZ25lZCBsb25nICpucl9zY2FubmVkLAorCQkg IHVuc2lnbmVkIGZsYWdzKQogewogCWNvbnN0IHN0cnVjdCB7CiAJCXN0cnVjdCBsaXN0X2hlYWQg Kmxpc3Q7CkBAIC0xNTgsMTAgKzEzMyw4IEBAIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwKIAl9LCAqcGhhc2U7CiAJdW5zaWduZWQgbG9uZyBjb3VudCA9IDA7 CiAJdW5zaWduZWQgbG9uZyBzY2FubmVkID0gMDsKLQlib29sIHVubG9jazsKIAotCWlmICghc2hy aW5rZXJfbG9jayhpOTE1LCAmdW5sb2NrKSkKLQkJcmV0dXJuIDA7CisJbG9ja2RlcF9hc3NlcnRf aGVsZCgmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAkvKgogCSAqIFdoZW4gc2hyaW5raW5n IHRoZSBhY3RpdmUgbGlzdCwgYWxzbyBjb25zaWRlciBhY3RpdmUgY29udGV4dHMuCkBAIC0xNzcs MTggKzE1MCw4IEBAIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKIAkJCQkgICAgICAgSTkxNV9XQUlUX0xPQ0tFRCwKIAkJCQkgICAgICAgTUFYX1NDSEVEVUxF X1RJTUVPVVQpOwogCi0JdHJhY2VfaTkxNV9nZW1fc2hyaW5rKGk5MTUsIHRhcmdldCwgZmxhZ3Mp OwogCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUpOwogCi0JLyoKLQkgKiBVbmJpbmRpbmcgb2Yg b2JqZWN0cyB3aWxsIHJlcXVpcmUgSFcgYWNjZXNzOyBMZXQgdXMgbm90IHdha2UgdGhlCi0JICog ZGV2aWNlIGp1c3QgdG8gcmVjb3ZlciBhIGxpdHRsZSBtZW1vcnkuIElmIGFic29sdXRlbHkgbmVj ZXNzYXJ5LAotCSAqIHdlIHdpbGwgZm9yY2UgdGhlIHdha2UgZHVyaW5nIG9vbS1ub3RpZmllci4K LQkgKi8KLQlpZiAoKGZsYWdzICYgSTkxNV9TSFJJTktfQk9VTkQpICYmCi0JICAgICFpbnRlbF9y dW50aW1lX3BtX2dldF9pZl9pbl91c2UoaTkxNSkpCi0JCWZsYWdzICY9IH5JOTE1X1NIUklOS19C T1VORDsKLQogCS8qCiAJICogQXMgd2UgbWF5IGNvbXBsZXRlbHkgcmV3cml0ZSB0aGUgKHVuKWJv dW5kIGxpc3Qgd2hpbHN0IHVuYmluZGluZwogCSAqIChkdWUgdG8gcmV0aXJpbmcgcmVxdWVzdHMp IHdlIGhhdmUgdG8gc3RyaWN0bHkgcHJvY2VzcyBvbmx5CkBAIC0yNjcsMTUgKzIzMCw3MCBAQCBp OTE1X2dlbV9zaHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCXNwaW5fdW5s b2NrKCZpOTE1LT5tbS5vYmpfbG9jayk7CiAJfQogCi0JaWYgKGZsYWdzICYgSTkxNV9TSFJJTktf Qk9VTkQpCi0JCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOwotCiAJaTkxNV9yZXRpcmVfcmVx dWVzdHMoaTkxNSk7CiAKLQlzaHJpbmtlcl91bmxvY2soaTkxNSwgdW5sb2NrKTsKLQogCWlmIChu cl9zY2FubmVkKQogCQkqbnJfc2Nhbm5lZCArPSBzY2FubmVkOworCisJcmV0dXJuIGNvdW50Owor fQorCisvKioKKyAqIGk5MTVfZ2VtX3NocmluayAtIFNocmluayBidWZmZXIgb2JqZWN0IGNhY2hl cworICogQGk5MTU6IGk5MTUgZGV2aWNlCisgKiBAdGFyZ2V0OiBhbW91bnQgb2YgbWVtb3J5IHRv IG1ha2UgYXZhaWxhYmxlLCBpbiBwYWdlcworICogQG5yX3NjYW5uZWQ6IG9wdGlvbmFsIG91dHB1 dCBmb3IgbnVtYmVyIG9mIHBhZ2VzIHNjYW5uZWQgKGluY3JlbWVudGFsKQorICogQGZsYWdzOiBj b250cm9sIGZsYWdzIGZvciBzZWxlY3RpbmcgY2FjaGUgdHlwZXMKKyAqCisgKiBUaGlzIGZ1bmN0 aW9uIGlzIHRoZSBtYWluIGludGVyZmFjZSB0byB0aGUgc2hyaW5rZXIuIEl0IHdpbGwgdHJ5IHRv IHJlbGVhc2UKKyAqIHVwIHRvIEB0YXJnZXQgcGFnZXMgb2YgbWFpbiBtZW1vcnkgYmFja2luZyBz dG9yYWdlIGZyb20gYnVmZmVyIG9iamVjdHMuCisgKiBTZWxlY3Rpb24gb2YgdGhlIHNwZWNpZmlj IGNhY2hlcyBjYW4gYmUgZG9uZSB3aXRoIEBmbGFncy4gVGhpcyBpcyBlLmcuIHVzZWZ1bAorICog d2hlbiBwdXJnZWFibGUgb2JqZWN0cyBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIGNhY2hlcyBwcmVm ZXJlbnRpYWxseS4KKyAqCisgKiBOb3RlIHRoYXQgaXQncyBub3QgZ3VhcmFudGVlZCB0aGF0IHJl bGVhc2VkIGFtb3VudCBpcyBhY3R1YWxseSBhdmFpbGFibGUgYXMKKyAqIGZyZWUgc3lzdGVtIG1l bW9yeSAtIHRoZSBwYWdlcyBtaWdodCBzdGlsbCBiZSBpbi11c2VkIHRvIGR1ZSB0byBvdGhlciBy ZWFzb25zCisgKiAobGlrZSBjcHUgbW1hcHMpIG9yIHRoZSBtbSBjb3JlIGhhcyByZXVzZWQgdGhl bSBiZWZvcmUgd2UgY291bGQgZ3JhYiB0aGVtLgorICogVGhlcmVmb3JlIGNvZGUgdGhhdCBuZWVk cyB0byBleHBsaWNpdGx5IHNocmluayBidWZmZXIgb2JqZWN0cyBjYWNoZXMgKGUuZy4gdG8KKyAq IGF2b2lkIGRlYWRsb2NrcyBpbiBtZW1vcnkgcmVjbGFpbSkgbXVzdCBmYWxsIGJhY2sgdG8gaTkx NV9nZW1fc2hyaW5rX2FsbCgpLgorICoKKyAqIEFsc28gbm90ZSB0aGF0IGFueSBraW5kIG9mIHBp bm5pbmcgKGJvdGggcGVyLXZtYSBhZGRyZXNzIHNwYWNlIHBpbnMgYW5kCisgKiBiYWNraW5nIHN0 b3JhZ2UgcGlucyBhdCB0aGUgYnVmZmVyIG9iamVjdCBsZXZlbCkgcmVzdWx0IGluIHRoZSBzaHJp bmtlciBjb2RlCisgKiBoYXZpbmcgdG8gc2tpcCB0aGUgb2JqZWN0LgorICoKKyAqIFJldHVybnM6 CisgKiBUaGUgbnVtYmVyIG9mIHBhZ2VzIG9mIGJhY2tpbmcgc3RvcmFnZSBhY3R1YWxseSByZWxl YXNlZC4KKyAqLwordW5zaWduZWQgbG9uZworaTkxNV9nZW1fc2hyaW5rKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LAorCQl1bnNpZ25lZCBsb25nIHRhcmdldCwKKwkJdW5zaWduZWQgbG9u ZyAqbnJfc2Nhbm5lZCwKKwkJdW5zaWduZWQgZmxhZ3MpCit7CisJdW5zaWduZWQgbG9uZyBjb3Vu dCA9IDA7CisJYm9vbCB1bmxvY2s7CisKKwl0cmFjZV9pOTE1X2dlbV9zaHJpbmsoaTkxNSwgdGFy Z2V0LCBmbGFncyk7CisKKwkvKgorCSAqIFVuYmluZGluZyBvZiBvYmplY3RzIHdpbGwgcmVxdWly ZSBIVyBhY2Nlc3M7IExldCB1cyBub3Qgd2FrZSB0aGUKKwkgKiBkZXZpY2UganVzdCB0byByZWNv dmVyIGEgbGl0dGxlIG1lbW9yeS4gSWYgYWJzb2x1dGVseSBuZWNlc3NhcnksCisJICogd2Ugd2ls bCBmb3JjZSB0aGUgd2FrZSBkdXJpbmcgb29tLW5vdGlmaWVyLgorCSAqLworCWlmICgoZmxhZ3Mg JiBJOTE1X1NIUklOS19CT1VORCkgJiYKKwkgICAgIWludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2lu X3VzZShpOTE1KSkKKwkJZmxhZ3MgJj0gfkk5MTVfU0hSSU5LX0JPVU5EOworCisJaWYgKCFzaHJp bmtlcl9sb2NrKGk5MTUsICZ1bmxvY2spKQorCQlnb3RvIG91dDsKKworCWNvdW50ID0gX19pOTE1 X2dlbV9zaHJpbmsoaTkxNSwgdGFyZ2V0LCBucl9zY2FubmVkLCBmbGFncyk7CisKKwlzaHJpbmtl cl91bmxvY2soaTkxNSwgdW5sb2NrKTsKKworb3V0OgorCWlmIChmbGFncyAmIEk5MTVfU0hSSU5L X0JPVU5EKQorCQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKKwogCXJldHVybiBjb3VudDsK IH0KIApAQCAtMzUyLDYgKzM3MCw3IEBAIGk5MTVfZ2VtX3Nocmlua2VyX3NjYW4oc3RydWN0IHNo cmlua2VyICpzaHJpbmtlciwgc3RydWN0IHNocmlua19jb250cm9sICpzYykKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZihzaHJpbmtlciwgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUsIG1tLnNocmlua2VyKTsKKwljb25zdCB1bnNpZ25lZCBpbnQgZmxh Z3MgPSBJOTE1X1NIUklOS19CT1VORCB8IEk5MTVfU0hSSU5LX1VOQk9VTkQ7CiAJdW5zaWduZWQg bG9uZyBmcmVlZDsKIAlib29sIHVubG9jazsKIApAQCAtMzYwLDI2ICszNzksMjEgQEAgaTkxNV9n ZW1fc2hyaW5rZXJfc2NhbihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyLCBzdHJ1Y3Qgc2hyaW5r X2NvbnRyb2wgKnNjKQogCWlmICghc2hyaW5rZXJfbG9jayhpOTE1LCAmdW5sb2NrKSkKIAkJcmV0 dXJuIFNIUklOS19TVE9QOwogCi0JZnJlZWQgPSBpOTE1X2dlbV9zaHJpbmsoaTkxNSwKLQkJCQlz Yy0+bnJfdG9fc2NhbiwKLQkJCQkmc2MtPm5yX3NjYW5uZWQsCi0JCQkJSTkxNV9TSFJJTktfQk9V TkQgfAotCQkJCUk5MTVfU0hSSU5LX1VOQk9VTkQgfAotCQkJCUk5MTVfU0hSSU5LX1BVUkdFQUJM RSk7CisJZnJlZWQgPSBfX2k5MTVfZ2VtX3NocmluayhpOTE1LAorCQkJCSAgc2MtPm5yX3RvX3Nj YW4sCisJCQkJICAmc2MtPm5yX3NjYW5uZWQsCisJCQkJICBmbGFncyB8IEk5MTVfU0hSSU5LX1BV UkdFQUJMRSk7CiAJaWYgKHNjLT5ucl9zY2FubmVkIDwgc2MtPm5yX3RvX3NjYW4pCi0JCWZyZWVk ICs9IGk5MTVfZ2VtX3NocmluayhpOTE1LAotCQkJCQkgc2MtPm5yX3RvX3NjYW4gLSBzYy0+bnJf c2Nhbm5lZCwKLQkJCQkJICZzYy0+bnJfc2Nhbm5lZCwKLQkJCQkJIEk5MTVfU0hSSU5LX0JPVU5E IHwKLQkJCQkJIEk5MTVfU0hSSU5LX1VOQk9VTkQpOworCQlmcmVlZCArPSBfX2k5MTVfZ2VtX3No cmluayhpOTE1LAorCQkJCQkgICBzYy0+bnJfdG9fc2NhbiAtIHNjLT5ucl9zY2FubmVkLAorCQkJ CQkgICAmc2MtPm5yX3NjYW5uZWQsCisJCQkJCSAgIGZsYWdzKTsKIAlpZiAoc2MtPm5yX3NjYW5u ZWQgPCBzYy0+bnJfdG9fc2NhbiAmJiBjdXJyZW50X2lzX2tzd2FwZCgpKSB7CiAJCWludGVsX3J1 bnRpbWVfcG1fZ2V0KGk5MTUpOwotCQlmcmVlZCArPSBpOTE1X2dlbV9zaHJpbmsoaTkxNSwKLQkJ CQkJIHNjLT5ucl90b19zY2FuIC0gc2MtPm5yX3NjYW5uZWQsCi0JCQkJCSAmc2MtPm5yX3NjYW5u ZWQsCi0JCQkJCSBJOTE1X1NIUklOS19BQ1RJVkUgfAotCQkJCQkgSTkxNV9TSFJJTktfQk9VTkQg fAotCQkJCQkgSTkxNV9TSFJJTktfVU5CT1VORCk7CisJCWZyZWVkICs9IF9faTkxNV9nZW1fc2hy aW5rKGk5MTUsCisJCQkJCSAgIHNjLT5ucl90b19zY2FuIC0gc2MtPm5yX3NjYW5uZWQsCisJCQkJ CSAgICZzYy0+bnJfc2Nhbm5lZCwKKwkJCQkJICAgZmxhZ3MgfCBJOTE1X1NIUklOS19BQ1RJVkUp OwogCQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKIAl9CiAKQEAgLTQ3NywxMSArNDkxLDEx IEBAIGk5MTVfZ2VtX3Nocmlua2VyX3ZtYXAoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5z aWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyCiAJCWdvdG8gb3V0OwogCiAJaW50ZWxfcnVudGlt ZV9wbV9nZXQoaTkxNSk7Ci0JZnJlZWRfcGFnZXMgKz0gaTkxNV9nZW1fc2hyaW5rKGk5MTUsIC0x VUwsIE5VTEwsCi0JCQkJICAgICAgIEk5MTVfU0hSSU5LX0JPVU5EIHwKLQkJCQkgICAgICAgSTkx NV9TSFJJTktfVU5CT1VORCB8Ci0JCQkJICAgICAgIEk5MTVfU0hSSU5LX0FDVElWRSB8Ci0JCQkJ ICAgICAgIEk5MTVfU0hSSU5LX1ZNQVBTKTsKKwlmcmVlZF9wYWdlcyArPSBfX2k5MTVfZ2VtX3No cmluayhpOTE1LCAtMVVMLCBOVUxMLAorCQkJCSAgICAgICAgIEk5MTVfU0hSSU5LX0JPVU5EIHwK KwkJCQkgICAgICAgICBJOTE1X1NIUklOS19VTkJPVU5EIHwKKwkJCQkgICAgICAgICBJOTE1X1NI UklOS19BQ1RJVkUgfAorCQkJCSAgICAgICAgIEk5MTVfU0hSSU5LX1ZNQVBTKTsKIAlpbnRlbF9y dW50aW1lX3BtX3B1dChpOTE1KTsKIAogCS8qIFdlIGFsc28gd2FudCB0byBjbGVhciBhbnkgY2Fj aGVkIGlvbWFwcyBhcyB0aGV5IHdyYXAgdm1hcCAqLwotLSAKMi4xOS4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK