From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 84253 invoked by alias); 8 Aug 2016 13:59:14 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 84224 invoked by uid 89); 8 Aug 2016 13:59:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_PASS autolearn=ham version=3.3.2 spammy=SIZE, reveals, DECL_ATTRIBUTES, decl_attributes X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Mon, 08 Aug 2016 13:59:03 +0000 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 915EFAD1A; Mon, 8 Aug 2016 13:59:00 +0000 (UTC) Subject: [PATCH 5/N] Add new *_atomic counter update function, (-fprofile-update=atomic) To: Nathan Sidwell , gcc-patches@gcc.gnu.org References: <53c4f874443d63de99393a9816041ba75f1d605e.1470041316.git.mliska@suse.cz> <95628fa2-8719-bb82-d1ab-ca8d46355020@acm.org> <0ec1ad3f-0fc7-507e-878c-907adae1c011@suse.cz> <0e248978-3717-1d78-b3b1-9fc60ded5c8e@suse.cz> <882f0f98-9b33-a764-833b-ca61796f3143@acm.org> <87f2bc4f-c4df-eadd-aec6-a937ed0ccaba@acm.org> <1253ac69-3301-f185-e43a-a34cadf8f51e@suse.cz> <67fda6d2-9b3e-a0d1-effc-34e1115030b2@acm.org> <1ff3cc75-7cee-79f3-395b-ef7a4d286a3d@acm.org> <04a05835-4666-4d7d-c1a9-d4bcc4ea924a@suse.cz> Cc: jh@suse.cz From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Message-ID: <2a6eb389-5504-1cea-851f-78d0dcb34776@suse.cz> Date: Mon, 08 Aug 2016 13:59:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2 MIME-Version: 1.0 In-Reply-To: <04a05835-4666-4d7d-c1a9-d4bcc4ea924a@suse.cz> Content-Type: multipart/mixed; boundary="------------761769F47AA75C3A113B523F" X-IsSubscribed: yes X-SW-Source: 2016-08/txt/msg00600.txt.bz2 This is a multi-part message in MIME format. --------------761769F47AA75C3A113B523F Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Content-length: 767 Hello. This patch is follow-up of the series where I introduce a set of counter update function that are thread-safe. I originally thought that majority of profile corruptions are caused by non-atomic updated of CFG (-fprofile-arc). But there are multiple counters that compare it's count to a number of execution of a basic block: blake2s.cpp:150:40: error: corrupted value profile: value profile counter (11301120 out of 11314388) inconsistent with basic-block count (11555117) memcpy( S->buf + left, in, fill ); // Fill buffer This can be seen for unrar binary: PR58306. I'm also adding a simple test-case which reveals the inconsistency: val-profiler-threads-1.c. I've been running regression tests, ready to install after it finishes? Thanks, Martin --------------761769F47AA75C3A113B523F Content-Type: text/x-patch; name="0005-Add-new-_atomic-counter-update-function-fprofile-upd.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0005-Add-new-_atomic-counter-update-function-fprofile-upd.pa"; filename*1="tch" Content-length: 19720 RnJvbSBhNTU2ODE5OTJmNTcyYjA1OTFhMjRlODI3MTVkZGMwMTMzMDIzMGUw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBtYXJ4aW4gPG1saXNr YUBzdXNlLmN6PgpEYXRlOiBNb24sIDggQXVnIDIwMTYgMTU6NDQ6MjggKzAy MDAKU3ViamVjdDogW1BBVENIIDUvNV0gQWRkIG5ldyAqX2F0b21pYyBjb3Vu dGVyIHVwZGF0ZSBmdW5jdGlvbgogKC1mcHJvZmlsZS11cGRhdGU9YXRvbWlj KQoKbGliZ2NjL0NoYW5nZUxvZzoKCjIwMTYtMDgtMDggIE1hcnRpbiBMaXNr YSAgPG1saXNrYUBzdXNlLmN6PgoKCVBSIGdjb3YtcHJvZmlsZS81ODMwNgoJ KiBNYWtlZmlsZS5pbjogTmV3IGZ1bmN0aW9ucyAobW9kdWxlcykgYXJlIGFk ZGVkLgoJKiBsaWJnY292LXByb2ZpbGVyLmMgKF9fZ2Nvdl9pbnRlcnZhbF9w cm9maWxlcl9hdG9taWMpOiBOZXcKCWZ1bmN0aW9uLgoJKF9fZ2Nvdl9wb3cy X3Byb2ZpbGVyX2F0b21pYyk6IE5ldyBmdW5jdGlvbi4KCShfX2djb3Zfb25l X3ZhbHVlX3Byb2ZpbGVyX2JvZHkpOiBOZXcgYXJndW1lbnQgaXMgaW5zdHJv ZHVjZWQuCgkoX19nY292X29uZV92YWx1ZV9wcm9maWxlcik6IENhbGwgd2l0 aCB0aGUgbmV3IGFyZ3VtZW50LgoJKF9fZ2Nvdl9vbmVfdmFsdWVfcHJvZmls ZXJfYXRvbWljKTogTGlrZXdpc2UuCgkoX19nY292X2luZGlyZWN0X2NhbGxf cHJvZmlsZXJfdjIpOiBMaWtld2lzZS4KCShfX2djb3ZfdGltZV9wcm9maWxl cl9hdG9taWMpOiBOZXcgZnVuY3Rpb24uCgkoX19nY292X2F2ZXJhZ2VfcHJv ZmlsZXJfYXRvbWljKTogTGlrZXdpc2UuCgkoX19nY292X2lvcl9wcm9maWxl cl9hdG9taWMpOiBMaWtld2lzZS4KCSogbGliZ2Nvdi5oOiBEZWNsYXJlIHRo ZSBhZm9yZW1lbnRpb25lZCBmdW5jdGlvbnMuCgpnY2MvdGVzdHN1aXRlL0No YW5nZUxvZzoKCjIwMTYtMDgtMDggIE1hcnRpbiBMaXNrYSAgPG1saXNrYUBz dXNlLmN6PgoKCVBSIGdjb3YtcHJvZmlsZS81ODMwNgoJKiBnY2MuZGcvdHJl ZS1wcm9mL3ZhbC1wcm9maWxlci10aHJlYWRzLTEuYzogTmV3IHRlc3QuCgpn Y2MvQ2hhbmdlTG9nOgoKMjAxNi0wOC0wOCAgTWFydGluIExpc2thICA8bWxp c2thQHN1c2UuY3o+CgoJUFIgZ2Nvdi1wcm9maWxlLzU4MzA2CgkqIHRyZWUt cHJvZmlsZS5jIChnaW1wbGVfaW5pdF9lZGdlX3Byb2ZpbGVyKTogQ3JlYXRl IGNvbmRpdGlvbmFsbHkKCWF0b21pYyB2YXJpYW50cyBvZiBwcm9maWxlIHVw ZGF0ZSBmdW5jdGlvbnMuCi0tLQogLi4uL2djYy5kZy90cmVlLXByb2YvdmFs LXByb2ZpbGVyLXRocmVhZHMtMS5jICAgICAgfCA0MSArKysrKysrKysKIGdj Yy90cmVlLXByb2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMzYgKysrKy0tLS0KIGxpYmdjYy9NYWtlZmlsZS5pbiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrLQogbGliZ2NjL2xp Ymdjb3YtcHJvZmlsZXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCA5 NyArKysrKysrKysrKysrKysrKysrKy0tCiBsaWJnY2MvbGliZ2Nvdi5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKwogNSBm aWxlcyBjaGFuZ2VkLCAxNzMgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv dHJlZS1wcm9mL3ZhbC1wcm9maWxlci10aHJlYWRzLTEuYwoKZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtcHJvZi92YWwtcHJvZmls ZXItdGhyZWFkcy0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXBy b2YvdmFsLXByb2ZpbGVyLXRocmVhZHMtMS5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjBmNzQ3N2UKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXByb2YvdmFsLXByb2ZpbGVy LXRocmVhZHMtMS5jCkBAIC0wLDAgKzEsNDEgQEAKKy8qIHsgZGctb3B0aW9u cyAiLU8wIC1wdGhyZWFkIC1mcHJvZmlsZS11cGRhdGU9YXRvbWljIiB9ICov DQorI2luY2x1ZGUgPHB0aHJlYWQuaD4NCisNCisjZGVmaW5lIE5VTV9USFJF QURTCTgNCisjZGVmaW5lIFNJWkUgMTAyNA0KKyNkZWZpbmUgSVRFUkFUSU9O UyAoMTAwMCAqIDEwMDApDQorDQorY2hhciBidWZmZXJbU0laRV07DQorY2hh ciBidWZmZXIyW1NJWkVdOw0KKw0KK3ZvaWQgKmNvcHlfbWVtb3J5KGNoYXIg KmRzdCwgY2hhciAqc3JjLCB1bnNpZ25lZCBzaXplKQ0KK3sNCisgICBmb3Ig KHVuc2lnbmVkIGkgPSAwOyBpIDwgSVRFUkFUSU9OUzsgaSsrKQ0KKyAgIHsN CisgICAgIGRzdFtzaXplICUgMTBdID0gc3JjW3NpemUgJSAyMF07DQorICAg fQ0KK30NCisNCit2b2lkICpmb28odm9pZCAqZCkNCit7DQorICBjb3B5X21l bW9yeSAoYnVmZmVyLCBidWZmZXIyLCBTSVpFKTsNCit9DQorDQoraW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCit7DQorICAgcHRocmVhZF90 IHRocmVhZHNbTlVNX1RIUkVBRFNdOw0KKyAgIGludCByYzsNCisgICBsb25n IHQ7DQorICAgZm9yKHQ9MDt0PE5VTV9USFJFQURTO3QrKyl7DQorICAgICBy YyA9IHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWRzW3RdLCBOVUxMLCBmb28sIDAp Ow0KKyAgICAgaWYgKHJjKXsNCisJIHJldHVybiAxOw0KKyAgICAgICB9DQor ICAgICB9DQorDQorICAgaW50IHJldHZhbDsNCisgICBmb3IodD0wO3Q8TlVN X1RIUkVBRFM7dCsrKQ0KKyAgICAgcHRocmVhZF9qb2luICh0aHJlYWRzW3Rd LCAodm9pZCoqKSZyZXR2YWwpOw0KKw0KKyAgIHJldHVybiBidWZmZXJbMTBd Ow0KK30NCmRpZmYgLS1naXQgYS9nY2MvdHJlZS1wcm9maWxlLmMgYi9nY2Mv dHJlZS1wcm9maWxlLmMKaW5kZXggNzQwZjdhYi4uMGIyOWU3MiAxMDA2NDQK LS0tIGEvZ2NjL3RyZWUtcHJvZmlsZS5jCisrKyBiL2djYy90cmVlLXByb2Zp bGUuYwpAQCAtMTI4LDkgKzEyOCwxMyBAQCBnaW1wbGVfaW5pdF9lZGdlX3By b2ZpbGVyICh2b2lkKQogICB0cmVlIGF2ZXJhZ2VfcHJvZmlsZXJfZm5fdHlw ZTsKICAgdHJlZSB0aW1lX3Byb2ZpbGVyX2ZuX3R5cGU7CiAgIGNvbnN0IGNo YXIgKnByb2ZpbGVyX2ZuX25hbWU7CisgIGNvbnN0IGNoYXIgKmZuX25hbWU7 CiAKICAgaWYgKCFnY292X3R5cGVfbm9kZSkKICAgICB7CisgICAgICBjb25z dCBjaGFyICpmbl9zdWZmaXgKKwk9IGZsYWdfcHJvZmlsZV91cGRhdGUgPT0g UFJPRklMRV9VUERBVEVfQVRPTUlDID8gIl9hdG9taWMiIDogIiI7CisKICAg ICAgIGdjb3ZfdHlwZV9ub2RlID0gZ2V0X2djb3ZfdHlwZSAoKTsKICAgICAg IGdjb3ZfdHlwZV9wdHIgPSBidWlsZF9wb2ludGVyX3R5cGUgKGdjb3ZfdHlw ZV9ub2RlKTsKIApAQCAtMTQwLDkgKzE0NCw5IEBAIGdpbXBsZV9pbml0X2Vk Z2VfcHJvZmlsZXIgKHZvaWQpCiAJCQkJCSAgZ2Nvdl90eXBlX3B0ciwgZ2Nv dl90eXBlX25vZGUsCiAJCQkJCSAgaW50ZWdlcl90eXBlX25vZGUsCiAJCQkJ CSAgdW5zaWduZWRfdHlwZV9ub2RlLCBOVUxMX1RSRUUpOwotICAgICAgdHJl ZV9pbnRlcnZhbF9wcm9maWxlcl9mbgotCSAgICAgID0gYnVpbGRfZm5fZGVj bCAoIl9fZ2Nvdl9pbnRlcnZhbF9wcm9maWxlciIsCi0JCQkJICAgICBpbnRl cnZhbF9wcm9maWxlcl9mbl90eXBlKTsKKyAgICAgIGZuX25hbWUgPSBjb25j YXQgKCJfX2djb3ZfaW50ZXJ2YWxfcHJvZmlsZXIiLCBmbl9zdWZmaXgsIE5V TEwpOworICAgICAgdHJlZV9pbnRlcnZhbF9wcm9maWxlcl9mbiA9IGJ1aWxk X2ZuX2RlY2wgKGZuX25hbWUsCisJCQkJCQkgaW50ZXJ2YWxfcHJvZmlsZXJf Zm5fdHlwZSk7CiAgICAgICBUUkVFX05PVEhST1cgKHRyZWVfaW50ZXJ2YWxf cHJvZmlsZXJfZm4pID0gMTsKICAgICAgIERFQ0xfQVRUUklCVVRFUyAodHJl ZV9pbnRlcnZhbF9wcm9maWxlcl9mbikKIAk9IHRyZWVfY29ucyAoZ2V0X2lk ZW50aWZpZXIgKCJsZWFmIiksIE5VTEwsCkBAIC0xNTMsOCArMTU3LDggQEAg Z2ltcGxlX2luaXRfZWRnZV9wcm9maWxlciAodm9pZCkKIAkgICAgICA9IGJ1 aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAodm9pZF90eXBlX25vZGUsCiAJCQkJ CSAgZ2Nvdl90eXBlX3B0ciwgZ2Nvdl90eXBlX25vZGUsCiAJCQkJCSAgTlVM TF9UUkVFKTsKLSAgICAgIHRyZWVfcG93Ml9wcm9maWxlcl9mbiA9IGJ1aWxk X2ZuX2RlY2wgKCJfX2djb3ZfcG93Ml9wcm9maWxlciIsCi0JCQkJCQkgICBw b3cyX3Byb2ZpbGVyX2ZuX3R5cGUpOworICAgICAgZm5fbmFtZSA9IGNvbmNh dCAoIl9fZ2Nvdl9wb3cyX3Byb2ZpbGVyIiwgZm5fc3VmZml4LCBOVUxMKTsK KyAgICAgIHRyZWVfcG93Ml9wcm9maWxlcl9mbiA9IGJ1aWxkX2ZuX2RlY2wg KGZuX25hbWUsIHBvdzJfcHJvZmlsZXJfZm5fdHlwZSk7CiAgICAgICBUUkVF X05PVEhST1cgKHRyZWVfcG93Ml9wcm9maWxlcl9mbikgPSAxOwogICAgICAg REVDTF9BVFRSSUJVVEVTICh0cmVlX3BvdzJfcHJvZmlsZXJfZm4pCiAJPSB0 cmVlX2NvbnMgKGdldF9pZGVudGlmaWVyICgibGVhZiIpLCBOVUxMLApAQCAt MTY1LDkgKzE2OSw5IEBAIGdpbXBsZV9pbml0X2VkZ2VfcHJvZmlsZXIgKHZv aWQpCiAJICAgICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKHZvaWRf dHlwZV9ub2RlLAogCQkJCQkgIGdjb3ZfdHlwZV9wdHIsIGdjb3ZfdHlwZV9u b2RlLAogCQkJCQkgIE5VTExfVFJFRSk7Ci0gICAgICB0cmVlX29uZV92YWx1 ZV9wcm9maWxlcl9mbgotCSAgICAgID0gYnVpbGRfZm5fZGVjbCAoIl9fZ2Nv dl9vbmVfdmFsdWVfcHJvZmlsZXIiLAotCQkJCSAgICAgb25lX3ZhbHVlX3By b2ZpbGVyX2ZuX3R5cGUpOworICAgICAgZm5fbmFtZSA9IGNvbmNhdCAoIl9f Z2Nvdl9vbmVfdmFsdWVfcHJvZmlsZXIiLCBmbl9zdWZmaXgsIE5VTEwpOwor ICAgICAgdHJlZV9vbmVfdmFsdWVfcHJvZmlsZXJfZm4gPSBidWlsZF9mbl9k ZWNsIChmbl9uYW1lLAorCQkJCQkJICBvbmVfdmFsdWVfcHJvZmlsZXJfZm5f dHlwZSk7CiAgICAgICBUUkVFX05PVEhST1cgKHRyZWVfb25lX3ZhbHVlX3By b2ZpbGVyX2ZuKSA9IDE7CiAgICAgICBERUNMX0FUVFJJQlVURVMgKHRyZWVf b25lX3ZhbHVlX3Byb2ZpbGVyX2ZuKQogCT0gdHJlZV9jb25zIChnZXRfaWRl bnRpZmllciAoImxlYWYiKSwgTlVMTCwKQEAgLTE5Nyw5ICsyMDEsOCBAQCBn aW1wbGVfaW5pdF9lZGdlX3Byb2ZpbGVyICh2b2lkKQogICAgICAgdGltZV9w cm9maWxlcl9mbl90eXBlCiAJICAgICAgID0gYnVpbGRfZnVuY3Rpb25fdHlw ZV9saXN0ICh2b2lkX3R5cGVfbm9kZSwKIAkJCQkJICBnY292X3R5cGVfcHRy LCBOVUxMX1RSRUUpOwotICAgICAgdHJlZV90aW1lX3Byb2ZpbGVyX2ZuCi0J ICAgICAgPSBidWlsZF9mbl9kZWNsICgiX19nY292X3RpbWVfcHJvZmlsZXIi LAotCQkJCSAgICAgdGltZV9wcm9maWxlcl9mbl90eXBlKTsKKyAgICAgIGZu X25hbWUgPSBjb25jYXQgKCJfX2djb3ZfdGltZV9wcm9maWxlciIsIGZuX3N1 ZmZpeCwgTlVMTCk7CisgICAgICB0cmVlX3RpbWVfcHJvZmlsZXJfZm4gPSBi dWlsZF9mbl9kZWNsIChmbl9uYW1lLCB0aW1lX3Byb2ZpbGVyX2ZuX3R5cGUp OwogICAgICAgVFJFRV9OT1RIUk9XICh0cmVlX3RpbWVfcHJvZmlsZXJfZm4p ID0gMTsKICAgICAgIERFQ0xfQVRUUklCVVRFUyAodHJlZV90aW1lX3Byb2Zp bGVyX2ZuKQogCT0gdHJlZV9jb25zIChnZXRfaWRlbnRpZmllciAoImxlYWYi KSwgTlVMTCwKQEAgLTIwOSwxNiArMjEyLDE1IEBAIGdpbXBsZV9pbml0X2Vk Z2VfcHJvZmlsZXIgKHZvaWQpCiAgICAgICBhdmVyYWdlX3Byb2ZpbGVyX2Zu X3R5cGUKIAkgICAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAodm9p ZF90eXBlX25vZGUsCiAJCQkJCSAgZ2Nvdl90eXBlX3B0ciwgZ2Nvdl90eXBl X25vZGUsIE5VTExfVFJFRSk7Ci0gICAgICB0cmVlX2F2ZXJhZ2VfcHJvZmls ZXJfZm4KLQkgICAgICA9IGJ1aWxkX2ZuX2RlY2wgKCJfX2djb3ZfYXZlcmFn ZV9wcm9maWxlciIsCi0JCQkJICAgICBhdmVyYWdlX3Byb2ZpbGVyX2ZuX3R5 cGUpOworICAgICAgZm5fbmFtZSA9IGNvbmNhdCAoIl9fZ2Nvdl9hdmVyYWdl X3Byb2ZpbGVyIiwgZm5fc3VmZml4LCBOVUxMKTsKKyAgICAgIHRyZWVfYXZl cmFnZV9wcm9maWxlcl9mbiA9IGJ1aWxkX2ZuX2RlY2wgKGZuX25hbWUsCisJ CQkJCQlhdmVyYWdlX3Byb2ZpbGVyX2ZuX3R5cGUpOwogICAgICAgVFJFRV9O T1RIUk9XICh0cmVlX2F2ZXJhZ2VfcHJvZmlsZXJfZm4pID0gMTsKICAgICAg IERFQ0xfQVRUUklCVVRFUyAodHJlZV9hdmVyYWdlX3Byb2ZpbGVyX2ZuKQog CT0gdHJlZV9jb25zIChnZXRfaWRlbnRpZmllciAoImxlYWYiKSwgTlVMTCwK IAkJICAgICBERUNMX0FUVFJJQlVURVMgKHRyZWVfYXZlcmFnZV9wcm9maWxl cl9mbikpOwotICAgICAgdHJlZV9pb3JfcHJvZmlsZXJfZm4KLQkgICAgICA9 IGJ1aWxkX2ZuX2RlY2wgKCJfX2djb3ZfaW9yX3Byb2ZpbGVyIiwKLQkJCQkg ICAgIGF2ZXJhZ2VfcHJvZmlsZXJfZm5fdHlwZSk7CisgICAgICBmbl9uYW1l ID0gY29uY2F0ICgiX19nY292X2lvcl9wcm9maWxlciIsIGZuX3N1ZmZpeCwg TlVMTCk7CisgICAgICB0cmVlX2lvcl9wcm9maWxlcl9mbiA9IGJ1aWxkX2Zu X2RlY2wgKGZuX25hbWUsIGF2ZXJhZ2VfcHJvZmlsZXJfZm5fdHlwZSk7CiAg ICAgICBUUkVFX05PVEhST1cgKHRyZWVfaW9yX3Byb2ZpbGVyX2ZuKSA9IDE7 CiAgICAgICBERUNMX0FUVFJJQlVURVMgKHRyZWVfaW9yX3Byb2ZpbGVyX2Zu KQogCT0gdHJlZV9jb25zIChnZXRfaWRlbnRpZmllciAoImxlYWYiKSwgTlVM TCwKZGlmZiAtLWdpdCBhL2xpYmdjYy9NYWtlZmlsZS5pbiBiL2xpYmdjYy9N YWtlZmlsZS5pbgppbmRleCBlZmFmN2Y3Li5mMGNiYzkyIDEwMDY0NAotLS0g YS9saWJnY2MvTWFrZWZpbGUuaW4KKysrIGIvbGliZ2NjL01ha2VmaWxlLmlu CkBAIC04NTgsMTAgKzg1OCwxOSBAQCBpbmNsdWRlICQoaXRlcmF0b3IpCiAK IExJQkdDT1ZfTUVSR0UgPSBfZ2Nvdl9tZXJnZV9hZGQgX2djb3ZfbWVyZ2Vf c2luZ2xlIF9nY292X21lcmdlX2RlbHRhCVwKIAlfZ2Nvdl9tZXJnZV9pb3Ig X2djb3ZfbWVyZ2VfdGltZV9wcm9maWxlIF9nY292X21lcmdlX2ljYWxsX3Rv cG4KLUxJQkdDT1ZfUFJPRklMRVIgPSBfZ2Nvdl9pbnRlcnZhbF9wcm9maWxl ciBfZ2Nvdl9wb3cyX3Byb2ZpbGVyCQlcCitMSUJHQ09WX1BST0ZJTEVSID0g X2djb3ZfaW50ZXJ2YWxfcHJvZmlsZXIJCQkJXAorCV9nY292X2ludGVydmFs X3Byb2ZpbGVyX2F0b21pYwkJCQkJXAorCV9nY292X3BvdzJfcHJvZmlsZXIJ CQkJCQlcCisJX2djb3ZfcG93Ml9wcm9maWxlcl9hdG9taWMJCQkJCVwKIAlf Z2Nvdl9vbmVfdmFsdWVfcHJvZmlsZXIJCQkJCVwKLSAJX2djb3ZfYXZlcmFn ZV9wcm9maWxlciBfZ2Nvdl9pb3JfcHJvZmlsZXIJCQlcCi0JX2djb3ZfaW5k aXJlY3RfY2FsbF9wcm9maWxlcl92MiBfZ2Nvdl90aW1lX3Byb2ZpbGVyCQlc CisJX2djb3Zfb25lX3ZhbHVlX3Byb2ZpbGVyX2F0b21pYwkJCQkJXAorCV9n Y292X2F2ZXJhZ2VfcHJvZmlsZXIJCQkJCQlcCisJX2djb3ZfYXZlcmFnZV9w cm9maWxlcl9hdG9taWMJCQkJCVwKKwlfZ2Nvdl9pb3JfcHJvZmlsZXIJCQkJ CQlcCisJX2djb3ZfaW9yX3Byb2ZpbGVyX2F0b21pYwkJCQkJXAorCV9nY292 X2luZGlyZWN0X2NhbGxfcHJvZmlsZXJfdjIJCQkJCVwKKwlfZ2Nvdl90aW1l X3Byb2ZpbGVyCQkJCQkJXAorCV9nY292X3RpbWVfcHJvZmlsZXJfYXRvbWlj CQkJCQlcCiAJX2djb3ZfaW5kaXJlY3RfY2FsbF90b3BuX3Byb2ZpbGVyCiBM SUJHQ09WX0lOVEVSRkFDRSA9IF9nY292X2R1bXAgX2djb3ZfZmx1c2ggX2dj b3ZfZm9yawkJCVwKIAlfZ2Nvdl9leGVjbCBfZ2Nvdl9leGVjbHAJCQkJCVwK ZGlmZiAtLWdpdCBhL2xpYmdjYy9saWJnY292LXByb2ZpbGVyLmMgYi9saWJn Y2MvbGliZ2Nvdi1wcm9maWxlci5jCmluZGV4IDZiNDU1N2EuLjA4MzdlYTEg MTAwNjQ0Ci0tLSBhL2xpYmdjYy9saWJnY292LXByb2ZpbGVyLmMKKysrIGIv bGliZ2NjL2xpYmdjb3YtcHJvZmlsZXIuYwpAQCAtNDYsNiArNDYsMjYgQEAg X19nY292X2ludGVydmFsX3Byb2ZpbGVyIChnY292X3R5cGUgKmNvdW50ZXJz LCBnY292X3R5cGUgdmFsdWUsCiB9CiAjZW5kaWYKIAorI2lmZGVmIExfZ2Nv dl9pbnRlcnZhbF9wcm9maWxlcl9hdG9taWMKKy8qIElmIFZBTFVFIGlzIGlu IGludGVydmFsIDxTVEFSVCwgU1RBUlQgKyBTVEVQUyAtIDE+LCB0aGVuIGlu Y3JlYXNlcyB0aGUKKyAgIGNvcnJlc3BvbmRpbmcgY291bnRlciBpbiBDT1VO VEVSUy4gIElmIHRoZSBWQUxVRSBpcyBhYm92ZSBvciBiZWxvdworICAgdGhl IGludGVydmFsLCBDT1VOVEVSU1tTVEVQU10gb3IgQ09VTlRFUlNbU1RFUFMg KyAxXSBpcyBpbmNyZWFzZWQKKyAgIGluc3RlYWQuICBGdW5jdGlvbiBpcyB0 aHJlYWQtc2FmZS4gICovCisKK3ZvaWQKK19fZ2Nvdl9pbnRlcnZhbF9wcm9m aWxlcl9hdG9taWMgKGdjb3ZfdHlwZSAqY291bnRlcnMsIGdjb3ZfdHlwZSB2 YWx1ZSwKKwkJCQkgaW50IHN0YXJ0LCB1bnNpZ25lZCBzdGVwcykKK3sKKyAg Z2Nvdl90eXBlIGRlbHRhID0gdmFsdWUgLSBzdGFydDsKKyAgaWYgKGRlbHRh IDwgMCkKKyAgICBfX2F0b21pY19mZXRjaF9hZGQgKCZjb3VudGVyc1tzdGVw cyArIDFdLCAxLCBNRU1NT0RFTF9SRUxBWEVEKTsKKyAgZWxzZSBpZiAoZGVs dGEgPj0gc3RlcHMpCisgICAgX19hdG9taWNfZmV0Y2hfYWRkICgmY291bnRl cnNbc3RlcHNdLCAxLCBNRU1NT0RFTF9SRUxBWEVEKTsKKyAgZWxzZQorICAg IF9fYXRvbWljX2ZldGNoX2FkZCAoJmNvdW50ZXJzW2RlbHRhXSwgMSwgTUVN TU9ERUxfUkVMQVhFRCk7Cit9CisjZW5kaWYKKwogI2lmZGVmIExfZ2Nvdl9w b3cyX3Byb2ZpbGVyCiAvKiBJZiBWQUxVRSBpcyBhIHBvd2VyIG9mIHR3bywg Q09VTlRFUlNbMV0gaXMgaW5jcmVtZW50ZWQuICBPdGhlcndpc2UKICAgIENP VU5URVJTWzBdIGlzIGluY3JlbWVudGVkLiAgKi8KQEAgLTYwLDYgKzgwLDIx IEBAIF9fZ2Nvdl9wb3cyX3Byb2ZpbGVyIChnY292X3R5cGUgKmNvdW50ZXJz LCBnY292X3R5cGUgdmFsdWUpCiB9CiAjZW5kaWYKIAorI2lmZGVmIExfZ2Nv dl9wb3cyX3Byb2ZpbGVyX2F0b21pYworLyogSWYgVkFMVUUgaXMgYSBwb3dl ciBvZiB0d28sIENPVU5URVJTWzFdIGlzIGluY3JlbWVudGVkLiAgT3RoZXJ3 aXNlCisgICBDT1VOVEVSU1swXSBpcyBpbmNyZW1lbnRlZC4gIEZ1bmN0aW9u IGlzIHRocmVhZC1zYWZlLiAgKi8KKwordm9pZAorX19nY292X3BvdzJfcHJv ZmlsZXJfYXRvbWljIChnY292X3R5cGUgKmNvdW50ZXJzLCBnY292X3R5cGUg dmFsdWUpCit7CisgIGlmICh2YWx1ZSAmICh2YWx1ZSAtIDEpKQorICAgIF9f YXRvbWljX2ZldGNoX2FkZCAoJmNvdW50ZXJzWzBdLCAxLCBNRU1NT0RFTF9S RUxBWEVEKTsKKyAgZWxzZQorICAgIF9fYXRvbWljX2ZldGNoX2FkZCAoJmNv dW50ZXJzWzFdLCAxLCBNRU1NT0RFTF9SRUxBWEVEKTsKK30KKyNlbmRpZgor CisKIC8qIFRyaWVzIHRvIGRldGVybWluZSB0aGUgbW9zdCBjb21tb24gdmFs dWUgYW1vbmcgaXRzIGlucHV0cy4gIENoZWNrcyBpZiB0aGUKICAgIHZhbHVl IHN0b3JlZCBpbiBDT1VOVEVSU1swXSBtYXRjaGVzIFZBTFVFLiAgSWYgdGhp cyBpcyB0aGUgY2FzZSwgQ09VTlRFUlNbMV0KICAgIGlzIGluY3JlbWVudGVk LiAgSWYgdGhpcyBpcyBub3QgdGhlIGNhc2UgYW5kIENPVU5URVJTWzFdIGlz IG5vdCB6ZXJvLApAQCAtNjgsMTAgKzEwMywxMiBAQCBfX2djb3ZfcG93Ml9w cm9maWxlciAoZ2Nvdl90eXBlICpjb3VudGVycywgZ2Nvdl90eXBlIHZhbHVl KQogICAgZnVuY3Rpb24gaXMgY2FsbGVkIG1vcmUgdGhhbiA1MCUgb2YgdGhl IHRpbWUgd2l0aCBvbmUgdmFsdWUsIHRoaXMgdmFsdWUKICAgIHdpbGwgYmUg aW4gQ09VTlRFUlNbMF0gaW4gdGhlIGVuZC4KIAotICAgSW4gYW55IGNhc2Us IENPVU5URVJTWzJdIGlzIGluY3JlbWVudGVkLiAgKi8KKyAgIEluIGFueSBj YXNlLCBDT1VOVEVSU1syXSBpcyBpbmNyZW1lbnRlZC4gIElmIFVTRV9BVE9N SUMgaXMgc2V0IHRvIDEsCisgICBDT1VOVEVSU1syXSBpcyB1cGRhdGVkIHdp dGggYW4gYXRvbWljIGluc3RydWN0aW9uLiAgKi8KIAogc3RhdGljIGlubGlu ZSB2b2lkCi1fX2djb3Zfb25lX3ZhbHVlX3Byb2ZpbGVyX2JvZHkgKGdjb3Zf dHlwZSAqY291bnRlcnMsIGdjb3ZfdHlwZSB2YWx1ZSkKK19fZ2Nvdl9vbmVf dmFsdWVfcHJvZmlsZXJfYm9keSAoZ2Nvdl90eXBlICpjb3VudGVycywgZ2Nv dl90eXBlIHZhbHVlLAorCQkJCWludCB1c2VfYXRvbWljKQogewogICBpZiAo dmFsdWUgPT0gY291bnRlcnNbMF0pCiAgICAgY291bnRlcnNbMV0rKzsKQEAg LTgyLDE0ICsxMTksMjYgQEAgX19nY292X29uZV92YWx1ZV9wcm9maWxlcl9i b2R5IChnY292X3R5cGUgKmNvdW50ZXJzLCBnY292X3R5cGUgdmFsdWUpCiAg ICAgfQogICBlbHNlCiAgICAgY291bnRlcnNbMV0tLTsKLSAgY291bnRlcnNb Ml0rKzsKKworICBpZiAodXNlX2F0b21pYykKKyAgICBfX2F0b21pY19mZXRj aF9hZGQgKCZjb3VudGVyc1syXSwgMSwgTUVNTU9ERUxfUkVMQVhFRCk7Cisg IGVsc2UKKyAgICBjb3VudGVyc1syXSsrOwogfQogCiAjaWZkZWYgTF9nY292 X29uZV92YWx1ZV9wcm9maWxlcgogdm9pZAogX19nY292X29uZV92YWx1ZV9w cm9maWxlciAoZ2Nvdl90eXBlICpjb3VudGVycywgZ2Nvdl90eXBlIHZhbHVl KQogewotICBfX2djb3Zfb25lX3ZhbHVlX3Byb2ZpbGVyX2JvZHkgKGNvdW50 ZXJzLCB2YWx1ZSk7CisgIF9fZ2Nvdl9vbmVfdmFsdWVfcHJvZmlsZXJfYm9k eSAoY291bnRlcnMsIHZhbHVlLCAwKTsKK30KKyNlbmRpZgorCisjaWZkZWYg TF9nY292X29uZV92YWx1ZV9wcm9maWxlcl9hdG9taWMKK3ZvaWQKK19fZ2Nv dl9vbmVfdmFsdWVfcHJvZmlsZXJfYXRvbWljIChnY292X3R5cGUgKmNvdW50 ZXJzLCBnY292X3R5cGUgdmFsdWUpCit7CisgIF9fZ2Nvdl9vbmVfdmFsdWVf cHJvZmlsZXJfYm9keSAoY291bnRlcnMsIHZhbHVlLCAxKTsKIH0KICNlbmRp ZgogCkBAIC0yNjUsMTQgKzMxNCwxNCBAQCBfX2djb3ZfaW5kaXJlY3RfY2Fs bF9wcm9maWxlcl92MiAoZ2Nvdl90eXBlIHZhbHVlLCB2b2lkKiBjdXJfZnVu YykKICAgaWYgKGN1cl9mdW5jID09IF9fZ2Nvdl9pbmRpcmVjdF9jYWxsX2Nh bGxlZQogICAgICAgfHwgKF9fTElCR0NDX1ZUQUJMRV9VU0VTX0RFU0NSSVBU T1JTX18gJiYgX19nY292X2luZGlyZWN0X2NhbGxfY2FsbGVlCiAgICAgICAg ICAgJiYgKih2b2lkICoqKSBjdXJfZnVuYyA9PSAqKHZvaWQgKiopIF9fZ2Nv dl9pbmRpcmVjdF9jYWxsX2NhbGxlZSkpCi0gICAgX19nY292X29uZV92YWx1 ZV9wcm9maWxlcl9ib2R5IChfX2djb3ZfaW5kaXJlY3RfY2FsbF9jb3VudGVy cywgdmFsdWUpOworICAgIF9fZ2Nvdl9vbmVfdmFsdWVfcHJvZmlsZXJfYm9k eSAoX19nY292X2luZGlyZWN0X2NhbGxfY291bnRlcnMsIHZhbHVlLCAwKTsK IH0KICNlbmRpZgogCiAjaWZkZWYgTF9nY292X3RpbWVfcHJvZmlsZXIKIAog LyogQ291bnRlciBmb3IgZmlyc3QgdmlzaXQgb2YgZWFjaCBmdW5jdGlvbi4g ICovCi1zdGF0aWMgZ2Nvdl90eXBlIGZ1bmN0aW9uX2NvdW50ZXI7CitnY292 X3R5cGUgZnVuY3Rpb25fY291bnRlcjsKIAogLyogU2V0cyBjb3JyZXNwb25k aW5nIENPVU5URVJTIGlmIHRoZXJlIGlzIG5vIHZhbHVlLiAgKi8KIApAQCAt Mjg0LDYgKzMzMywxOSBAQCBfX2djb3ZfdGltZV9wcm9maWxlciAoZ2Nvdl90 eXBlKiBjb3VudGVycykKIH0KICNlbmRpZgogCisvKiBTZXRzIGNvcnJlc3Bv bmRpbmcgQ09VTlRFUlMgaWYgdGhlcmUgaXMgbm8gdmFsdWUuCisgICBGdW5j dGlvbiBpcyB0aHJlYWQtc2FmZS4gICovCisKKyNpZmRlZiBMX2djb3ZfdGlt ZV9wcm9maWxlcl9hdG9taWMKK3ZvaWQKK19fZ2Nvdl90aW1lX3Byb2ZpbGVy X2F0b21pYyAoZ2Nvdl90eXBlKiBjb3VudGVycykKK3sKKyAgaWYgKCFjb3Vu dGVyc1swXSkKKyAgICBjb3VudGVyc1swXSA9IF9fYXRvbWljX2FkZF9mZXRj aCAoJmZ1bmN0aW9uX2NvdW50ZXIsIDEsIE1FTU1PREVMX1JFTEFYRUQpOwor fQorI2VuZGlmCisKKwogI2lmZGVmIExfZ2Nvdl9hdmVyYWdlX3Byb2ZpbGVy CiAvKiBJbmNyZWFzZSBjb3JyZXNwb25kaW5nIENPVU5URVIgYnkgVkFMVUUu ICBGSVhNRTogUGVyaGFwcyB3ZSB3YW50CiAgICB0byBzYXR1cmF0ZSB1cC4g ICovCkBAIC0yOTYsNiArMzU4LDE4IEBAIF9fZ2Nvdl9hdmVyYWdlX3Byb2Zp bGVyIChnY292X3R5cGUgKmNvdW50ZXJzLCBnY292X3R5cGUgdmFsdWUpCiB9 CiAjZW5kaWYKIAorI2lmZGVmIExfZ2Nvdl9hdmVyYWdlX3Byb2ZpbGVyX2F0 b21pYworLyogSW5jcmVhc2UgY29ycmVzcG9uZGluZyBDT1VOVEVSIGJ5IFZB TFVFLiAgRklYTUU6IFBlcmhhcHMgd2Ugd2FudAorICAgdG8gc2F0dXJhdGUg dXAuICBGdW5jdGlvbiBpcyB0aHJlYWQtc2FmZS4gICovCisKK3ZvaWQKK19f Z2Nvdl9hdmVyYWdlX3Byb2ZpbGVyX2F0b21pYyAoZ2Nvdl90eXBlICpjb3Vu dGVycywgZ2Nvdl90eXBlIHZhbHVlKQoreworICBfX2F0b21pY19mZXRjaF9h ZGQgKCZjb3VudGVyc1swXSwgdmFsdWUsIE1FTU1PREVMX1JFTEFYRUQpOwor ICBfX2F0b21pY19mZXRjaF9hZGQgKCZjb3VudGVyc1sxXSwgMSwgTUVNTU9E RUxfUkVMQVhFRCk7Cit9CisjZW5kaWYKKwogI2lmZGVmIExfZ2Nvdl9pb3Jf cHJvZmlsZXIKIC8qIEJpdHdpc2UtT1IgVkFMVUUgaW50byBDT1VOVEVSLiAg Ki8KIApAQCAtMzA2LDQgKzM4MCwxNSBAQCBfX2djb3ZfaW9yX3Byb2ZpbGVy IChnY292X3R5cGUgKmNvdW50ZXJzLCBnY292X3R5cGUgdmFsdWUpCiB9CiAj ZW5kaWYKIAorI2lmZGVmIExfZ2Nvdl9pb3JfcHJvZmlsZXJfYXRvbWljCisv KiBCaXR3aXNlLU9SIFZBTFVFIGludG8gQ09VTlRFUi4gIEZ1bmN0aW9uIGlz IHRocmVhZC1zYWZlLiAgKi8KKwordm9pZAorX19nY292X2lvcl9wcm9maWxl cl9hdG9taWMgKGdjb3ZfdHlwZSAqY291bnRlcnMsIGdjb3ZfdHlwZSB2YWx1 ZSkKK3sKKyAgX19hdG9taWNfZmV0Y2hfb3IgKCZjb3VudGVyc1swXSwgdmFs dWUsIE1FTU1PREVMX1JFTEFYRUQpOworfQorI2VuZGlmCisKKwogI2VuZGlm IC8qIGluaGliaXRfbGliYyAqLwpkaWZmIC0tZ2l0IGEvbGliZ2NjL2xpYmdj b3YuaCBiL2xpYmdjYy9saWJnY292LmgKaW5kZXggODBmMTNlMi4uODJmNjIw YSAxMDA2NDQKLS0tIGEvbGliZ2NjL2xpYmdjb3YuaAorKysgYi9saWJnY2Mv bGliZ2Nvdi5oCkBAIC0yNjgsMTUgKzI2OCwyNSBAQCBleHRlcm4gdm9pZCBf X2djb3ZfbWVyZ2VfaWNhbGxfdG9wbiAoZ2Nvdl90eXBlICosIHVuc2lnbmVk KSBBVFRSSUJVVEVfSElEREVOOwogCiAvKiBUaGUgcHJvZmlsZXIgZnVuY3Rp b25zLiAgKi8KIGV4dGVybiB2b2lkIF9fZ2Nvdl9pbnRlcnZhbF9wcm9maWxl ciAoZ2Nvdl90eXBlICosIGdjb3ZfdHlwZSwgaW50LCB1bnNpZ25lZCk7Citl eHRlcm4gdm9pZCBfX2djb3ZfaW50ZXJ2YWxfcHJvZmlsZXJfYXRvbWljIChn Y292X3R5cGUgKiwgZ2Nvdl90eXBlLCBpbnQsCisJCQkJCSAgICAgdW5zaWdu ZWQpOwogZXh0ZXJuIHZvaWQgX19nY292X3BvdzJfcHJvZmlsZXIgKGdjb3Zf dHlwZSAqLCBnY292X3R5cGUpOworZXh0ZXJuIHZvaWQgX19nY292X3BvdzJf cHJvZmlsZXJfYXRvbWljIChnY292X3R5cGUgKiwgZ2Nvdl90eXBlKTsKIGV4 dGVybiB2b2lkIF9fZ2Nvdl9vbmVfdmFsdWVfcHJvZmlsZXIgKGdjb3ZfdHlw ZSAqLCBnY292X3R5cGUpOworZXh0ZXJuIHZvaWQgX19nY292X29uZV92YWx1 ZV9wcm9maWxlcl9hdG9taWMgKGdjb3ZfdHlwZSAqLCBnY292X3R5cGUpOwog ZXh0ZXJuIHZvaWQgX19nY292X2luZGlyZWN0X2NhbGxfcHJvZmlsZXJfdjIg KGdjb3ZfdHlwZSwgdm9pZCAqKTsKIGV4dGVybiB2b2lkIF9fZ2Nvdl90aW1l X3Byb2ZpbGVyIChnY292X3R5cGUgKik7CitleHRlcm4gdm9pZCBfX2djb3Zf dGltZV9wcm9maWxlcl9hdG9taWMgKGdjb3ZfdHlwZSAqKTsKIGV4dGVybiB2 b2lkIF9fZ2Nvdl9hdmVyYWdlX3Byb2ZpbGVyIChnY292X3R5cGUgKiwgZ2Nv dl90eXBlKTsKK2V4dGVybiB2b2lkIF9fZ2Nvdl9hdmVyYWdlX3Byb2ZpbGVy X2F0b21pYyAoZ2Nvdl90eXBlICosIGdjb3ZfdHlwZSk7CiBleHRlcm4gdm9p ZCBfX2djb3ZfaW9yX3Byb2ZpbGVyIChnY292X3R5cGUgKiwgZ2Nvdl90eXBl KTsKK2V4dGVybiB2b2lkIF9fZ2Nvdl9pb3JfcHJvZmlsZXJfYXRvbWljIChn Y292X3R5cGUgKiwgZ2Nvdl90eXBlKTsKIGV4dGVybiB2b2lkIF9fZ2Nvdl9p bmRpcmVjdF9jYWxsX3RvcG5fcHJvZmlsZXIgKGdjb3ZfdHlwZSwgdm9pZCAq KTsKIGV4dGVybiB2b2lkIGdjb3Zfc29ydF9uX3ZhbHMgKGdjb3ZfdHlwZSAq LCBpbnQpOwogCisvKiBDb3VudGVyIGZvciBmaXJzdCB2aXNpdCBvZiBlYWNo IGZ1bmN0aW9uLiAgKi8KK2V4dGVybiBnY292X3R5cGUgZnVuY3Rpb25fY291 bnRlcjsKKwogI2lmbmRlZiBpbmhpYml0X2xpYmMKIC8qIFRoZSB3cmFwcGVy cyBhcm91bmQgc29tZSBsaWJyYXJ5IGZ1bmN0aW9ucy4uICAqLwogZXh0ZXJu IHBpZF90IF9fZ2Nvdl9mb3JrICh2b2lkKSBBVFRSSUJVVEVfSElEREVOOwot LSAKMi45LjIKCg== --------------761769F47AA75C3A113B523F--