From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v5 08/21] x86/cpu: Sysctl and common infrastructure for levelling context switching Date: Thu, 7 Apr 2016 12:57:13 +0100 Message-ID: <1460030246-30153-9-git-send-email-andrew.cooper3@citrix.com> References: <1460030246-30153-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1460030246-30153-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org QSB0b29sc3RhY2sgbmVlZHMgdG8ga25vdyBob3cgbXVjaCBjb250cm9sIFhlbiBoYXMgb3ZlciB0 aGUgdmlzaWJsZSBjcHVpZAp2YWx1ZXMgaW4gUFYgZ3Vlc3RzLiAgUHJvdmlkZSBhbiBleHBsaWNp dCBtZWNoYW5pc20gdG8gcXVlcnkgd2hhdCBYZW4gaXMKY2FwYWJsZSBvZi4KClRoaXMgaW50ZXJm YWNlIHdpbGwgY3VycmVudGx5IHJlcG9ydCBubyBjYXBhYmlsaXRpZXMuICBUaGlzIGNoYW5nZSBp cwpzY2FmZm9sZGluZyBmb3IgZnV0dXJlIHBhdGNoZXMsIHdoaWNoIHdpbGwgaW50cm9kdWNlIGRl dGVjdGlvbiBhbmQgc3dpdGNoaW5nCmxvZ2ljLCBhZnRlciB3aGljaCB0aGUgaW50ZXJmYWNlIHdp bGwgcmVwb3J0IGhhcmR3YXJlIGNhcGFiaWxpdGllcyBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogSmFu IEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgotLS0KQ0M6IERhbmllbCBEZSBHcmFhZiA8ZGdk ZWdyYUB0eWNoby5uc2EuZ292PgoKdjI6CiAqIHMvY3B1bWFza3MvY3B1aWRtYXNrcy8KdjM6CiAq IFJlaW50cm9kdWNlIFhFTl9TWVNDVExfZ2V0X2xldmVsbGluZ19jYXBzIChyZXF1ZXN0ZWQgYnkg Sm9hbyBmb3Igc29tZQogICBsaWJ2aXJ0IGRldmVsb3BtZW50IGhlIGhhcyBwbGFubmVkKS4KICog UmVuYW1lIHRvIFhFTl9TWVNDVExfZ2V0X2NwdV9sZXZlbGxpbmdfY2FwcywgYW5kIHJlbmFtZSB0 aGUgY29uc3RhbnRzIHRvCiAgIG1hdGNoIHRoZSBYZW4gY29tbWFuZCBsaW5lIG9wdGlvbnMuCnY0 OgogKiBNb3ZlIGRlY2xhcmF0aW9ucyBmcm9tIHByb2Nlc3Nvci5oIHRvIGNwdWlkLmgKICogQVBJ IGNvcnJlY3Rpb25zIGZvciBYRU5fU1lTQ1RMX2dldF9sZXZlbGxpbmdfY2Fwcwp2NToKICogWFNN IHBvbGljeSBwaWVjZXMKLS0tCiB0b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVu L3hlbi50ZSB8ICAxICsKIHhlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMgICAgICAgICAgICAgICAg ICAgIHwgIDYgKysrKysrCiB4ZW4vYXJjaC94ODYvc3lzY3RsLmMgICAgICAgICAgICAgICAgICAg ICAgICB8ICA2ICsrKysrKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmggICAgICAg ICAgICAgfCAgMSArCiB4ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkLmggICAgICAgICAgICAgICAg ICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9z eXNjdGwuaCAgICAgICAgICAgICAgICAgIHwgMjMgKysrKysrKysrKysrKysrKysrKysKIHhlbi94 c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKysrCiB4ZW4veHNt L2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyAgICAgICAgICB8ICAyICsrCiA4IGZpbGVzIGNo YW5nZWQsIDc0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kv cG9saWN5L21vZHVsZXMveGVuL3hlbi50ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9k dWxlcy94ZW4veGVuLnRlCmluZGV4IDdlNjljZTkuLmMyOWIwNjcgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlCisrKyBiL3Rvb2xzL2ZsYXNr L3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlCkBAIC03Miw2ICs3Miw3IEBAIGFsbG93 IGRvbTBfdCB4ZW5fdDp4ZW4yIHsKIGFsbG93IGRvbTBfdCB4ZW5fdDp4ZW4yIHsKICAgICBwbXVf Y3RybAogICAgIGdldF9zeW1ib2wKKyAgICBnZXRfY3B1X2xldmVsbGluZ19jYXBzCiB9OwogCiAj IEFsbG93IGRvbTAgdG8gdXNlIGFsbCBYRU5WRVJfIHN1Ym9wcyBhbmQgVkVSU0lPTiBzdWJvcHMg dGhhdCBoYXZlIGNoZWNrcy4KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMg Yi94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCmluZGV4IGI1YzAyM2YuLjdlZjc1YjAgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9j b21tb24uYwpAQCAtMzYsNiArMzYsMTIgQEAgaW50ZWdlcl9wYXJhbSgiY3B1aWRfbWFza19leHRf ZWN4Iiwgb3B0X2NwdWlkX21hc2tfZXh0X2VjeCk7CiB1bnNpZ25lZCBpbnQgb3B0X2NwdWlkX21h c2tfZXh0X2VkeCA9IH4wdTsKIGludGVnZXJfcGFyYW0oImNwdWlkX21hc2tfZXh0X2VkeCIsIG9w dF9jcHVpZF9tYXNrX2V4dF9lZHgpOwogCit1bnNpZ25lZCBpbnQgX19pbml0ZGF0YSBleHBlY3Rl ZF9sZXZlbGxpbmdfY2FwOwordW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgbGV2ZWxsaW5nX2Nh cHM7CisKK0RFRklORV9QRVJfQ1BVKHN0cnVjdCBjcHVpZG1hc2tzLCBjcHVpZG1hc2tzKTsKK3N0 cnVjdCBjcHVpZG1hc2tzIF9fcmVhZF9tb3N0bHkgY3B1aWRtYXNrX2RlZmF1bHRzOworCiBjb25z dCBzdHJ1Y3QgY3B1X2RldiAqX19yZWFkX21vc3RseSBjcHVfZGV2c1tYODZfVkVORE9SX05VTV0g PSB7fTsKIAogdW5zaWduZWQgaW50IHBhZGRyX2JpdHMgX19yZWFkX21vc3RseSA9IDM2OwpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3N5c2N0bC5jIGIveGVuL2FyY2gveDg2L3N5c2N0bC5jCmlu ZGV4IDU4Y2JkNzAuLmY2OGNiZWMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYwor KysgYi94ZW4vYXJjaC94ODYvc3lzY3RsLmMKQEAgLTE5MCw2ICsxOTAsMTIgQEAgbG9uZyBhcmNo X2RvX3N5c2N0bCgKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgWEVOX1NZ U0NUTF9nZXRfY3B1X2xldmVsbGluZ19jYXBzOgorICAgICAgICBzeXNjdGwtPnUuY3B1X2xldmVs bGluZ19jYXBzLmNhcHMgPSBsZXZlbGxpbmdfY2FwczsKKyAgICAgICAgaWYgKCBfX2NvcHlfZmll bGRfdG9fZ3Vlc3QodV9zeXNjdGwsIHN5c2N0bCwgdS5jcHVfbGV2ZWxsaW5nX2NhcHMuY2Fwcykg KQorICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKKyAgICAgICAgYnJlYWs7CisKICAgICBkZWZh dWx0OgogICAgICAgICByZXQgPSAtRU5PU1lTOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9j cHVmZWF0dXJlLmgKaW5kZXggNmEwODU3OS4uOWE5Mzc5OSAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0 dXJlLmgKQEAgLTgzLDYgKzgzLDcgQEAKICNkZWZpbmUgY3B1X2hhc194c2F2ZXMJCWJvb3RfY3B1 X2hhcyhYODZfRkVBVFVSRV9YU0FWRVMpCiAjZGVmaW5lIGNwdV9oYXNfbW9uaXRvcgkJYm9vdF9j cHVfaGFzKFg4Nl9GRUFUVVJFX01PTklUT1IpCiAjZGVmaW5lIGNwdV9oYXNfZWlzdAkJYm9vdF9j cHVfaGFzKFg4Nl9GRUFUVVJFX0VJU1QpCisjZGVmaW5lIGNwdV9oYXNfaHlwZXJ2aXNvcglib290 X2NwdV9oYXMoWDg2X0ZFQVRVUkVfSFlQRVJWSVNPUikKIAogZW51bSBfY2FjaGVfdHlwZSB7CiAg ICAgQ0FDSEVfVFlQRV9OVUxMID0gMCwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv Y3B1aWQuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1aWQuaAppbmRleCA0NzI1NjcyLi45YTIx YzI1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkLmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9jcHVpZC5oCkBAIC0zLDYgKzMsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2Nw dWZlYXR1cmVzZXQuaD4KICNpbmNsdWRlIDxhc20vY3B1aWQtYXV0b2dlbi5oPgorI2luY2x1ZGUg PGFzbS9wZXJjcHUuaD4KIAogI2RlZmluZSBGU0NBUElOVFMgRkVBVFVSRVNFVF9OUl9FTlRSSUVT CiAKQEAgLTE4LDYgKzE5LDcgQEAKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KICNpbmNsdWRlIDx4 ZW4vdHlwZXMuaD4KKyNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+CiAKIGV4dGVybiBjb25zdCB1 aW50MzJfdCBrbm93bl9mZWF0dXJlc1tGU0NBUElOVFNdOwogZXh0ZXJuIGNvbnN0IHVpbnQzMl90 IHNwZWNpYWxfZmVhdHVyZXNbRlNDQVBJTlRTXTsKQEAgLTMxLDYgKzMzLDM2IEBAIHZvaWQgY2Fs Y3VsYXRlX2ZlYXR1cmVzZXRzKHZvaWQpOwogCiBjb25zdCB1aW50MzJfdCAqbG9va3VwX2RlZXBf ZGVwcyh1aW50MzJfdCBmZWF0dXJlKTsKIAorLyoKKyAqIEV4cGVjdGVkIGxldmVsbGluZyBjYXBh YmlsaXRpZXMgKGdpdmVuIGNwdWlkIHZlbmRvci9mYW1pbHkgaW5mb3JtYXRpb24pLAorICogYW5k IGxldmVsbGluZyBjYXBhYmlsaXRpZXMgYWN0dWFsbHkgYXZhaWxhYmxlIChnaXZlbiBNU1IgcHJv YmluZykuCisgKi8KKyNkZWZpbmUgTENBUF9mYXVsdGluZyBYRU5fU1lTQ1RMX0NQVV9MRVZFTENB UF9mYXVsdGluZworI2RlZmluZSBMQ0FQXzFjZCAgICAgIChYRU5fU1lTQ1RMX0NQVV9MRVZFTENB UF9lY3ggfCAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICBYRU5fU1lTQ1RMX0NQVV9M RVZFTENBUF9lZHgpCisjZGVmaW5lIExDQVBfZTFjZCAgICAgKFhFTl9TWVNDVExfQ1BVX0xFVkVM Q0FQX2V4dGRfZWN4IHwgICBcCisgICAgICAgICAgICAgICAgICAgICAgIFhFTl9TWVNDVExfQ1BV X0xFVkVMQ0FQX2V4dGRfZWR4KQorI2RlZmluZSBMQ0FQX0RhMSAgICAgIFhFTl9TWVNDVExfQ1BV X0xFVkVMQ0FQX3hzYXZlX2VheAorI2RlZmluZSBMQ0FQXzZjICAgICAgIFhFTl9TWVNDVExfQ1BV X0xFVkVMQ0FQX3RoZXJtYWxfZWN4CisjZGVmaW5lIExDQVBfN2FiMCAgICAgKFhFTl9TWVNDVExf Q1BVX0xFVkVMQ0FQX2w3czBfZWF4IHwgICBcCisgICAgICAgICAgICAgICAgICAgICAgIFhFTl9T WVNDVExfQ1BVX0xFVkVMQ0FQX2w3czBfZWJ4KQorZXh0ZXJuIHVuc2lnbmVkIGludCBleHBlY3Rl ZF9sZXZlbGxpbmdfY2FwLCBsZXZlbGxpbmdfY2FwczsKKworc3RydWN0IGNwdWlkbWFza3MKK3sK KyAgICB1aW50NjRfdCBfMWNkOworICAgIHVpbnQ2NF90IGUxY2Q7CisgICAgdWludDY0X3QgRGEx OworICAgIHVpbnQ2NF90IF82YzsKKyAgICB1aW50NjRfdCBfN2FiMDsKK307CisKKy8qIFBlciBD UFUgc2hhZG93cyBvZiBtYXNraW5nIE1TUiB2YWx1ZXMsIGZvciBsYXp5IGNvbnRleHQgc3dpdGNo aW5nLiAqLworREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCBjcHVpZG1hc2tzLCBjcHVpZG1hc2tzKTsK KworLyogRGVmYXVsdCBtYXNraW5nIE1TUiB2YWx1ZXMsIGNhbGN1bGF0ZWQgYXQgYm9vdC4gKi8K K2V4dGVybiBzdHJ1Y3QgY3B1aWRtYXNrcyBjcHVpZG1hc2tfZGVmYXVsdHM7CisKICNlbmRpZiAv KiBfX0FTU0VNQkxZX18gKi8KICNlbmRpZiAvKiAhX19YODZfQ1BVSURfSF9fICovCiAKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9z eXNjdGwuaAppbmRleCA5NjY4MGViLi4xYWIxNmRiIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9w dWJsaWMvc3lzY3RsLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCkBAIC03NjYs NiArNzY2LDI3IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3RtZW1fb3AgewogdHlwZWRlZiBzdHJ1Y3Qg eGVuX3N5c2N0bF90bWVtX29wIHhlbl9zeXNjdGxfdG1lbV9vcF90OwogREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUoeGVuX3N5c2N0bF90bWVtX29wX3QpOwogCisvKgorICogWEVOX1NZU0NUTF9nZXRf Y3B1X2xldmVsbGluZ19jYXBzICh4ODYgc3BlY2lmaWMpCisgKgorICogUmV0dXJuIGhhcmR3YXJl IGNhcGFiaWxpdGllcyBjb25jZXJuaW5nIG1hc2tpbmcgb3IgZmF1bHRpbmcgb2YgdGhlIGNwdWlk CisgKiBpbnN0cnVjdGlvbiBmb3IgUFYgZ3Vlc3RzLgorICovCitzdHJ1Y3QgeGVuX3N5c2N0bF9j cHVfbGV2ZWxsaW5nX2NhcHMgeworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9mYXVs dGluZyAgICAoMXVsIDw8ICAwKSAvKiBDUFVJRCBmYXVsdGluZyAgICAqLworI2RlZmluZSBYRU5f U1lTQ1RMX0NQVV9MRVZFTENBUF9lY3ggICAgICAgICAoMXVsIDw8ICAxKSAvKiAweDAwMDAwMDAx LmVjeCAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9lZHggICAgICAgICAo MXVsIDw8ICAyKSAvKiAweDAwMDAwMDAxLmVkeCAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQ VV9MRVZFTENBUF9leHRkX2VjeCAgICAoMXVsIDw8ICAzKSAvKiAweDgwMDAwMDAxLmVjeCAgICAq LworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9leHRkX2VkeCAgICAoMXVsIDw8ICA0 KSAvKiAweDgwMDAwMDAxLmVkeCAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENB UF94c2F2ZV9lYXggICAoMXVsIDw8ICA1KSAvKiAweDAwMDAwMDBEOjEuZWF4ICAqLworI2RlZmlu ZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF90aGVybWFsX2VjeCAoMXVsIDw8ICA2KSAvKiAweDAw MDAwMDA2LmVjeCAgICAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9MRVZFTENBUF9sN3MwX2Vh eCAgICAoMXVsIDw8ICA3KSAvKiAweDAwMDAwMDA3OjAuZWF4ICAqLworI2RlZmluZSBYRU5fU1lT Q1RMX0NQVV9MRVZFTENBUF9sN3MwX2VieCAgICAoMXVsIDw8ICA4KSAvKiAweDAwMDAwMDA3OjAu ZWJ4ICAqLworICAgIHVpbnQzMl90IGNhcHM7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0 bF9jcHVfbGV2ZWxsaW5nX2NhcHMgeGVuX3N5c2N0bF9jcHVfbGV2ZWxsaW5nX2NhcHNfdDsKK0RF RklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfY3B1X2xldmVsbGluZ19jYXBzX3QpOwor CiBzdHJ1Y3QgeGVuX3N5c2N0bCB7CiAgICAgdWludDMyX3QgY21kOwogI2RlZmluZSBYRU5fU1lT Q1RMX3JlYWRjb25zb2xlICAgICAgICAgICAgICAgICAgICAxCkBAIC03OTEsNiArODEyLDcgQEAg c3RydWN0IHhlbl9zeXNjdGwgewogI2RlZmluZSBYRU5fU1lTQ1RMX3BjaXRvcG9pbmZvICAgICAg ICAgICAgICAgICAgIDIyCiAjZGVmaW5lIFhFTl9TWVNDVExfcHNyX2NhdF9vcCAgICAgICAgICAg ICAgICAgICAgMjMKICNkZWZpbmUgWEVOX1NZU0NUTF90bWVtX29wICAgICAgICAgICAgICAgICAg ICAgICAyNAorI2RlZmluZSBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHMgICAgICAg IDI1CiAgICAgdWludDMyX3QgaW50ZXJmYWNlX3ZlcnNpb247IC8qIFhFTl9TWVNDVExfSU5URVJG QUNFX1ZFUlNJT04gKi8KICAgICB1bmlvbiB7CiAgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3Jl YWRjb25zb2xlICAgICAgIHJlYWRjb25zb2xlOwpAQCAtODE2LDYgKzgzOCw3IEBAIHN0cnVjdCB4 ZW5fc3lzY3RsIHsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NtdF9vcCAgICAgICAg cHNyX2NtdF9vcDsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NhdF9vcCAgICAgICAg cHNyX2NhdF9vcDsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfdG1lbV9vcCAgICAgICAgICAg dG1lbV9vcDsKKyAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2xldmVsbGluZ19jYXBzIGNw dV9sZXZlbGxpbmdfY2FwczsKICAgICAgICAgdWludDhfdCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFkWzEyOF07CiAgICAgfSB1OwogfTsKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2sv aG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRleCAxZWFlYzU4Li5mMGUzZTVmIDEw MDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrIGIveGVuL3hzbS9mbGFzay9ob29r cy5jCkBAIC04MDgsNiArODA4LDkgQEAgc3RhdGljIGludCBmbGFza19zeXNjdGwoaW50IGNtZCkK ICAgICBjYXNlIFhFTl9TWVNDVExfdG1lbV9vcDoKICAgICAgICAgcmV0dXJuIGRvbWFpbl9oYXNf eGVuKGN1cnJlbnQtPmRvbWFpbiwgWEVOX19UTUVNX0NPTlRST0wpOwogCisgICAgY2FzZSBYRU5f U1lTQ1RMX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHM6CisgICAgICAgIHJldHVybiBkb21haW5faGFz X3hlbihjdXJyZW50LT5kb21haW4sIFhFTjJfX0dFVF9DUFVfTEVWRUxMSU5HX0NBUFMpOworCiAg ICAgZGVmYXVsdDoKICAgICAgICAgcHJpbnRrKCJmbGFza19zeXNjdGw6IFVua25vd24gb3AgJWRc biIsIGNtZCk7CiAgICAgICAgIHJldHVybiAtRVBFUk07CmRpZmYgLS1naXQgYS94ZW4veHNtL2Zs YXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192 ZWN0b3JzCmluZGV4IDU2NjAwYmIuLjMxZWNmMDIgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2sv cG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192 ZWN0b3JzCkBAIC05Myw2ICs5Myw4IEBAIGNsYXNzIHhlbjIKICAgICBwbXVfY3RybAogIyBQTVUg dXNlIChkb21haW5zLCBpbmNsdWRpbmcgdW5wcml2aWxlZ2VkIG9uZXMsIHdpbGwgYmUgdXNpbmcg dGhpcyBvcGVyYXRpb24pCiAgICAgcG11X3VzZQorIyBYRU5fU1lTQ1RMX2dldF9jcHVfbGV2ZWxs aW5nX2NhcHMKKyAgICBnZXRfY3B1X2xldmVsbGluZ19jYXBzCiB9CiAKICMgQ2xhc3NlcyBkb21h aW4gYW5kIGRvbWFpbjIgY29uc2lzdCBvZiBvcGVyYXRpb25zIHRoYXQgYSBkb21haW4gcGVyZm9y bXMgb24KLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK