Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eyWWI-0000Gk-Qs for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Mar 2018 05:42:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1eyWWH-00037B-Ol for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Mar 2018 05:42:41 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eyWWH-000370-7T for pgsql-hackers@lists.postgresql.org; Wed, 21 Mar 2018 05:42:41 +0000 Received: from smtp-fw-6001.amazon.com ([52.95.48.154]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eyWWE-0003RH-1B for pgsql-hackers@postgresql.org; Wed, 21 Mar 2018 05:42:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1521610958; x=1553146958; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=77mO91JEb7o1AUKW3XP/CATlaegOq/0HoWcC7iga6mM=; b=BRvvE3ylBUywe4JQEdguMS8y7JJYz0IxOpcZF1xfHaqPZKBufwd7h2kq VmkkebyF0kzBeyLC4dOTgVmbhrD5W8ScU3S1q+Fcmkno320adZNbeBVcG pf2eSvEUTcH/ySTwfIEdXKjLGiCfTS35Ohn7FTe/A8aaOfqk8K4wes+ou c=; X-Amazon-filename: pgbench11-ppoll-v11.patch X-IronPort-AV: E=Sophos;i="5.48,338,1517875200"; d="scan'208";a="336705315" Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1d-9ec21598.us-east-1.amazon.com) ([10.124.125.6]) by smtp-border-fw-out-6001.iad6.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 21 Mar 2018 05:42:35 +0000 Received: from EX13MTAUWB001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162]) by email-inbound-relay-1d-9ec21598.us-east-1.amazon.com (8.14.7/8.14.7) with ESMTP id w2L5gPRq126093 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 21 Mar 2018 05:42:34 GMT Received: from EX13D17UWB004.ant.amazon.com (10.43.161.132) by EX13MTAUWB001.ant.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Wed, 21 Mar 2018 05:42:33 +0000 Received: from EX13D17UWB001.ant.amazon.com (10.43.161.252) by EX13D17UWB004.ant.amazon.com (10.43.161.132) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Wed, 21 Mar 2018 05:42:33 +0000 Received: from EX13D17UWB001.ant.amazon.com ([10.43.161.252]) by EX13D17UWB001.ant.amazon.com ([10.43.161.252]) with mapi id 15.00.1236.000; Wed, 21 Mar 2018 05:42:33 +0000 From: "Rady, Doug" To: Andres Freund , Fabien COELHO CC: "pgsql-hackers@postgresql.org" , Robert Haas Subject: Re: PATCH: pgbench - option to build using ppoll() for larger connection counts Thread-Topic: PATCH: pgbench - option to build using ppoll() for larger connection counts Thread-Index: AQHTk1vEAOWLJLdBw0iv3Qs0KFuoOg== Date: Wed, 21 Mar 2018 05:42:33 +0000 Message-ID: <2879AF01-915B-4D07-9F42-04F7CA71908D@amazon.com> References: <23D017C9-81B7-484D-8490-FD94DEC4DF59@amazon.com> <16744C85-E44E-4354-9E3D-45A7C9BDB19B@amazon.com> <81936381-841A-459D-9FE5-18659680355C@amazon.com> <654A1247-8E1E-4E9C-937D-9119B1731FF2@amazon.com> <20180301083404.z2sbnjdaw7gxvz6x@alap3.anarazel.de> <20180304001409.tajjmefj7yq6xs77@alap3.anarazel.de> In-Reply-To: <20180304001409.tajjmefj7yq6xs77@alap3.anarazel.de> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.162.185] Content-Type: multipart/mixed; boundary="_002_2879AF01915B4D079F4204F7CA71908Damazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --_002_2879AF01915B4D079F4204F7CA71908Damazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <73AD9D2B51835D488217B2FCE92BA9BF@amazon.com> Content-Transfer-Encoding: base64 VXBkYXRlZCB0aGUgcGF0Y2ggdG8gbm90IGRvIHRoZSAjdW5kZWYNCg0KcGdiZW5jaDExLXBwb2xs LXYxMS5wYXRjaCBhdHRhY2hlZC4NCg0KVGhhbmtzLA0KZG91Zw0KDQoNCg0K77u/T24gMy8zLzE4 LCAxNjoxNCwgIkFuZHJlcyBGcmV1bmQiIDxhbmRyZXNAYW5hcmF6ZWwuZGU+IHdyb3RlOg0KDQog ICAgT24gMjAxOC0wMy0wMSAxMTozMDozOSArMDEwMCwgRmFiaWVuIENPRUxITyB3cm90ZToNCiAg ICA+IA0KICAgID4gPiA+IC0jaWZkZWYgSEFWRV9TWVNfU0VMRUNUX0gNCiAgICA+ID4gPiArI2lm ZGVmIFBHQkVOQ0hfVVNFX1NFTEVDVAkJCS8qIGZvcmNlIHVzZSBvZiBzZWxlY3QoMik/ICovDQog ICAgPiA+ID4gKyN1bmRlZiBIQVZFX1BQT0xMDQogICAgPiA+ID4gKyNlbmRpZg0KICAgID4gPiA+ ICsjaWZkZWYgSEFWRV9QUE9MTA0KICAgID4gPiA+ICsjaW5jbHVkZSA8cG9sbC5oPg0KICAgID4g PiA+ICsjZWxpZiBkZWZpbmVkKEhBVkVfU1lTX1NFTEVDVF9IKQ0KICAgID4gPiA+ICsjZGVmaW5l IFBPTExfVVNJTkdfU0VMRUNUDQogICAgPiA+IA0KICAgID4gPiAocmFuZG9tIHRoaW5nIG5vdGlj ZWQgd2hpbGUgZ29pbmcgdGhyb3VnaCBwYXRjaGVzKQ0KICAgID4gPiANCiAgICA+ID4gSXQgc3Ry aWtlcyBtZSBhcyBhIGJhZCBpZGVhIHRvIHVuZGVmaW5lIGNvbmZpZ3VyZSBzZWxlY3RlZA0KICAg ID4gPiBzeW1ib2xzLiBQb3N0Z3JlcyBoZWFkZXIgbWlnaHQgcmVseSBvbiB0aGVtLiBJdCBhbHNv IHN0cmlrZXMgbWUgYXMNCiAgICA+ID4gZW50aXJlbHkgdW5uZWNlc3NhcnkgaGVyZS4NCiAgICA+ IA0KICAgID4gWWVzLCBJIHRob3VnaCBhYm91dCB0aGlzIG9uZSBidXQgbGV0IGl0IHBhc3MuIElu ZGVlZCwgaXQgd291bGQgYmUgc3VmZmljaWVudA0KICAgID4gdG8gbm90IGxvYWQgInBvbGwuaCIg d2hlbiBzZWxlY3QgaXMgZm9yY2VkLCB3aXRob3V0IHVuZGVmaW5pbmcgdGhlIGNvbmZpZ3VyZQ0K ICAgID4gc2V0dGluZy4NCiAgICANCiAgICBJJ3ZlIG1hcmtlZCB0aGUgQ0YgZW50cnkgd2FpdGlu ZyBvbiBhdXRob3IuDQogICAgDQogICAgR3JlZXRpbmdzLA0KICAgIA0KICAgIEFuZHJlcyBGcmV1 bmQNCiAgICANCiAgICANCg0K --_002_2879AF01915B4D079F4204F7CA71908Damazoncom_ Content-Type: application/octet-stream; name="pgbench11-ppoll-v11.patch" Content-Description: pgbench11-ppoll-v11.patch Content-Disposition: attachment; filename="pgbench11-ppoll-v11.patch"; size=10541; creation-date="Wed, 21 Mar 2018 05:42:33 GMT"; modification-date="Wed, 21 Mar 2018 05:42:33 GMT" Content-ID: Content-Transfer-Encoding: base64 LS0tIGEvY29uZmlndXJlLmluCisrKyBiL2NvbmZpZ3VyZS5pbgpAQCAtMTUyMCw3ICsxNTIwLDcg QEAgUEdBQ19GVU5DX1dDU1RPTUJTX0wKIExJQlNfaW5jbHVkaW5nX3JlYWRsaW5lPSIkTElCUyIK IExJQlM9YGVjaG8gIiRMSUJTIiB8IHNlZCAtZSAncy8tbGVkaXQvL2cnIC1lICdzLy1scmVhZGxp bmUvL2cnYAogCi1BQ19DSEVDS19GVU5DUyhbY2JydCBjbG9ja19nZXR0aW1lIGRsb3BlbiBmZGF0 YXN5bmMgZ2V0aWZhZGRycyBnZXRwZWVydWNyZWQgZ2V0cmxpbWl0IG1ic3Rvd2NzX2wgbWVtbW92 ZSBwb2xsIHBvc2l4X2ZhbGxvY2F0ZSBwc3RhdCBwdGhyZWFkX2lzX3RocmVhZGVkX25wIHJlYWRs aW5rIHNldHByb2N0aXRsZSBzZXRzaWQgc2htX29wZW4gc3ltbGluayBzeW5jX2ZpbGVfcmFuZ2Ug dXRpbWUgdXRpbWVzIHdjc3RvbWJzX2xdKQorQUNfQ0hFQ0tfRlVOQ1MoW2NicnQgY2xvY2tfZ2V0 dGltZSBkbG9wZW4gZmRhdGFzeW5jIGdldGlmYWRkcnMgZ2V0cGVlcnVjcmVkIGdldHJsaW1pdCBt YnN0b3djc19sIG1lbW1vdmUgcG9sbCBwb3NpeF9mYWxsb2NhdGUgcHBvbGwgcHN0YXQgcHRocmVh ZF9pc190aHJlYWRlZF9ucCByZWFkbGluayBzZXRwcm9jdGl0bGUgc2V0c2lkIHNobV9vcGVuIHN5 bWxpbmsgc3luY19maWxlX3JhbmdlIHV0aW1lIHV0aW1lcyB3Y3N0b21ic19sXSkKIAogQUNfUkVQ TEFDRV9GVU5DUyhmc2Vla28pCiBjYXNlICRob3N0X29zIGluCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnYmVuY2gvcGdiZW5jaC5jIGIvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYwppbmRleCAyOWQ2 OWRlNGQxLi40NTE3N2FmNWFjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5j CisrKyBiL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMKQEAgLTQ0LDkgKzQ0LDE4IEBACiAjaW5j bHVkZSA8c2lnbmFsLmg+CiAjaW5jbHVkZSA8dGltZS5oPgogI2luY2x1ZGUgPHN5cy90aW1lLmg+ CisjaWZuZGVmIFBHQkVOQ0hfVVNFX1NFTEVDVAkJCS8qIGZvcmNlIHVzZSBvZiBzZWxlY3QoMik/ ICovCisjaWZkZWYgSEFWRV9QUE9MTAorI2RlZmluZSBQT0xMX1VTSU5HX1BQT0xMCisjaW5jbHVk ZSA8cG9sbC5oPgorI2VuZGlmCisjZW5kaWYKKyNpZm5kZWYgUE9MTF9VU0lOR19QUE9MTAogI2lm ZGVmIEhBVkVfU1lTX1NFTEVDVF9ICisjZGVmaW5lIFBPTExfVVNJTkdfU0VMRUNUCiAjaW5jbHVk ZSA8c3lzL3NlbGVjdC5oPgogI2VuZGlmCisjZW5kaWYKIAogI2lmZGVmIEhBVkVfU1lTX1JFU09V UkNFX0gKICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4JCS8qIGZvciBnZXRybGltaXQgKi8KQEAg LTgyLDEzICs5MSwxOSBAQCBzdGF0aWMgaW50CXB0aHJlYWRfam9pbihwdGhyZWFkX3QgdGgsIHZv aWQgKip0aHJlYWRfcmV0dXJuKTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBzb21lIGNvbmZpZ3VyYWJs ZSBwYXJhbWV0ZXJzICovCi0KLS8qIG1heCBudW1iZXIgb2YgY2xpZW50cyBhbGxvd2VkICovCisj aWZkZWYgUE9MTF9VU0lOR19TRUxFQ1QJLyogdXNpbmcgc2VsZWN0KDIpICovCisjZGVmaW5lIFNP Q0tFVF9XQUlUX01FVEhPRCAic2VsZWN0IgordHlwZWRlZiBmZF9zZXQgc29ja2V0X3NldDsKICNp ZmRlZiBGRF9TRVRTSVpFCi0jZGVmaW5lIE1BWENMSUVOVFMJKEZEX1NFVFNJWkUgLSAxMCkKKyNk ZWZpbmUgTUFYQ0xJRU5UUwkoRkRfU0VUU0laRSAtIDEwKSAvKiBzeXN0ZW0gbGltaXRlZCBtYXgg bnVtYmVyIG9mIGNsaWVudHMgYWxsb3dlZCAqLwogI2Vsc2UKLSNkZWZpbmUgTUFYQ0xJRU5UUwkx MDI0CisjZGVmaW5lIE1BWENMSUVOVFMJMTAyNAkJLyogbWF4IG51bWJlciBvZiBjbGllbnRzIGFs bG93ZWQgKi8KICNlbmRpZgorI2Vsc2UJLyogdXNpbmcgcHBvbGwoMikgKi8KKyNkZWZpbmUgU09D S0VUX1dBSVRfTUVUSE9EICJwcG9sbCIKK3R5cGVkZWYgc3RydWN0IHBvbGxmZCBzb2NrZXRfc2V0 OworI2RlZmluZSBNQVhDTElFTlRTCS0xCQkvKiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGNsaWVudHMg Ki8KKyNlbmRpZiAvKiBQT0xMX1VTSU5HX1NFTEVDVCAqLwogCiAjZGVmaW5lIERFRkFVTFRfSU5J VF9TVEVQUyAiZHRndnAiCS8qIGRlZmF1bHQgLUkgc2V0dGluZyAqLwogCkBAIC01MDMsNiArNTE4 LDEzIEBAIHN0YXRpYyB2b2lkIGFkZFNjcmlwdChQYXJzZWRTY3JpcHQgc2NyaXB0KTsKIHN0YXRp YyB2b2lkICp0aHJlYWRSdW4odm9pZCAqYXJnKTsKIHN0YXRpYyB2b2lkIHNldGFsYXJtKGludCBz ZWNvbmRzKTsKIHN0YXRpYyB2b2lkIGZpbmlzaENvbihDU3RhdGUgKnN0KTsKK3N0YXRpYyBzb2Nr ZXRfc2V0ICphbGxvY19zb2NrZXRfc2V0KGludCBjb3VudCk7CitzdGF0aWMgYm9vbCBlcnJvcl9v bl9zb2NrZXQoc29ja2V0X3NldCAqc2EsIGludCBpZHgsIFBHY29ubiAqY29uKTsKK3N0YXRpYyB2 b2lkIGZyZWVfc29ja2V0X3NldChzb2NrZXRfc2V0ICpzYSk7CitzdGF0aWMgYm9vbCBpZ25vcmVf c29ja2V0KHNvY2tldF9zZXQgKnNhLCBpbnQgaWR4LCBQR2Nvbm4gKmNvbik7CitzdGF0aWMgdm9p ZCBjbGVhcl9zb2NrZXRfc2V0KHNvY2tldF9zZXQgKnNhLCBpbnQgY291bnQpOworc3RhdGljIHZv aWQgc2V0X3NvY2tldChzb2NrZXRfc2V0ICpzYSwgaW50IGZkLCBpbnQgaWR4KTsKK3N0YXRpYyBp bnQgd2FpdF9vbl9zb2NrZXRfc2V0KHNvY2tldF9zZXQgKnNhLCBpbnQgbnN0YXRlLCBpbnQgbWF4 c29jaywgaW50NjQgdXNlYyk7CiAKIAogLyogY2FsbGJhY2sgZnVuY3Rpb25zIGZvciBvdXIgZmxl eCBsZXhlciAqLwpAQCAtMTA3Miw2ICsxMDk0LDcgQEAgZG9Db25uZWN0KHZvaWQpCiAJCQkhaGF2 ZV9wYXNzd29yZCkKIAkJewogCQkJUFFmaW5pc2goY29ubik7CisJCQljb25uID0gTlVMTDsKIAkJ CXNpbXBsZV9wcm9tcHQoIlBhc3N3b3JkOiAiLCBwYXNzd29yZCwgc2l6ZW9mKHBhc3N3b3JkKSwg ZmFsc2UpOwogCQkJaGF2ZV9wYXNzd29yZCA9IHRydWU7CiAJCQluZXdfcGFzcyA9IHRydWU7CkBA IC0yNzA2LDYgKzI3MjksNyBAQCBkb0N1c3RvbShUU3RhdGUgKnRocmVhZCwgQ1N0YXRlICpzdCwg U3RhdHNEYXRhICphZ2cpCiAJCQkJCWlmIChJTlNUUl9USU1FX0lTX1pFUk8obm93KSkKIAkJCQkJ CUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQobm93KTsKIAkJCQkJc3RhcnQgPSBub3c7CisKIAkJCQkJ aWYgKChzdC0+Y29uID0gZG9Db25uZWN0KCkpID09IE5VTEwpCiAJCQkJCXsKIAkJCQkJCWZwcmlu dGYoc3RkZXJyLCAiY2xpZW50ICVkIGFib3J0ZWQgd2hpbGUgZXN0YWJsaXNoaW5nIGNvbm5lY3Rp b25cbiIsCkBAIC00NDk4LDcgKzQ1MjIsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK IAkJCWNhc2UgJ2MnOgogCQkJCWJlbmNobWFya2luZ19vcHRpb25fc2V0ID0gdHJ1ZTsKIAkJCQlu Y2xpZW50cyA9IGF0b2kob3B0YXJnKTsKLQkJCQlpZiAobmNsaWVudHMgPD0gMCB8fCBuY2xpZW50 cyA+IE1BWENMSUVOVFMpCisJCQkJaWYgKG5jbGllbnRzIDw9IDAgfHwgKE1BWENMSUVOVFMgIT0g LTEgJiYgbmNsaWVudHMgPiBNQVhDTElFTlRTKSkKIAkJCQl7CiAJCQkJCWZwcmludGYoc3RkZXJy LCAiaW52YWxpZCBudW1iZXIgb2YgY2xpZW50czogXCIlc1wiXG4iLAogCQkJCQkJCW9wdGFyZyk7 CkBAIC01MTgwLDYgKzUyMDQsNyBAQCB0aHJlYWRSdW4odm9pZCAqYXJnKQogCWludDY0CQluZXh0 X3JlcG9ydCA9IGxhc3RfcmVwb3J0ICsgKGludDY0KSBwcm9ncmVzcyAqIDEwMDAwMDA7CiAJU3Rh dHNEYXRhCWxhc3QsCiAJCQkJYWdnczsKKwlzb2NrZXRfc2V0CSpzb2NrZXRzID0gYWxsb2Nfc29j a2V0X3NldChuc3RhdGUpOwogCiAJLyoKIAkgKiBJbml0aWFsaXplIHRocm90dGxpbmcgcmF0ZSB0 YXJnZXQgZm9yIGFsbCBvZiB0aGUgdGhyZWFkJ3MgY2xpZW50cy4gIEl0CkBAIC01MjIzLDYgKzUy NDgsNyBAQCB0aHJlYWRSdW4odm9pZCAqYXJnKQogCQl7CiAJCQlpZiAoKHN0YXRlW2ldLmNvbiA9 IGRvQ29ubmVjdCgpKSA9PSBOVUxMKQogCQkJCWdvdG8gZG9uZTsKKwkJCXNldF9zb2NrZXQoc29j a2V0cywgUFFzb2NrZXQoc3RhdGVbaV0uY29uKSwgaSk7CiAJCX0KIAl9CiAKQEAgLTUyMzksMTMg KzUyNjUsMTMgQEAgdGhyZWFkUnVuKHZvaWQgKmFyZykKIAkvKiBsb29wIHRpbGwgYWxsIGNsaWVu dHMgaGF2ZSB0ZXJtaW5hdGVkICovCiAJd2hpbGUgKHJlbWFpbnMgPiAwKQogCXsKLQkJZmRfc2V0 CQlpbnB1dF9tYXNrOwogCQlpbnQJCQltYXhzb2NrOwkvKiBtYXggc29ja2V0IG51bWJlciB0byBi ZSB3YWl0ZWQgZm9yICovCiAJCWludDY0CQltaW5fdXNlYzsKIAkJaW50NjQJCW5vd191c2VjID0g MDsJLyogc2V0IHRoaXMgb25seSBpZiBuZWVkZWQgKi8KIAogCQkvKiBpZGVudGlmeSB3aGljaCBj bGllbnQgc29ja2V0cyBzaG91bGQgYmUgY2hlY2tlZCBmb3IgaW5wdXQgKi8KLQkJRkRfWkVSTygm aW5wdXRfbWFzayk7CisJCWNsZWFyX3NvY2tldF9zZXQoc29ja2V0cywgbnN0YXRlKTsKKwogCQlt YXhzb2NrID0gLTE7CiAJCW1pbl91c2VjID0gUEdfSU5UNjRfTUFYOwogCQlmb3IgKGkgPSAwOyBp IDwgbnN0YXRlOyBpKyspCkBAIC01Mjk0LDcgKzUzMjAsNyBAQCB0aHJlYWRSdW4odm9pZCAqYXJn KQogCQkJCQlnb3RvIGRvbmU7CiAJCQkJfQogCi0JCQkJRkRfU0VUKHNvY2ssICZpbnB1dF9tYXNr KTsKKwkJCQlzZXRfc29ja2V0KHNvY2tldHMsIHNvY2ssIGkpOwogCQkJCWlmIChtYXhzb2NrIDwg c29jaykKIAkJCQkJbWF4c29jayA9IHNvY2s7CiAJCQl9CkBAIC01MzMxLDcgKzUzNTcsNyBAQCB0 aHJlYWRSdW4odm9pZCAqYXJnKQogCQkvKgogCQkgKiBJZiBubyBjbGllbnRzIGFyZSByZWFkeSB0 byBleGVjdXRlIGFjdGlvbnMsIHNsZWVwIHVudGlsIHdlIHJlY2VpdmUKIAkJICogZGF0YSBmcm9t IHRoZSBzZXJ2ZXIsIG9yIGEgbmFwLXRpbWUgc3BlY2lmaWVkIGluIHRoZSBzY3JpcHQgZW5kcywK LQkJICogb3IgaXQncyB0aW1lIHRvIHByaW50IGEgcHJvZ3Jlc3MgcmVwb3J0LiAgVXBkYXRlIGlu cHV0X21hc2sgdG8gc2hvdworCQkgKiBvciBpdCdzIHRpbWUgdG8gcHJpbnQgYSBwcm9ncmVzcyBy ZXBvcnQuICBVcGRhdGUgc29ja2V0cyB0byBzaG93CiAJCSAqIHdoaWNoIGNsaWVudChzKSByZWNl aXZlZCBkYXRhLgogCQkgKi8KIAkJaWYgKG1pbl91c2VjID4gMCkKQEAgLTUzNDIsMTEgKzUzNjgs NyBAQCB0aHJlYWRSdW4odm9pZCAqYXJnKQogCQkJewogCQkJCWlmIChtYXhzb2NrICE9IC0xKQog CQkJCXsKLQkJCQkJc3RydWN0IHRpbWV2YWwgdGltZW91dDsKLQotCQkJCQl0aW1lb3V0LnR2X3Nl YyA9IG1pbl91c2VjIC8gMTAwMDAwMDsKLQkJCQkJdGltZW91dC50dl91c2VjID0gbWluX3VzZWMg JSAxMDAwMDAwOwotCQkJCQluc29ja3MgPSBzZWxlY3QobWF4c29jayArIDEsICZpbnB1dF9tYXNr LCBOVUxMLCBOVUxMLCAmdGltZW91dCk7CisJCQkJCW5zb2NrcyA9IHdhaXRfb25fc29ja2V0X3Nl dChzb2NrZXRzLCBuc3RhdGUsIG1heHNvY2ssIG1pbl91c2VjKTsKIAkJCQl9CiAJCQkJZWxzZQkJ CS8qIG5vdGhpbmcgYWN0aXZlLCBzaW1wbGUgc2xlZXAgKi8KIAkJCQl7CkBAIC01MzU1LDcgKzUz NzcsNyBAQCB0aHJlYWRSdW4odm9pZCAqYXJnKQogCQkJfQogCQkJZWxzZQkJCQkvKiBubyBleHBs aWNpdCBkZWxheSwgc2VsZWN0IHdpdGhvdXQgdGltZW91dCAqLwogCQkJewotCQkJCW5zb2NrcyA9 IHNlbGVjdChtYXhzb2NrICsgMSwgJmlucHV0X21hc2ssIE5VTEwsIE5VTEwsIE5VTEwpOworCQkJ CW5zb2NrcyA9IHdhaXRfb25fc29ja2V0X3NldChzb2NrZXRzLCBuc3RhdGUsIG1heHNvY2ssIDAp OwogCQkJfQogCiAJCQlpZiAobnNvY2tzIDwgMCkKQEAgLTUzNjYsNyArNTM4OCw3IEBAIHRocmVh ZFJ1bih2b2lkICphcmcpCiAJCQkJCWNvbnRpbnVlOwogCQkJCX0KIAkJCQkvKiBtdXN0IGJlIHNv bWV0aGluZyB3cm9uZyAqLwotCQkJCWZwcmludGYoc3RkZXJyLCAic2VsZWN0KCkgZmFpbGVkOiAl c1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgIiVzKCkgZmFpbGVk OiAlc1xuIiwgU09DS0VUX1dBSVRfTUVUSE9ELCBzdHJlcnJvcihlcnJubykpOwogCQkJCWdvdG8g ZG9uZTsKIAkJCX0KIAkJfQpAQCAtNTM3NSw3ICs1Mzk3LDcgQEAgdGhyZWFkUnVuKHZvaWQgKmFy ZykKIAkJCS8qIG1pbl91c2VjID09IDAsIGkuZS4gc29tZXRoaW5nIG5lZWRzIHRvIGJlIGV4ZWN1 dGVkICovCiAKIAkJCS8qIElmIHdlIGRpZG4ndCBjYWxsIHNlbGVjdCgpLCBkb24ndCB0cnkgdG8g cmVhZCBhbnkgZGF0YSAqLwotCQkJRkRfWkVSTygmaW5wdXRfbWFzayk7CisJCQljbGVhcl9zb2Nr ZXRfc2V0KHNvY2tldHMsIG5zdGF0ZSk7CiAJCX0KIAogCQkvKiBvaywgYWR2YW5jZSB0aGUgc3Rh dGUgbWFjaGluZSBvZiBlYWNoIGNvbm5lY3Rpb24gKi8KQEAgLTUzODYsMTYgKzU0MDgsMTEgQEAg dGhyZWFkUnVuKHZvaWQgKmFyZykKIAkJCWlmIChzdC0+c3RhdGUgPT0gQ1NUQVRFX1dBSVRfUkVT VUxUKQogCQkJewogCQkJCS8qIGRvbid0IGNhbGwgZG9DdXN0b20gdW5sZXNzIGRhdGEgaXMgYXZh aWxhYmxlICovCi0JCQkJaW50CQkJc29jayA9IFBRc29ja2V0KHN0LT5jb24pOwogCi0JCQkJaWYg KHNvY2sgPCAwKQotCQkJCXsKLQkJCQkJZnByaW50ZihzdGRlcnIsICJpbnZhbGlkIHNvY2tldDog JXMiLAotCQkJCQkJCVBRZXJyb3JNZXNzYWdlKHN0LT5jb24pKTsKKwkJCQlpZiAoZXJyb3Jfb25f c29ja2V0KHNvY2tldHMsIGksIHN0LT5jb24pKQogCQkJCQlnb3RvIGRvbmU7Ci0JCQkJfQogCi0J CQkJaWYgKCFGRF9JU1NFVChzb2NrLCAmaW5wdXRfbWFzaykpCisJCQkJaWYgKGlnbm9yZV9zb2Nr ZXQoc29ja2V0cywgaSwgc3QtPmNvbikpCiAJCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJZWxzZSBp ZiAoc3QtPnN0YXRlID09IENTVEFURV9GSU5JU0hFRCB8fApAQCAtNTUzMyw2ICs1NTUwLDggQEAg ZG9uZToKIAkJZmNsb3NlKHRocmVhZC0+bG9nZmlsZSk7CiAJCXRocmVhZC0+bG9nZmlsZSA9IE5V TEw7CiAJfQorCWZyZWVfc29ja2V0X3NldChzb2NrZXRzKTsKKwlzb2NrZXRzID0gTlVMTDsKIAly ZXR1cm4gTlVMTDsKIH0KIApAQCAtNTU0Niw2ICs1NTY1LDEzOCBAQCBmaW5pc2hDb24oQ1N0YXRl ICpzdCkKIAl9CiB9CiAKKyNpZmRlZiBQT0xMX1VTSU5HX1NFTEVDVAkvKiBzZWxlY3QoMikgYmFz ZWQgc29ja2V0IHBvbGxpbmcgKi8KK3N0YXRpYyBzb2NrZXRfc2V0ICoKK2FsbG9jX3NvY2tldF9z ZXQoaW50IGNvdW50KQoreworCXJldHVybiAoc29ja2V0X3NldCAqKSBwZ19tYWxsb2MwKHNpemVv Zihzb2NrZXRfc2V0KSk7Cit9CisKK3N0YXRpYyB2b2lkCitmcmVlX3NvY2tldF9zZXQoc29ja2V0 X3NldCAqc2EpCit7CisJcGdfZnJlZShzYSk7Cit9CisKK3N0YXRpYyBib29sCitlcnJvcl9vbl9z b2NrZXQoc29ja2V0X3NldCAqc2EsIGludCBpZHgsIFBHY29ubiAqY29uKQoreworCWlmIChQUXNv Y2tldChjb24pID49IDApIHJldHVybiBmYWxzZTsKKwlmcHJpbnRmKHN0ZGVyciwgImludmFsaWQg c29ja2V0OiAlcyIsIFBRZXJyb3JNZXNzYWdlKGNvbikpOworCXJldHVybiB0cnVlOworfQorCitz dGF0aWMgYm9vbAoraWdub3JlX3NvY2tldChzb2NrZXRfc2V0ICpzYSwgaW50IGlkeCwgUEdjb25u ICpjb24pCit7CisJaWYgKEZEX0lTU0VUKFBRc29ja2V0KGNvbiksIHNhKSkKKwkJcmV0dXJuIGZh bHNlOworCWVsc2UKKwkJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkCitjbGVhcl9zb2Nr ZXRfc2V0KHNvY2tldF9zZXQgKnNhLCBpbnQgY291bnQpCit7CisJRkRfWkVSTyhzYSk7Cit9CisK K3N0YXRpYyB2b2lkCitzZXRfc29ja2V0KHNvY2tldF9zZXQgKnNhLCBpbnQgZmQsIGludCBpZHgp Cit7CisJRkRfU0VUKGZkLCBzYSk7Cit9CisKK3N0YXRpYyBpbnQKK3dhaXRfb25fc29ja2V0X3Nl dChzb2NrZXRfc2V0ICpzYSwgaW50IG5zdGF0ZSwgaW50IG1heHNvY2ssIGludDY0IHVzZWMpCit7 CisJc3RydWN0IHRpbWV2YWwgdGltZW91dDsKKworCWlmICh1c2VjKQorCXsKKwkJdGltZW91dC50 dl9zZWMgPSB1c2VjIC8gMTAwMDAwMDsKKwkJdGltZW91dC50dl91c2VjID0gdXNlYyAlIDEwMDAw MDA7CisJfSBlbHNlIHsKKwkJdGltZW91dC50dl9zZWMgPSB0aW1lb3V0LnR2X3VzZWMgPSAwOwor CX0KKworCXJldHVybiBzZWxlY3QobWF4c29jayArIDEsIHNhLCBOVUxMLCBOVUxMLCAmdGltZW91 dCk7Cit9CisjZWxzZQkvKiBwcG9sbCgyKSBiYXNlZCBzb2NrZXQgcG9sbGluZyAqLworLyogcHBv bGwoKSB3aWxsIGJsb2NrIHVudGlsIHRpbWVvdXQgb3Igb25lIG9mIFBPTExfRVZFTlRTIG9jY3Vy cy4gKi8KKyNkZWZpbmUgUE9MTF9FVkVOVFMgKFBPTExSREhVUHxQT0xMSU58UE9MTFBSSSkKKy8q IHBwb2xsKCkgZXZlbnRzIHJldHVybmVkIHRoYXQgd2UgZG8gbm90IHdhbnQvZXhwZWN0IHRvIHNl ZS4gKi8KKyNkZWZpbmUgUE9MTF9VTldBTlRFRCAoUE9MTFJESFVQfFBPTExFUlJ8UE9MTEhVUHxQ T0xMTlZBTCkKKworc3RhdGljIHNvY2tldF9zZXQgKgorYWxsb2Nfc29ja2V0X3NldChpbnQgY291 bnQpCit7CisJcmV0dXJuIChzb2NrZXRfc2V0ICopIHBnX21hbGxvYzAoc2l6ZW9mKHNvY2tldF9z ZXQpICogY291bnQpOworfQorCitzdGF0aWMgdm9pZAorZnJlZV9zb2NrZXRfc2V0KHNvY2tldF9z ZXQgKnNhKQoreworCXBnX2ZyZWUoc2EpOworfQorCitzdGF0aWMgYm9vbAorZXJyb3Jfb25fc29j a2V0KHNvY2tldF9zZXQgKnNhLCBpbnQgaWR4LCBQR2Nvbm4gKmNvbikKK3sKKwkvKgorCSAqIE5v IGVycm9yIGlmIHNvY2tldCBub3QgdXNlZCBvciBub24tZXJyb3Igc3RhdHVzIGZyb20gUFFzb2Nr ZXQoKSBhbmQgbm9uZQorCSAqIG9mIHRoZSB1bndhbnRlZCBwcG9sbCgpIHJldHVybiBldmVudHMu CisJICovCisJaWYgKHNhW2lkeF0uZmQgPT0gLTEgfHwgKFBRc29ja2V0KGNvbikgPj0gMCAmJiAh KHNhW2lkeF0ucmV2ZW50cyAmIFBPTExfVU5XQU5URUQpKSkKKwkJcmV0dXJuIGZhbHNlOworCWZw cmludGYoc3RkZXJyLCAiaW52YWxpZCBzb2NrZXQ6ICVzIiwgUFFlcnJvck1lc3NhZ2UoY29uKSk7 CisJaWYgKGRlYnVnKQorCQlmcHJpbnRmKHN0ZGVyciwgInBwb2xsKCkgZmFpbCAtIGVycm5vOiAl ZCwgc29ja2V0OiAlZCwgZXZlbnRzOiAleFxuIiwKKwkJCWVycm5vLCBzYVtpZHhdLmZkLCAoc2Fb aWR4XS5yZXZlbnRzICYgUE9MTF9VTldBTlRFRCkpOworCXJldHVybiB0cnVlOworfQorCitzdGF0 aWMgYm9vbAoraWdub3JlX3NvY2tldChzb2NrZXRfc2V0ICpzYSwgaW50IGlkeCwgUEdjb25uICpj b24pCit7CisJaWYgKHNhW2lkeF0uZmQgIT0gLTEgJiYgIXNhW2lkeF0ucmV2ZW50cykKKwkJcmV0 dXJuIHRydWU7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkCitjbGVh cl9zb2NrZXRfc2V0KHNvY2tldF9zZXQgKnNhLCBpbnQgY291bnQpCit7CisJaW50IGkgPSAwOwor CWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorCQlzZXRfc29ja2V0KHNhLCAtMSwgaSk7Cit9 CisKK3N0YXRpYyB2b2lkCitzZXRfc29ja2V0KHNvY2tldF9zZXQgKnNhLCBpbnQgZmQsIGludCBp ZHgpCit7CisJc2FbaWR4XS5mZCA9IGZkOworCXNhW2lkeF0uZXZlbnRzID0gUE9MTF9FVkVOVFM7 CisJc2FbaWR4XS5yZXZlbnRzID0gMDsKK30KKworc3RhdGljIGludAord2FpdF9vbl9zb2NrZXRf c2V0KHNvY2tldF9zZXQgKnNhLCBpbnQgbnN0YXRlLCBpbnQgbWF4c29jaywgaW50NjQgdXNlYykK K3sKKwlzdHJ1Y3QgdGltZXNwZWMgdGltZW91dDsKKworCWlmICh1c2VjKQorCXsKKwkJdGltZW91 dC50dl9zZWMgPSB1c2VjIC8gMTAwMDAwMDsKKwkJdGltZW91dC50dl9uc2VjID0gdXNlYyAlIDEw MDAwMDAwMDA7CisJfSBlbHNlIHsKKwkJdGltZW91dC50dl9zZWMgPSB0aW1lb3V0LnR2X25zZWMg PSAwOworCX0KKwlyZXR1cm4gcHBvbGwoc2EsIG5zdGF0ZSwgJnRpbWVvdXQsIE5VTEwpOworfQor I2VuZGlmCS8qIFBHQkVOQ0hfVVNFX1NFTEVDVCAqLworCiAvKgogICogU3VwcG9ydCBmb3IgZHVy YXRpb24gb3B0aW9uOiBzZXQgdGltZXJfZXhjZWVkZWQgYWZ0ZXIgc28gbWFueSBzZWNvbmRzLgog ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbiBiL3NyYy9pbmNsdWRl L3BnX2NvbmZpZy5oLmluCmluZGV4IGM1ZGI1NDMwYjkuLmExMmEwODg5MmQgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCisrKyBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5o LmluCkBAIC00MjUsNiArNDI1LDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHRoZSBhc3NlbWJsZXIg c3VwcG9ydHMgUFBDJ3MgTFdBUlggbXV0ZXggaGludCBiaXQuICovCiAjdW5kZWYgSEFWRV9QUENf TFdBUlhfTVVURVhfSElOVAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHBwb2xs JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1BQT0xMCisKIC8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSBgcHN0YXQnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfUFNUQVQKIAo= --_002_2879AF01915B4D079F4204F7CA71908Damazoncom_--