Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v1tIQ-00DoI9-11 for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Sep 2025 21:14:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v1tIO-006BVZ-Ed for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Sep 2025 21:14:32 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v1tIN-006BVR-K9 for pgsql-hackers@lists.postgresql.org; Thu, 25 Sep 2025 21:14:32 +0000 Received: from fout-b6-smtp.messagingengine.com ([202.12.124.149]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1v1tIK-0005nM-0O for pgsql-hackers@postgresql.org; Thu, 25 Sep 2025 21:14:31 +0000 Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfout.stl.internal (Postfix) with ESMTP id DB6781D00036; Thu, 25 Sep 2025 17:14:25 -0400 (EDT) Received: from phl-imap-03 ([10.202.2.93]) by phl-compute-04.internal (MEProxy); Thu, 25 Sep 2025 17:14:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=compiler.org; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1758834865; x=1758921265; bh=rcLVrHL3sB FG/9CWtvibA1FqHTxYE3UcyuvqxE8sFa0=; b=t0/9qlw2nIJLCx0J3NzIvQGwQn 9i/MeBYCP960eYLaiHqmDFxF0SEDNY2JdYKXKHAve/tiwM38AeTHFLuXVoQWLxEM B5hayxPtaIMqQNphFYnqYzw6VKFZAl7U4YUc9atuK5nXK1LJvHDZJ9sqRaS/SqP3 Pwiw/0vpVJBIbJ1j+3MS8y5iTSsdGcCfP1XU7j2hT+EQkka28IwvnADrsYvzZbV/ PTj6pHCBBQSZTjWyx4OAExWJV8BACmKes1fsV5I7Ua9JkuDm9xiAdW12EpdsMJg8 xZJZj8TE+pYl6PbuBIxhKwdTuRNxzS1ACkKJmwwUT+T8lna2Pw8aKR7fgibQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1758834865; x=1758921265; bh=rcLVrHL3sBFG/9CWtvibA1FqHTxYE3Ucyuv qxE8sFa0=; b=RoLHXW0Ld77CNINmMH6FUG9MtNCW5fT6Ee+LUZlwHBR+O5UU3IM xhE7B3JoWMaTD6flgjVk+Pp5sfHi9H6/bC17KXQXOVLHgRsAMdgf7tDbMX5Dz4C0 s9iVCx424DhTGB4h+oTIkY5hZH7N4fC6AmOJ23NNqNRSfszH8AL8mwAuU3UVczab cgz2O5FZi5XS/ngcjVyFHjNt7VnOQJbcXZ+5GD+4VSvTobybqR+QRx5js4LG5uJg kwDE8uCEizotYUnWKb4gy55sVCTKbhVDKFh+9+ZnArVEBNql21d5bodR+siXKKVn p+X0Qt2XbwdQDOVScWiOsZoGX+9/mjTqCEA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggdeijeehgecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefoggffhffvvefkjghfufgtsehmtderreertdejnecuhfhrohhmpedflfhovghlucfl rggtohgsshhonhdfuceojhhovghlsegtohhmphhilhgvrhdrohhrgheqnecuggftrfgrth htvghrnhepleeiueefveeljeelkeeguedvtdfggeeftdeguedtjeejkedvvedtvdeuteek vdelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepjh hovghlsegtohhmphhilhgvrhdrohhrghdpnhgspghrtghpthhtohepiedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtoheplhhirdgvvhgrnhdrtghhrghosehgmhgrihhlrdgtoh hmpdhrtghpthhtoheprhhishhhuhdrphhoshhtghhrvghssehgmhgrihhlrdgtohhmpdhr tghpthhtohepthhhohhmrghsrdhmuhhnrhhosehgmhgrihhlrdgtohhmpdhrtghpthhtoh ephhhlihhnnhgrkhgrsehikhhirdhfihdprhgtphhtthhopehpghhsqhhlqdhhrggtkhgv rhhssehpohhsthhgrhgvshhqlhdrohhrghdprhgtphhtthhopehtghhlsehsshhsrdhpgh hhrdhprgdruhhs X-ME-Proxy: Feedback-ID: ic6394509:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 331B918E0069; Thu, 25 Sep 2025 17:14:25 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 X-ThreadId: AZ7XRsRLdGms Date: Thu, 25 Sep 2025 23:13:31 +0200 From: "Joel Jacobson" To: "Chao Li" Cc: "Tom Lane" , "Thomas Munro" , pgsql-hackers , "Heikki Linnakangas" , "Rishu Bagga" Message-Id: In-Reply-To: References: <6899c044-4a82-49be-8117-e6f669765f7e@app.fastmail.com> <165530.1752362320@sss.pgh.pa.us> <02a7cd37-e2fc-4212-8b19-f8c239c95fb8@app.fastmail.com> <96f00bf1-cc9d-4520-9d02-9e14e7767c88@app.fastmail.com> <30c2aa7d-dd6c-4b68-a2e4-f217a1a34acf@app.fastmail.com> <0b4d402a-9ac2-4aa8-acf8-8231dbe579ea@app.fastmail.com> <3095599.1758644879@sss.pgh.pa.us> <0dc6a2cc-5216-4dc1-9dd2-430cafc6095b@app.fastmail.com> Subject: Re: Optimize LISTEN/NOTIFY Content-Type: multipart/mixed; boundary=5622e9d8191e4fe6bbd79d3fcd3ad78c List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --5622e9d8191e4fe6bbd79d3fcd3ad78c Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Thu, Sep 25, 2025, at 10:25, Chao Li wrote: > Hi Joel, > > Thanks for the patch. After reviewing it, I got a few comments. Thanks for reviewing! >> On Sep 25, 2025, at 04:34, Joel Jacobson wrote: > 1. ... > Can we define the new one after STARTUP_PROGRESS_TIMEOUT to try to=20 > preserve the existing enum value? Fixed. > 2. ... > I think we should add one more table to make the comment to align with=20 > last line=E2=80=99s comment. Fixed. > 3. ... > I know compiler will auto initiate notify_latency_target to 0. But all=20 > other global and static variables around are explicitly initiated, so=20 > it would look better to assign 0 to it, which just keeps coding style=20 > consistent. Fixed. > 4. ... > Should we avid duplicate timeout to be enabled? Now, whenever a=20 > duplicate notification is avoid, a new timeout is enabled. I think we=20 > can add another variable to remember if a timeout has been enabled. Hmm, I don't see how duplicate timeout could happen? Once we decide to defer the wakeup, wakeup_pending_flag remains set, which avoids further signals from notifiers, so I don't see how we could re-enter ProcessIncomingNotify(), since notifyInterruptPending is reset when ProcessIncomingNotify() is called, and notifyInterruptPending is only set when a signal is received (or set directly when in same process). New patch attached with 1-3 fixed. /Joel --5622e9d8191e4fe6bbd79d3fcd3ad78c Content-Disposition: attachment; filename*0="0001-LISTEN-NOTIFY-make-the-latency-throughput-trade-off-v2.p"; filename*1="atch" Content-Type: application/octet-stream; name="=?UTF-8?Q?0001-LISTEN-NOTIFY-make-the-latency-throughput-trade-off-v2.pa?= =?UTF-8?Q?tch?=" Content-Transfer-Encoding: base64 RnJvbSA3MmE2MjUyYTUwNGYwZGM5MGFhMTIzNmEwYmM4ZjU2MGZiNzVhMjI3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIEphY29ic29uIDxqb2VsQGNvbXBpbGVyLm9y Zz4KRGF0ZTogU2F0LCAxNiBBdWcgMjAyNSAxOToyODoxOCArMDIwMApTdWJqZWN0OiBbUEFU Q0hdIExJU1RFTi9OT1RJRlk6IG1ha2UgdGhlIGxhdGVuY3kvdGhyb3VnaHB1dCB0cmFkZS1v ZmYgdHVuYWJsZQoKQmFja2dyb3VuZDogQ3VycmVudGx5LCBsaXN0ZW5lcnMgYXJlIHNpZ25h bGVkIG9uIGV2ZXJ5IE5PVElGWSBhcyBzb29uIGFzCnBvc3NpYmxlLiBUaGF0IG1pbmltaXpl cyBwZXJjZWl2ZWQgbGF0ZW5jeSwgYnV0IHVuZGVyIGJ1cnN0eSB0cmFmZmljIGl0CmxlYWRz IHRvIG1hbnkgcmVkdW5kYW50IHdha2V1cHMsIGhlYXZ5IGNvbnRleHQgc3dpdGNoaW5nLCBh bmQgZGVncmFkZWQKdGhyb3VnaHB1dC4KClRoaXMgcGF0Y2ggYWRkcyBsaXN0ZW5lci1zaWRl IHdha2V1cCBjb2FsZXNjaW5nIGNvbnRyb2xsZWQgYnkgYSBuZXcgR1VDLApub3RpZnlfbGF0 ZW5jeV90YXJnZXQuICBUaGUgc2V0dGluZyBkZWZpbmVzIHRoZSBtYXhpbXVtIGFkZGl0aW9u YWwKbGF0ZW5jeSB0aGF0IGlzIGFjY2VwdGFibGUsIGFsbG93aW5nIHJlZHVuZGFudCB3YWtl dXBzIHRvIGJlIGNvYWxlc2NlZAp3aXRoaW4gdGhlIHNwZWNpZmllZCBpbnRlcnZhbC4KCkVh Y2ggbGlzdGVuZXIgaGFzIGEgc2hhcmVkICJ3YWtldXAgcGVuZGluZyIgZmxhZy4gIFNlbmRl cnMgdGhhdCBvYnNlcnZlCnRoZSBmbGFnIGlzIGFscmVhZHkgc2V0IGRvIG5vdGhpbmcsIGVm ZmVjdGl2ZWx5IGNvYWxlc2NpbmcgdGhlaXIgTk9USUZZCndpdGggdGhlIHBlbmRpbmcgd2Fr ZXVwLiAgVGhlIGxpc3RlbmVyIHJlY29yZHMgdGhlIHN0YXJ0IHRpbWUgb2YgZWFjaApwcm9j ZXNzaW5nIGN5Y2xlOyBpZiBpdCBpcyBhd2FrZW5lZCBhZ2FpbiB0b28gc29vbiwgaXQgZGVm ZXJzIHdvcmsgYW5kCmFybXMgYSB0aW1lb3V0IHRvIHJlLWF3YWtlbiBhZnRlciB0aGUgY29u ZmlndXJlZCBkZWxheS4gIFRoZSBmbGFnIGlzCmNsZWFyZWQgd2hlbiBlbnRlcmluZyBhc3lu Y1F1ZXVlUmVhZEFsbE5vdGlmaWNhdGlvbnMoKS4gIEEgbmV3IHRpbWVvdXQKcmVhc29uLCBO T1RJRllfREVGRVJSRURfV0FLRVVQX1RJTUVPVVQsIGlzIHJlZ2lzdGVyZWQgYXQgYmFja2Vu ZApzdGFydHVwLgoKVGhpcyBtYWtlcyB0aGUgaW5oZXJlbnQgbGF0ZW5jeS90aHJvdWdocHV0 IHRyYWRlLW9mZiBleHBsaWNpdCBhbmQKYWRtaW5pc3RyYXRvci1jb250cm9sbGVkLiAgTGFy Z2VyIGRlbGF5cyBpbmNyZWFzZSBiYXRjaGluZyBhbmQgcmVkdWNlCndha2V1cCBjaHVybiwg aW1wcm92aW5nIHRocm91Z2hwdXQgYXQgdGhlIGNvc3Qgb2YgYWRkaXRpb25hbCBwZXItbm90 aWZ5CmxhdGVuY3k7IGEgZGVsYXkgb2YgMCBwcmVzZXJ2ZXMgdGhlIHByZXZpb3VzIGJlaGF2 aW9yLiAgUXVldWUgb3JkZXJpbmcsCnZpc2liaWxpdHksIGFuZCBjcm9zcy1kYXRhYmFzZSBz ZW1hbnRpY3MgYXJlIHVuY2hhbmdlZC4KClVzZXItdmlzaWJsZSBjaGFuZ2U6IG5ldyBHVUMg bm90aWZ5X2xhdGVuY3lfdGFyZ2V0IChtcywgZGVmYXVsdCAwKS4KLS0tCiBkb2Mvc3JjL3Nn bWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAyOSArKysrKysrKysrKysK IHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMgICAgICAgICAgICAgICAgICB8IDQ3ICsr KysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYyAg ICAgICAgICAgICB8ICAyICsKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRl cnMuZGF0ICAgICB8IDEwICsrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNx bC5jb25mLnNhbXBsZSB8ICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2FzeW5jLmggICAg ICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL3RpbWVvdXQuaCAgICAg ICAgICAgICAgICAgICB8ICAxICsKIDcgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dt bCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCBlOWI0MjBmM2RkYi4uZjAxNTZi NTJhMGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTEwMjY3LDYgKzEwMjY3LDM1IEBAIENPUFkgcG9z dGdyZXNfbG9nIEZST00gJy9mdWxsL3BhdGgvdG8vbG9nZmlsZS5jc3YnIFdJVEggY3N2Owog ICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLW5vdGlmeS1taW4td2FrZXVwLWRlbGF5IiB4cmVmbGFiZWw9Im5v dGlmeV9sYXRlbmN5X3RhcmdldCI+CisgICAgICA8dGVybT48dmFybmFtZT5ub3RpZnlfbGF0 ZW5jeV90YXJnZXQ8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICAgIDxp bmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+bm90aWZ5X2xhdGVuY3lfdGFy Z2V0PC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAg IDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAg IDxwYXJhPgorICAgICAgICBTZXRzIHRoZSBtYXhpbXVtIGFjY2VwdGFibGUgYWRkaXRpb25h bCBsYXRlbmN5IGZvciBkZWxpdmVyaW5nCisgICAgICAgIDxjb21tYW5kPkxJU1RFTjwvY29t bWFuZD4vPGNvbW1hbmQ+Tk9USUZZPC9jb21tYW5kPgorICAgICAgICBub3RpZmljYXRpb25z LiBEdXJpbmcgYnVyc3R5IHBlcmlvZHMsIG5vdGlmaWNhdGlvbnMgdGhhdCBhcnJpdmUKKyAg ICAgICAgd2l0aGluIHRoaXMgaW50ZXJ2YWwgYXJlIGNvYWxlc2NlZCBhbmQgZGVsaXZlcmVk IHRvZ2V0aGVyLAorICAgICAgICB0cmFkaW5nIGJvdW5kZWQgZXh0cmEgbGF0ZW5jeSBmb3Ig ZmV3ZXIgd2FrZXVwcyBhbmQgaGlnaGVyCisgICAgICAgIHRocm91Z2hwdXQuCisgICAgICAg PC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEFmdGVyIGEgbGlzdGVuaW5nIGJh Y2tlbmQgaGFzIGJlZW4gaWRsZSwgdGhlIGZpcnN0CisgICAgICAgIDxjb21tYW5kPk5PVElG WTwvY29tbWFuZD4gY2F1c2VzIGFuIGltbWVkaWF0ZWx5IHdha2V1cC4KKyAgICAgICAgSWYg YWRkaXRpb25hbCBub3RpZmljYXRpb25zIGhhcHBlbiBiZWZvcmUKKyAgICAgICAgPHZhcm5h bWU+bm90aWZ5X2xhdGVuY3lfdGFyZ2V0PC92YXJuYW1lPiBoYXMgZWxhcHNlZCBzaW5jZSB0 aGUKKyAgICAgICAgc3RhcnQgb2YgdGhhdCBwcm9jZXNzaW5nIGN5Y2xlLCB3YWtldXAgaXMg ZGVmZXJyZWQgYnkgb25lIGZ1bGwKKyAgICAgICAgPHZhcm5hbWU+bm90aWZ5X2xhdGVuY3lf dGFyZ2V0PC92YXJuYW1lPiBpbnRlcnZhbCBmcm9tIHRoZSBwb2ludAorICAgICAgICBvZiBk ZWZlcnJhbC4gV2hlbiB0aGF0IGludGVydmFsIGV4cGlyZXMsIHRoZSBsaXN0ZW5pbmcgYmFj a2VuZAorICAgICAgICB3YWtlcyBhbmQgY2F0Y2hlcyB1cCBpbiBhIHNpbmdsZSB3YWtldXAu CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50 cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLWJ5dGVhLW91dHB1dCIgeHJlZmxh YmVsPSJieXRlYV9vdXRwdXQiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+Ynl0ZWFfb3V0cHV0 PC92YXJuYW1lPiAoPHR5cGU+ZW51bTwvdHlwZT4pCiAgICAgICA8aW5kZXh0ZXJtPgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2FzeW5jLmMKaW5kZXggNGJkMzdkNWJlYjUuLmMyZDk3ZjczMWE3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2FzeW5jLmMKQEAgLTE1MCw2ICsxNTAsNyBAQAogI2luY2x1ZGUgInV0aWxzL3Bz X3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGls cy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJ1dGlscy90aW1lb3V0LmgiCiAKIAogLyoKQEAg LTI0Niw2ICsyNDcsNyBAQCB0eXBlZGVmIHN0cnVjdCBRdWV1ZUJhY2tlbmRTdGF0dXMKIAlP aWQJCQlkYm9pZDsJCQkvKiBiYWNrZW5kJ3MgZGF0YWJhc2UgT0lELCBvciBJbnZhbGlkT2lk ICovCiAJUHJvY051bWJlcgluZXh0TGlzdGVuZXI7CS8qIGlkIG9mIG5leHQgbGlzdGVuZXIs IG9yIElOVkFMSURfUFJPQ19OVU1CRVIgKi8KIAlRdWV1ZVBvc2l0aW9uIHBvczsJCQkvKiBi YWNrZW5kIGhhcyByZWFkIHF1ZXVlIHVwIHRvIGhlcmUgKi8KKwlib29sCQl3YWtldXBfcGVu ZGluZ19mbGFnOwkvKiBmb3IgbGlzdGVuZXIgd2FrZXVwIHRocm90dGxpbmcgKi8KIH0gUXVl dWVCYWNrZW5kU3RhdHVzOwogCiAvKgpAQCAtMjkzLDYgKzI5NSw4IEBAIHR5cGVkZWYgc3Ry dWN0IEFzeW5jUXVldWVDb250cm9sCiAKIHN0YXRpYyBBc3luY1F1ZXVlQ29udHJvbCAqYXN5 bmNRdWV1ZUNvbnRyb2w7CiAKK3N0YXRpYyBUaW1lc3RhbXBUeiBsYXN0X3dha2V1cF9zdGFy dF90aW1lID0gMDsKKwogI2RlZmluZSBRVUVVRV9IRUFECQkJCQkoYXN5bmNRdWV1ZUNvbnRy b2wtPmhlYWQpCiAjZGVmaW5lIFFVRVVFX1RBSUwJCQkJCShhc3luY1F1ZXVlQ29udHJvbC0+ dGFpbCkKICNkZWZpbmUgUVVFVUVfU1RPUF9QQUdFCQkJCShhc3luY1F1ZXVlQ29udHJvbC0+ c3RvcFBhZ2UpCkBAIC0zMDEsNiArMzA1LDkgQEAgc3RhdGljIEFzeW5jUXVldWVDb250cm9s ICphc3luY1F1ZXVlQ29udHJvbDsKICNkZWZpbmUgUVVFVUVfQkFDS0VORF9EQk9JRChpKQkJ KGFzeW5jUXVldWVDb250cm9sLT5iYWNrZW5kW2ldLmRib2lkKQogI2RlZmluZSBRVUVVRV9O RVhUX0xJU1RFTkVSKGkpCQkoYXN5bmNRdWV1ZUNvbnRyb2wtPmJhY2tlbmRbaV0ubmV4dExp c3RlbmVyKQogI2RlZmluZSBRVUVVRV9CQUNLRU5EX1BPUyhpKQkJKGFzeW5jUXVldWVDb250 cm9sLT5iYWNrZW5kW2ldLnBvcykKKyNkZWZpbmUgUVVFVUVfQkFDS0VORF9XQUtFVVBfUEVO RElOR19GTEFHKGkpIFwKKwkoYXN5bmNRdWV1ZUNvbnRyb2wtPmJhY2tlbmRbaV0ud2FrZXVw X3BlbmRpbmdfZmxhZykKKwogCiAvKgogICogVGhlIFNMUlUgYnVmZmVyIGFyZWEgdGhyb3Vn aCB3aGljaCB3ZSBhY2Nlc3MgdGhlIG5vdGlmaWNhdGlvbiBxdWV1ZQpAQCAtNDIzLDYgKzQz MCw3IEBAIHN0YXRpYyBib29sIHRyeUFkdmFuY2VUYWlsID0gZmFsc2U7CiAKIC8qIEdVQyBw YXJhbWV0ZXJzICovCiBib29sCQlUcmFjZV9ub3RpZnkgPSBmYWxzZTsKK2ludAkJCW5vdGlm eV9sYXRlbmN5X3RhcmdldCA9IDA7CiAKIC8qIEZvciA4IEtCIHBhZ2VzIHRoaXMgZ2l2ZXMg OCBHQiBvZiBkaXNrIHNwYWNlICovCiBpbnQJCQltYXhfbm90aWZ5X3F1ZXVlX3BhZ2VzID0g MTA0ODU3NjsKQEAgLTUyNyw2ICs1MzUsNyBAQCBBc3luY1NobWVtSW5pdCh2b2lkKQogCQkJ UVVFVUVfQkFDS0VORF9EQk9JRChpKSA9IEludmFsaWRPaWQ7CiAJCQlRVUVVRV9ORVhUX0xJ U1RFTkVSKGkpID0gSU5WQUxJRF9QUk9DX05VTUJFUjsKIAkJCVNFVF9RVUVVRV9QT1MoUVVF VUVfQkFDS0VORF9QT1MoaSksIDAsIDApOworCQkJUVVFVUVfQkFDS0VORF9XQUtFVVBfUEVO RElOR19GTEFHKGkpID0gZmFsc2U7CiAJCX0KIAl9CiAKQEAgLTE2MDMsNyArMTYxMiwxOCBA QCBTaWduYWxCYWNrZW5kcyh2b2lkKQogCQlRdWV1ZVBvc2l0aW9uIHBvczsKIAogCQlBc3Nl cnQocGlkICE9IEludmFsaWRQaWQpOworCisJCS8qCisJCSAqIElmIGEgd2FrZXVwIGlzIGFs cmVhZHkgcGVuZGluZyBmb3IgdGhpcyBsaXN0ZW5lciwgZG8gbm90aGluZy4gVGhlCisJCSAq IHBlbmRpbmcgc2lnbmFsIGd1YXJhbnRlZXMgaXQgd2lsbCB3YWtlIHVwIGFuZCBwcm9jZXNz IGFsbCBtZXNzYWdlcworCQkgKiB1cCB0byB0aGUgY3VycmVudCBxdWV1ZSBoZWFkLCBpbmNs dWRpbmcgdGhlIG9uZSB3ZSBqdXN0IHdyb3RlLiBUaGlzCisJCSAqIGNvYWxlc2NlcyBtdWx0 aXBsZSB3YWtldXBzIGludG8gb25lLgorCQkgKi8KKwkJaWYgKFFVRVVFX0JBQ0tFTkRfV0FL RVVQX1BFTkRJTkdfRkxBRyhpKSkKKwkJCWNvbnRpbnVlOworCiAJCXBvcyA9IFFVRVVFX0JB Q0tFTkRfUE9TKGkpOworCiAJCWlmIChRVUVVRV9CQUNLRU5EX0RCT0lEKGkpID09IE15RGF0 YWJhc2VJZCkKIAkJewogCQkJLyoKQEAgLTE2MjQsNiArMTY0NCw3IEBAIFNpZ25hbEJhY2tl bmRzKHZvaWQpCiAJCQkJY29udGludWU7CiAJCX0KIAkJLyogT0ssIG5lZWQgdG8gc2lnbmFs IHRoaXMgb25lICovCisJCVFVRVVFX0JBQ0tFTkRfV0FLRVVQX1BFTkRJTkdfRkxBRyhpKSA9 IHRydWU7CiAJCXBpZHNbY291bnRdID0gcGlkOwogCQlwcm9jbm9zW2NvdW50XSA9IGk7CiAJ CWNvdW50Kys7CkBAIC0xODYxLDEwICsxODgyLDEzIEBAIGFzeW5jUXVldWVSZWFkQWxsTm90 aWZpY2F0aW9ucyh2b2lkKQogCQlBc3luY1F1ZXVlRW50cnkgYWxpZ247CiAJfQkJCXBhZ2Vf YnVmZmVyOwogCi0JLyogRmV0Y2ggY3VycmVudCBzdGF0ZSAqLworCWxhc3Rfd2FrZXVwX3N0 YXJ0X3RpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CisKKwkvKiBGZXRjaCBjdXJyZW50 IHN0YXRlIGFuZCBjbGVhciB3YWtldXAtcGVuZGluZyBmbGFnICovCiAJTFdMb2NrQWNxdWly ZShOb3RpZnlRdWV1ZUxvY2ssIExXX1NIQVJFRCk7CiAJLyogQXNzZXJ0IGNoZWNrcyB0aGF0 IHdlIGhhdmUgYSB2YWxpZCBzdGF0ZSBlbnRyeSAqLwogCUFzc2VydChNeVByb2NQaWQgPT0g UVVFVUVfQkFDS0VORF9QSUQoTXlQcm9jTnVtYmVyKSk7CisJUVVFVUVfQkFDS0VORF9XQUtF VVBfUEVORElOR19GTEFHKE15UHJvY051bWJlcikgPSBmYWxzZTsKIAlwb3MgPSBRVUVVRV9C QUNLRU5EX1BPUyhNeVByb2NOdW1iZXIpOwogCWhlYWQgPSBRVUVVRV9IRUFEOwogCUxXTG9j a1JlbGVhc2UoTm90aWZ5UXVldWVMb2NrKTsKQEAgLTIxODksNiArMjIxMywyNyBAQCBQcm9j ZXNzSW5jb21pbmdOb3RpZnkoYm9vbCBmbHVzaCkKIAlpZiAobGlzdGVuQ2hhbm5lbHMgPT0g TklMKQogCQlyZXR1cm47CiAKKwkvKgorCSAqIFRocm90dGxpbmcgY2hlY2s6IGlmIHdlIHdl cmUgbGFzdCBhY3RpdmUgdG9vIHJlY2VudGx5LCBkZWZlci4gVGhpcworCSAqIGNoZWNrIGlz IHNhZmUgd2l0aG91dCBhIGxvY2sgYmVjYXVzZSBpdCdzIGJhc2VkIG9uIGEgYmFja2VuZC1s b2NhbAorCSAqIHRpbWVzdGFtcC4KKwkgKi8KKwlpZiAobm90aWZ5X2xhdGVuY3lfdGFyZ2V0 ID4gMCAmJgorCQkhVGltZXN0YW1wRGlmZmVyZW5jZUV4Y2VlZHMobGFzdF93YWtldXBfc3Rh cnRfdGltZSwKKwkJCQkJCQkJCUdldEN1cnJlbnRUaW1lc3RhbXAoKSwKKwkJCQkJCQkJCW5v dGlmeV9sYXRlbmN5X3RhcmdldCkpCisJeworCQkvKgorCQkgKiBUb28gc29vbi4gV2UgbGVh dmUgd2FrZXVwX3BlbmRpbmdfZmxhZyB1bnRvdWNoZWQgKGl0IG11c3QgYmUgdHJ1ZSwKKwkJ ICogb3Igd2Ugd291bGRuJ3QgaGF2ZSBiZWVuIHNpZ25hbGVkKSB0byB0ZWxsIHNlbmRlcnMg d2UgYXJlCisJCSAqIGludGVudGlvbmFsbHkgZGVsYXlpbmcuIEFybSBhIHRpbWVyIHRvIHJl LWF3YWtlbiBhbmQgcHJvY2VzcyB0aGUKKwkJICogYmFja2xvZyBsYXRlci4KKwkJICovCisJ CWVuYWJsZV90aW1lb3V0X2FmdGVyKE5PVElGWV9ERUZFUlJFRF9XQUtFVVBfVElNRU9VVCwK KwkJCQkJCQkgbm90aWZ5X2xhdGVuY3lfdGFyZ2V0KTsKKwkJcmV0dXJuOworCX0KKwogCWlm IChUcmFjZV9ub3RpZnkpCiAJCWVsb2coREVCVUcxLCAiUHJvY2Vzc0luY29taW5nTm90aWZ5 Iik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYwppbmRleCA2NDFlNTM1YTczYy4u NGFmZDZlYjc0NDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGlu aXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMKQEAgLTMzLDYg KzMzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19kYl9yb2xlX3NldHRpbmcuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Rh Ymxlc3BhY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImxp YnBxL2F1dGguaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS1iZS5oIgogI2luY2x1ZGUgIm1i L3BnX3djaGFyLmgiCkBAIC03NjQsNiArNzY1LDcgQEAgSW5pdFBvc3RncmVzKGNvbnN0IGNo YXIgKmluX2RibmFtZSwgT2lkIGRib2lkLAogCQlSZWdpc3RlclRpbWVvdXQoVFJBTlNBQ1RJ T05fVElNRU9VVCwgVHJhbnNhY3Rpb25UaW1lb3V0SGFuZGxlcik7CiAJCVJlZ2lzdGVyVGlt ZW91dChJRExFX1NFU1NJT05fVElNRU9VVCwgSWRsZVNlc3Npb25UaW1lb3V0SGFuZGxlcik7 CiAJCVJlZ2lzdGVyVGltZW91dChDTElFTlRfQ09OTkVDVElPTl9DSEVDS19USU1FT1VULCBD bGllbnRDaGVja1RpbWVvdXRIYW5kbGVyKTsKKwkJUmVnaXN0ZXJUaW1lb3V0KE5PVElGWV9E RUZFUlJFRF9XQUtFVVBfVElNRU9VVCwgSGFuZGxlTm90aWZ5SW50ZXJydXB0KTsKIAkJUmVn aXN0ZXJUaW1lb3V0KElETEVfU1RBVFNfVVBEQVRFX1RJTUVPVVQsCiAJCQkJCQlJZGxlU3Rh dHNVcGRhdGVUaW1lb3V0SGFuZGxlcik7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y19wYXJhbWV0ZXJzLmRhdAppbmRleCA2YmM2YmUxM2QyYS4uMmIyM2E5NTIwYmYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0Cisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CkBAIC0xNTY3 LDYgKzE1NjcsMTYgQEAKICAgbWF4ID0+ICdJTlRfTUFYJywKIH0sCiAKK3sgbmFtZSA9PiAn bm90aWZ5X2xhdGVuY3lfdGFyZ2V0JywgdHlwZSA9PiAnaW50JywgY29udGV4dCA9PiAnUEdD X1NVU0VUJywgZ3JvdXAgPT4gJ0NMSUVOVF9DT05OX09USEVSJywKKyAgc2hvcnRfZGVzYyA9 PiAnTGF0ZW5jeSB0YXJnZXQgZm9yIHdha2luZyBsaXN0ZW5lcnMgdG8gcHJvY2VzcyBOT1RJ RlkuJywKKyAgbG9uZ19kZXNjID0+ICdGaXJzdCBub3RpZnkgYWZ0ZXIgaWRsZSB3YWtlcyBp bW1lZGlhdGVseTsgYXJyaXZhbHMgd2l0aGluIHRoZSBpbnRlcnZhbCBkZWZlciB0aGUgbmV4 dCB3YWtldXAgYnkgb25lIGZ1bGwgaW50ZXJ2YWwgYW5kIGFyZSBjb2FsZXNjZWQuIDAgZGlz YWJsZXMuJywKKyAgZmxhZ3MgPT4gJ0dVQ19VTklUX01TJywKKyAgdmFyaWFibGUgPT4gJ25v dGlmeV9sYXRlbmN5X3RhcmdldCcsCisgIGJvb3RfdmFsID0+ICcwJywKKyAgbWluID0+ICcw JywKKyAgbWF4ID0+ICdJTlRfTUFYJywKK30sCisKIHsgbmFtZSA9PiAnd2FsX2RlY29kZV9i dWZmZXJfc2l6ZScsIHR5cGUgPT4gJ2ludCcsIGNvbnRleHQgPT4gJ1BHQ19QT1NUTUFTVEVS JywgZ3JvdXAgPT4gJ1dBTF9SRUNPVkVSWScsCiAgIHNob3J0X2Rlc2MgPT4gJ0J1ZmZlciBz aXplIGZvciByZWFkaW5nIGFoZWFkIGluIHRoZSBXQUwgZHVyaW5nIHJlY292ZXJ5LicsCiAg IGxvbmdfZGVzYyA9PiAnTWF4aW11bSBkaXN0YW5jZSB0byByZWFkIGFoZWFkIGluIHRoZSBX QUwgdG8gcHJlZmV0Y2ggcmVmZXJlbmNlZCBkYXRhIGJsb2Nrcy4nLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGMzNmZjYjlh YjYxLi5mZDIxNTBiNjZmOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9w b3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtNzY2LDYgKzc2Niw3IEBAIGF1dG92YWN1dW1fd29y a2VyX3Nsb3RzID0gMTYJIyBhdXRvdmFjdXVtIHdvcmtlciBzbG90cyB0byBhbGxvY2F0ZQog I2xvY2tfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQK ICNpZGxlX2luX3RyYW5zYWN0aW9uX3Nlc3Npb25fdGltZW91dCA9IDAJIyBpbiBtaWxsaXNl Y29uZHMsIDAgaXMgZGlzYWJsZWQKICNpZGxlX3Nlc3Npb25fdGltZW91dCA9IDAJCQkjIGlu IG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAorI25vdGlmeV9sYXRlbmN5X3RhcmdldCA9 IDAJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjYnl0ZWFfb3V0cHV0ID0g J2hleCcJCQkjIGhleCwgZXNjYXBlCiAjeG1sYmluYXJ5ID0gJ2Jhc2U2NCcKICN4bWxvcHRp b24gPSAnY29udGVudCcKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2FzeW5j LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9hc3luYy5oCmluZGV4IGY3NWMzZGY5NTU2Li5l ZDI3NDU2ZTQ4NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaAor KysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9hc3luYy5oCkBAIC0xNiw2ICsxNiw3IEBACiAj aW5jbHVkZSA8c2lnbmFsLmg+CiAKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIFRyYWNlX25v dGlmeTsKK2V4dGVybiBQR0RMTElNUE9SVCBpbnQgbm90aWZ5X2xhdGVuY3lfdGFyZ2V0Owog ZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfbm90aWZ5X3F1ZXVlX3BhZ2VzOwogZXh0ZXJu IFBHRExMSU1QT1JUIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBub3RpZnlJbnRlcnJ1cHRQZW5k aW5nOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy90aW1lb3V0LmggYi9zcmMv aW5jbHVkZS91dGlscy90aW1lb3V0LmgKaW5kZXggN2IxOWJlYWZkYzkuLmVhNzIwYjA1MDQz IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy90aW1lb3V0LmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvdGltZW91dC5oCkBAIC0zNiw2ICszNiw3IEBAIHR5cGVkZWYgZW51bSBU aW1lb3V0SWQKIAlJRExFX1NUQVRTX1VQREFURV9USU1FT1VULAogCUNMSUVOVF9DT05ORUNU SU9OX0NIRUNLX1RJTUVPVVQsCiAJU1RBUlRVUF9QUk9HUkVTU19USU1FT1VULAorCU5PVElG WV9ERUZFUlJFRF9XQUtFVVBfVElNRU9VVCwKIAkvKiBGaXJzdCB1c2VyLWRlZmluYWJsZSB0 aW1lb3V0IHJlYXNvbiAqLwogCVVTRVJfVElNRU9VVCwKIAkvKiBNYXhpbXVtIG51bWJlciBv ZiB0aW1lb3V0IHJlYXNvbnMgKi8KLS0gCjIuNTAuMQoK --5622e9d8191e4fe6bbd79d3fcd3ad78c--