Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1owU6f-0005Ag-PK for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Nov 2022 20:06:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1owU6e-0007Ii-Lu for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Nov 2022 20:06:28 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1owU6e-0007IZ-9Q for pgsql-hackers@lists.postgresql.org; Sat, 19 Nov 2022 20:06:28 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1owU6c-0006se-6l for pgsql-hackers@postgresql.org; Sat, 19 Nov 2022 20:06:27 +0000 Received: by mail-ed1-x52e.google.com with SMTP id z20so9938693edc.13 for ; Sat, 19 Nov 2022 12:06:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=BlVcHCKQ0wCc0UHrvY+qgqI5+99EbNWxiQHyojUHyAU=; b=R5ZPAMS6HjNre3va3I96TxxiZROOWP4dPlWbYX94QnMMU63tV4WbGEmeiInilOJNjz nAx7W6WUVo8ywcJ/JMvrwnmR9H+yDmLgP8BWl0upKSz4SfYQ6nd1IH5VNlVQ8q4iGqu5 YUOqR+7pci+Lt86tA9RbBFs7xzA68t9x09CSyyOTv5jRT9sc0yJISPLho7aHjbLW19DE 8A5bkRAoItLOfhHQPC1VD2q32CHNFCNQXweUmuNu6IdUO3UQTO3UTQShZEvL6n3eiWB+ oBPWE3QSVHVNYq46CAhyKVS03r/lGWZxeb70Ll81Bm1IZahQswJijJl6WZl9A205iPf7 fKQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=BlVcHCKQ0wCc0UHrvY+qgqI5+99EbNWxiQHyojUHyAU=; b=wmWLCa8cP1qqvzjV9UTnsbSBslJi+6knUGIV3yEGNgWgRacJXPc2B8d6onQgOqfKLh wfA3tIISkzjBbSMCiuuHVgvs0VlnPZLD8D2Keht2zP8CKxJyKnLIxtTdx5vXi4iTwS/R ooJk2WR6nV+wvYVxstFzBdognxM8jVIiKQFVc0C5OuNSyG6ZhTsDKWMqZxzBvk8//LT7 lPuKjsujPDleHTLw+oVzpdT6I7M15NmjGq0bP0L1DUR+pOj+V9PhceE+dYKm9ErGtdH8 Vgss03aGM9G9nau1LZ2nz+NUi2uOZLhv9U98OzKgtUluETIS4cLTWPF/xcq7qSj3a+4j y3NQ== X-Gm-Message-State: ANoB5pkK8EYavyw23xmpIsRi9TtR+9cVAGB/MbEmXUZF6eDhp6R1aO9i QI6LuSPR8ucFhAFrZ8mOQCDzQdGDycQ= X-Google-Smtp-Source: AA0mqf6VkwVk6sSeezCk9beoutxIdUoVdDyVdJRD3fL5O382PVyu98O/g2gG9HiZjeZ7ht3q1X1UUg== X-Received: by 2002:a05:6402:e9c:b0:458:d064:a8c2 with SMTP id h28-20020a0564020e9c00b00458d064a8c2mr10571104eda.346.1668888385453; Sat, 19 Nov 2022 12:06:25 -0800 (PST) Received: from [172.16.209.129] ([147.161.235.14]) by smtp.gmail.com with ESMTPSA id v24-20020a170906859800b00781e7d364ebsm3232847ejx.144.2022.11.19.12.06.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 19 Nov 2022 12:06:25 -0800 (PST) Content-Type: multipart/mixed; boundary="------------TJ8Rdp5msvdGQjHtCUzOdU1b" Message-ID: Date: Sat, 19 Nov 2022 21:06:23 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc? Content-Language: en-US From: David Geier To: Michael Paquier , Ibrar Ahmed Cc: Maciek Sakrejda , Andres Freund , Lukas Fittl , pgsql-hackers References: <20200612232810.f46nbqkdhbutzqdg@alap3.anarazel.de> <20220701172639.ty4iu5almspueriu@alap3.anarazel.de> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------TJ8Rdp5msvdGQjHtCUzOdU1b Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I missed attaching the patches. -- David Geier (ServiceNow) --------------TJ8Rdp5msvdGQjHtCUzOdU1b Content-Type: text/x-patch; charset=UTF-8; name="0001-WIP-Change-instr_time-to-just-store-nanoseconds-v3.patch" Content-Disposition: attachment; filename*0="0001-WIP-Change-instr_time-to-just-store-nanoseconds-v3.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSBmNGU5NjI3MjljYTYwNTQ5OGQwYzhiZmM5N2QwZjQyZDY4YTBkZjA2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCAxNyBOb3YgMjAyMiAxMDoyMjowMSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMS8yXSBXSVA6IENoYW5nZSBpbnN0cl90aW1lIHRvIGp1c3Qgc3RvcmUgbmFub3NlY29u ZHMsIHRoYXQncwogY2hlYXBlci4KCi0tLQogc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5z dHJfdGltZS5oIHwgNjIgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BvcnRhYmlsaXR5L2luc3RyX3RpbWUuaCBiL3NyYy9pbmNsdWRlL3Bv cnRhYmlsaXR5L2luc3RyX3RpbWUuaAppbmRleCAyMmJjZjNkMjg4Li40YmQ1NTUxMTNiIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKKysrIGIv c3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oCkBAIC04MCw2MyArODAsNTMg QEAKICNkZWZpbmUgUEdfSU5TVFJfQ0xPQ0sJQ0xPQ0tfUkVBTFRJTUUKICNlbmRpZgogCi10 eXBlZGVmIHN0cnVjdCB0aW1lc3BlYyBpbnN0cl90aW1lOwordHlwZWRlZiBpbnQ2NCBpbnN0 cl90aW1lOworI2RlZmluZSBOU19QRVJfUyBJTlQ2NENPTlNUKDEwMDAwMDAwMDApCisjZGVm aW5lIFVTX1BFUl9TIElOVDY0Q09OU1QoMTAwMDAwMCkKKyNkZWZpbmUgTVNfUEVSX1MgSU5U NjRDT05TVCgxMDAwKQogCi0jZGVmaW5lIElOU1RSX1RJTUVfSVNfWkVSTyh0KQkoKHQpLnR2 X25zZWMgPT0gMCAmJiAodCkudHZfc2VjID09IDApCisjZGVmaW5lIE5TX1BFUl9NUyBJTlQ2 NENPTlNUKDEwMDAwMDApCisjZGVmaW5lIE5TX1BFUl9VUyBJTlQ2NENPTlNUKDEwMDApCiAK LSNkZWZpbmUgSU5TVFJfVElNRV9TRVRfWkVSTyh0KQkoKHQpLnR2X3NlYyA9IDAsICh0KS50 dl9uc2VjID0gMCkKKyNkZWZpbmUgSU5TVFJfVElNRV9JU19aRVJPKHQpCSgodCkgPT0gMCkK IAotI2RlZmluZSBJTlNUUl9USU1FX1NFVF9DVVJSRU5UKHQpCSgodm9pZCkgY2xvY2tfZ2V0 dGltZShQR19JTlNUUl9DTE9DSywgJih0KSkpCisjZGVmaW5lIElOU1RSX1RJTUVfU0VUX1pF Uk8odCkJKCh0KSA9IDApCisKK3N0YXRpYyBpbmxpbmUgaW5zdHJfdGltZSBwZ19jbG9ja19n ZXR0aW1lX25zKHZvaWQpCit7CisJc3RydWN0IHRpbWVzcGVjIHRtcDsKKworCWNsb2NrX2dl dHRpbWUoUEdfSU5TVFJfQ0xPQ0ssICZ0bXApOworCisJcmV0dXJuIHRtcC50dl9zZWMgKiBO U19QRVJfUyArIHRtcC50dl9uc2VjOworfQorCisjZGVmaW5lIElOU1RSX1RJTUVfU0VUX0NV UlJFTlQodCkgXAorCSh0KSA9IHBnX2Nsb2NrX2dldHRpbWVfbnMoKQogCiAjZGVmaW5lIElO U1RSX1RJTUVfQUREKHgseSkgXAogCWRvIHsgXAotCQkoeCkudHZfc2VjICs9ICh5KS50dl9z ZWM7IFwKLQkJKHgpLnR2X25zZWMgKz0gKHkpLnR2X25zZWM7IFwKLQkJLyogTm9ybWFsaXpl ICovIFwKLQkJd2hpbGUgKCh4KS50dl9uc2VjID49IDEwMDAwMDAwMDApIFwKLQkJeyBcCi0J CQkoeCkudHZfbnNlYyAtPSAxMDAwMDAwMDAwOyBcCi0JCQkoeCkudHZfc2VjKys7IFwKLQkJ fSBcCisJCSh4KSArPSAoeSk7IFwKIAl9IHdoaWxlICgwKQogCiAjZGVmaW5lIElOU1RSX1RJ TUVfU1VCVFJBQ1QoeCx5KSBcCiAJZG8geyBcCi0JCSh4KS50dl9zZWMgLT0gKHkpLnR2X3Nl YzsgXAotCQkoeCkudHZfbnNlYyAtPSAoeSkudHZfbnNlYzsgXAotCQkvKiBOb3JtYWxpemUg Ki8gXAotCQl3aGlsZSAoKHgpLnR2X25zZWMgPCAwKSBcCi0JCXsgXAotCQkJKHgpLnR2X25z ZWMgKz0gMTAwMDAwMDAwMDsgXAotCQkJKHgpLnR2X3NlYy0tOyBcCi0JCX0gXAorCQkoeCkg LT0gKHkpOyBcCiAJfSB3aGlsZSAoMCkKIAogI2RlZmluZSBJTlNUUl9USU1FX0FDQ1VNX0RJ RkYoeCx5LHopIFwKIAlkbyB7IFwKLQkJKHgpLnR2X3NlYyArPSAoeSkudHZfc2VjIC0gKHop LnR2X3NlYzsgXAotCQkoeCkudHZfbnNlYyArPSAoeSkudHZfbnNlYyAtICh6KS50dl9uc2Vj OyBcCi0JCS8qIE5vcm1hbGl6ZSBhZnRlciBlYWNoIGFkZCB0byBhdm9pZCBvdmVyZmxvdy91 bmRlcmZsb3cgb2YgdHZfbnNlYyAqLyBcCi0JCXdoaWxlICgoeCkudHZfbnNlYyA8IDApIFwK LQkJeyBcCi0JCQkoeCkudHZfbnNlYyArPSAxMDAwMDAwMDAwOyBcCi0JCQkoeCkudHZfc2Vj LS07IFwKLQkJfSBcCi0JCXdoaWxlICgoeCkudHZfbnNlYyA+PSAxMDAwMDAwMDAwKSBcCi0J CXsgXAotCQkJKHgpLnR2X25zZWMgLT0gMTAwMDAwMDAwMDsgXAotCQkJKHgpLnR2X3NlYysr OyBcCi0JCX0gXAorCQkoeCkgKz0gKHkpIC0gKHopOyBcCiAJfSB3aGlsZSAoMCkKIAogI2Rl ZmluZSBJTlNUUl9USU1FX0dFVF9ET1VCTEUodCkgXAotCSgoKGRvdWJsZSkgKHQpLnR2X3Nl YykgKyAoKGRvdWJsZSkgKHQpLnR2X25zZWMpIC8gMTAwMDAwMDAwMC4wKQorCSgoZG91Ymxl KSAodCkgLyBOU19QRVJfUykKIAogI2RlZmluZSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyh0 KSBcCi0JKCgoZG91YmxlKSAodCkudHZfc2VjICogMTAwMC4wKSArICgoZG91YmxlKSAodCku dHZfbnNlYykgLyAxMDAwMDAwLjApCisJKChkb3VibGUpICh0KSAvIE5TX1BFUl9NUykKIAog I2RlZmluZSBJTlNUUl9USU1FX0dFVF9NSUNST1NFQyh0KSBcCi0JKCgodWludDY0KSAodCku dHZfc2VjICogKHVpbnQ2NCkgMTAwMDAwMCkgKyAodWludDY0KSAoKHQpLnR2X25zZWMgLyAx MDAwKSkKKwkoKGRvdWJsZSkgKHQpIC8gTlNfUEVSX1VTKQogCiAjZWxzZQkJCQkJCQkvKiBX SU4zMiAqLwogCi0tIAoyLjM0LjEKCg== --------------TJ8Rdp5msvdGQjHtCUzOdU1b Content-Type: text/x-patch; charset=UTF-8; name="0002-WIP-Use-cpu-reference-cycles-via-rdtsc-to-measure-v3.patch" Content-Disposition: attachment; filename*0="0002-WIP-Use-cpu-reference-cycles-via-rdtsc-to-measure-v3.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3YTYzMTdmZGY1YjFkODJmMTIwYTRmZDU1MzVjZmU0MGM4MTY1MTUzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCAxNyBOb3YgMjAyMiAxMzowMzo1OSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMi8yXSBXSVA6IFVzZSBjcHUgcmVmZXJlbmNlIGN5Y2xlcywgdmlhIHJkdHNjLCB0byBt ZWFzdXJlIHRpbWUKIGZvciBpbnN0cnVtZW50YXRpb24uCgpGb3Igbm93IHRoaXMgaXMgb25s eSBlbmFibGVkIG9uIExpbnV4L3g4NiB3aGVuIHRoZSBzeXN0ZW0gY2xvY2tzb3VyY2UgaXMK bWFya2VkIHRzYyBhcyB3ZWxsLCBhcyBkZXRlcm1pbmVkIGF0IHJ1bnRpbWUuIFRoaXMgd2F5 IHdlIGNhbiByZWx5IG9uIHRoZQpMaW51eCBrZXJuZWwgdG8gbWFrZSBhIGRlY2lzaW9uIHdo ZXRoZXIgdHNjIGlzIGludmFyaWFudCBhbmQgdXNhYmxlIG9uIHRoZQpjdXJyZW50IENQVSBh cmNoaXRlY3R1cmUuIEluIGFsbCBvdGhlciBjYXNlcyB3ZSBjb250aW51ZSB0byB1c2UgdGhl CmNsb2NrX2dldHRpbWUoKSBpbXBsZW1lbnRhdGlvbiBsaWtlIGJlZm9yZS4KCk5vdGUgdGhh dCB0aGlzIGludGVudGlvbmFsbHkgdXNlcyByZHRzYywgbm90IHJkdHNjcCwgYXMgcmR0c2Nw IHdhaXRzIGZvcgpjdXJyZW50bHkgcnVubmluZyBDUFUgaW5zdHJ1Y3Rpb25zIHRvIGhhdmUg ZmluaXNoZWQsIGFuZCB0aGF0IGFkZHMgdXAgdG8Kbm90aWNhYmxlIGxhdGVuY3kgZm9yIGxp dHRsZSBiZW5lZml0IGluIHRoZSB0eXBpY2FsIEluc3RyU3RhcnROb2RlKCkgLwpJbnN0clN0 b3BOb2RlKCkgdXNlIGNhc2UuCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5p dC5jICAgICAgIHwgICAzICsKIHNyYy9iaW4vcGdfdGVzdF90aW1pbmcvcGdfdGVzdF90aW1p bmcuYyB8ICAgMSArCiBzcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jICAgICAgICAgICAgICAg fCAgIDMgKwogc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyAgICAgICAgICAgICAgICAgIHwgICA0 ICsKIHNyYy9jb21tb24vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvY29tbW9uL2luc3RyX3RpbWUuYyAgICAgICAgICAgICAgICAgfCAxMDMgKysrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgg ICAgfCAgNTAgKysrKysrKysrLS0tCiBzcmMvdG9vbHMvbXN2Yy9Na3ZjYnVpbGQucG0gICAg ICAgICAgICAgfCAgIDIgKy0KIDggZmlsZXMgY2hhbmdlZCwgMTU3IGluc2VydGlvbnMoKyks IDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9jb21tb24vaW5zdHJf dGltZS5jCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCmluZGV4IGE5OTBjODMzYzUu LmM2ODQ3MjVhZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGlu aXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMKQEAgLTgwNCw2 ICs4MDQsOSBAQCBJbml0UG9zdGdyZXMoY29uc3QgY2hhciAqaW5fZGJuYW1lLCBPaWQgZGJv aWQsCiAJLyogSW5pdGlhbGl6ZSBwb3J0YWwgbWFuYWdlciAqLwogCUVuYWJsZVBvcnRhbE1h bmFnZXIoKTsKIAorCS8qIGluaXRpYWxpemUgaGlnaC1wcmVjaXNpb24gaW50ZXJ2YWwgdGlt aW5nICovCisJSU5TVFJfVElNRV9JTklUSUFMSVpFKCk7CisKIAkvKiBJbml0aWFsaXplIHN0 YXR1cyByZXBvcnRpbmcgKi8KIAlwZ3N0YXRfYmVpbml0KCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfdGVzdF90aW1pbmcvcGdfdGVzdF90aW1pbmcuYyBiL3NyYy9iaW4vcGdfdGVz dF90aW1pbmcvcGdfdGVzdF90aW1pbmcuYwppbmRleCBjMjlkNmY4NzYyLi4wZDY2N2ZmNWE3 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Rlc3RfdGltaW5nL3BnX3Rlc3RfdGltaW5nLmMK KysrIGIvc3JjL2Jpbi9wZ190ZXN0X3RpbWluZy9wZ190ZXN0X3RpbWluZy5jCkBAIC0xMzIs NiArMTMyLDcgQEAgdGVzdF90aW1pbmcodW5zaWduZWQgaW50IGR1cmF0aW9uKQogCiAJdG90 YWxfdGltZSA9IGR1cmF0aW9uID4gMCA/IGR1cmF0aW9uICogSU5UNjRDT05TVCgxMDAwMDAw KSA6IDA7CiAKKwlJTlNUUl9USU1FX0lOSVRJQUxJWkUoKTsKIAlJTlNUUl9USU1FX1NFVF9D VVJSRU5UKHN0YXJ0X3RpbWUpOwogCWN1ciA9IElOU1RSX1RJTUVfR0VUX01JQ1JPU0VDKHN0 YXJ0X3RpbWUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jIGIv c3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYwppbmRleCAzNjkwNWE4OTY4Li4xYzVhMjY1ODYz IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jCisrKyBiL3NyYy9iaW4v cGdiZW5jaC9wZ2JlbmNoLmMKQEAgLTcwNzYsNiArNzA3Niw5IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogCQlpbml0UmFuZG9tU3RhdGUoJnN0YXRlW2ldLmNzX2Z1bmNfcnMp OwogCX0KIAorCS8qIGluaXRpYWxpemUgaGlnaC1wcmVjaXNpb24gaW50ZXJ2YWwgdGltaW5n ICovCisJSU5TVFJfVElNRV9JTklUSUFMSVpFKCk7CisKIAkvKiBvcGVuaW5nIGNvbm5lY3Rp b24uLi4gKi8KIAljb24gPSBkb0Nvbm5lY3QoKTsKIAlpZiAoY29uID09IE5VTEwpCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jIGIvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAu YwppbmRleCBmNWI5ZTI2OGYyLi4xNGYzNjhiNjU4IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvc3RhcnR1cC5jCisrKyBiL3NyYy9iaW4vcHNxbC9zdGFydHVwLmMKQEAgLTI0LDYgKzI0 LDcgQEAKICNpbmNsdWRlICJoZWxwLmgiCiAjaW5jbHVkZSAiaW5wdXQuaCIKICNpbmNsdWRl ICJtYWlubG9vcC5oIgorI2luY2x1ZGUgInBvcnRhYmlsaXR5L2luc3RyX3RpbWUuaCIKICNp bmNsdWRlICJzZXR0aW5ncy5oIgogCiAvKgpAQCAtMzIyLDYgKzMyMyw5IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogCVBRc2V0Tm90aWNlUHJvY2Vzc29yKHBzZXQuZGIs IE5vdGljZVByb2Nlc3NvciwgTlVMTCk7CiAKKwkvKiBpbml0aWFsaXplIGhpZ2gtcHJlY2lz aW9uIGludGVydmFsIHRpbWluZyAqLworCUlOU1RSX1RJTUVfSU5JVElBTElaRSgpOworCiAJ U3luY1ZhcmlhYmxlcygpOwogCiAJaWYgKG9wdGlvbnMubGlzdF9kYnMpCmRpZmYgLS1naXQg YS9zcmMvY29tbW9uL01ha2VmaWxlIGIvc3JjL2NvbW1vbi9NYWtlZmlsZQppbmRleCBlOWFm NzM0NmM5Li40MzdhMDE4NTkwIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL01ha2VmaWxlCisr KyBiL3NyYy9jb21tb24vTWFrZWZpbGUKQEAgLTU5LDYgKzU5LDcgQEAgT0JKU19DT01NT04g PSBcCiAJZmlsZV9wZXJtLm8gXAogCWZpbGVfdXRpbHMubyBcCiAJaGFzaGZuLm8gXAorCWlu c3RyX3RpbWUubyBcCiAJaXAubyBcCiAJanNvbmFwaS5vIFwKIAlrZXl3b3Jkcy5vIFwKZGlm ZiAtLWdpdCBhL3NyYy9jb21tb24vaW5zdHJfdGltZS5jIGIvc3JjL2NvbW1vbi9pbnN0cl90 aW1lLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjc2NTNhOGJj MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb21tb24vaW5zdHJfdGltZS5jCkBAIC0wLDAg KzEsMTAzIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBpbnN0cl90aW1lLmMK KyAqCSAgIE5vbi1pbmxpbmUgcGFydHMgb2YgdGhlIHBvcnRhYmxlIGhpZ2gtcHJlY2lzaW9u IGludGVydmFsIHRpbWluZworICoJIGltcGxlbWVudGF0aW9uCisgKgorICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAyMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9wb3J0L2lu c3RyX3RpbWUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAi cG9zdGdyZXMuaCIKKworI2luY2x1ZGUgInBvcnRhYmlsaXR5L2luc3RyX3RpbWUuaCIKKwor LyoKKyAqIFN0b3JlcyB3aGF0IHRoZSBudW1iZXIgb2YgY3ljbGVzIG5lZWRzIHRvIGJlIG11 bHRpcGxpZWQgd2l0aCB0byBlbmQgdXAgd2l0aAorICogc2Vjb25kcy4gVGhpcyBpbmRpcmVj dGlvbiBleGlzdHMgdG8gc3VwcG9ydCB0aGUgcnRkc2MgaW5zdHJ1Y3Rpb24uCisgKgorICog QXMgYSBkZWZhdWx0LCBhc3N1bWUgd2UgYXJlIHVzaW5nIGNsb2NrX2dldHRpbWUoKSBhcyBh IGZhbGxiYWNrIGFuZCB0cmVhdCBpdAorICogYXMgMSAiY3ljbGUiIHBlciBuYW5vc2Vjb25k IChha2EgMSBHSHopLgorICoKKyAqIFdoZW4gdXNpbmcgdGhlIHJ0ZHNjIGluc3RydWN0aW9u IGRpcmVjdGx5IHRoaXMgaXMgZmlsbGVkIGluIGR1cmluZworICogaW5pdGlhbGl6YXRpb24g YmFzZWQgb24gdGhlIHJlbGV2YW50IGNwdWlkIGZpZWxkcy4KKyAqLworZG91YmxlIGN5Y2xl c190b19zZWMgPSAxLjAgLyBOU19QRVJfUzsKKworLyoKKyAqIERldGVybWluZXMgd2hldGhl ciByZHRzYyBpcyB1c2VkIChMaW51eC94ODYgb25seSwgd2hlbiBPUyB1c2VzIHRzYyBjbG9j a3NvdXJjZSkKKyAqLworYm9vbCB1c2VfcmR0c2MgPSBmYWxzZTsKKworI2lmIGRlZmluZWQo X194ODZfNjRfXykgJiYgZGVmaW5lZChfX2xpbnV4X18pCisvKgorICogRGVjaWRlIHdoZXRo ZXIgd2UgdXNlIHRoZSByZHRzYyBpbnN0cnVjdGlvbiBhdCBydW50aW1lLCBmb3IgTGludXgv eDg2LAorICogaW5zdGVhZCBvZiBpbmN1cnJpbmcgdGhlIG92ZXJoZWFkIG9mIGEgZnVsbCBj bG9ja19nZXR0aW1lKCkgY2FsbC4KKyAqCisgKiBUaGlzIGNhbid0IGJlIHJlbGlhYmx5IGRl dGVybWluZWQgYXQgY29tcGlsZSB0aW1lLCBzaW5jZSB0aGUKKyAqIGF2YWlsYWJpbGl0eSBv ZiBhbiAiaW52YXJpYW50IiBUU0MgKHRoYXQgaXMgbm90IGFmZmVjdGVkIGJ5IENQVQorICog ZnJlcXVlbmN5IGNoYW5nZXMpIGlzIGRlcGVuZGVudCBvbiB0aGUgQ1BVIGFyY2hpdGVjdHVy ZS4gQWRkaXRpb25hbGx5LAorICogdGhlcmUgYXJlIGNhc2VzIHdoZXJlIFRTQyBhdmFpbGFi aWxpdHkgaXMgaW1wYWN0ZWQgYnkgdmlydHVhbGl6YXRpb24sCisgKiB3aGVyZSBhIHNpbXBs ZSBjcHVpZCBmZWF0dXJlIGNoZWNrIHdvdWxkIG5vdCBiZSBlbm91Z2guCisgKgorICogU2lu Y2UgTGludXggYWxyZWFkeSBkb2VzIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIHdvcmsgdG8g ZGV0ZXJtaW5lCisgKiB3aGV0aGVyIFRTQyBpcyBhIHZpYWJsZSBjbG9jayBzb3VyY2UsIGRl Y2lkZSBiYXNlZCBvbiB0aGF0LgorICovCit2b2lkIHBnX2Nsb2NrX2dldHRpbWVfaW5pdGlh bGl6ZV9yZHRzYyh2b2lkKQoreworCUZJTEUgKmZwID0gZm9wZW4oIi9zeXMvZGV2aWNlcy9z eXN0ZW0vY2xvY2tzb3VyY2UvY2xvY2tzb3VyY2UwL2N1cnJlbnRfY2xvY2tzb3VyY2UiLCAi ciIpOworCWNoYXIgYnVmWzEyOF07CisKKwlpZiAoZnApCisJeworCQlpZiAoZmdldHMoYnVm LCBzaXplb2YoYnVmKSwgZnApICE9IE5VTEwgJiYgc3RyY21wKGJ1ZiwgInRzY1xuIikgPT0g MCkKKwkJCXVzZV9yZHRzYyA9IHRydWU7CisKKwkJZmNsb3NlKGZwKTsKKwl9CisKKwkvKgor CSAqIENvbXB1dGUgYmFzZWxpbmUgY3B1IHBlZm9ybWFuY2UsIGRldGVybWluZXMgc3BlZWQg YXQgd2hpY2ggcmR0c2MgYWR2YW5jZXMKKwkgKi8KKwlpZiAodXNlX3JkdHNjKQorCXsKKwkJ dWludDMyIGNwdWluZm9bNF0gPSB7MH07CisKKwkJLyoKKwkJICogRklYTUU6IFdlIHNob3Vs ZCBwcm9iYWJseSBub3QgdW5uZWNlc3NhcmlseSB1c2UgZmxvYXRpbmcgcG9pbnQgbWF0aAor CQkgKiBoZXJlLiBBbmQgaXQncyBsaWtlbHkgdGhhdCB0aGUgbnVtYmVycyBhcmUgc21hbGwg ZW5vdWdoIHRoYXQgd2UgYXJlIHJ1bm5pbmcKKwkJICogaW50byBmbG9hdGluZyBwb2ludCBp bmFjY3VyYWNpZXMgYWxyZWFkeS4gUHJvYmFibHkgd29ydGh3aGlsZSB0byBiZSBhIGdvb2QK KwkJICogYml0IHNtYXJ0ZXIuCisJCSAqLworCisJCV9fZ2V0X2NwdWlkKDB4MTYsIGNwdWlu Zm8sIGNwdWluZm8gKyAxLCBjcHVpbmZvICsgMiwgY3B1aW5mbyArIDMpOworCisJCWlmIChj cHVpbmZvWzBdICE9IDApCisJCQljeWNsZXNfdG9fc2VjID0gMSAvICgoZG91YmxlKSBjcHVp bmZvWzBdICogMTAwMCAqIDEwMDApOworCQllbHNlCisJCXsKKwkJCWZsb2F0IGNwdV9taHo7 CisKKwkJCWZwID0gZm9wZW4oIi9wcm9jL2NwdWluZm8iLCAiciIpOworCisJCQlpZiAoZnAp CisJCQl7CisJCQkJd2hpbGUgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZwKSkKKwkJCQl7 CisJCQkJCWlmIChzc2NhbmYoYnVmLCAiY3B1IE1IeiAgICAgICAgICAgICAgICA6ICVmIiwg JmNwdV9taHopID09IDEpCisJCQkJCXsKKwkJCQkJCWN5Y2xlc190b19zZWMgPSAxIC8gKChk b3VibGUpIGNwdV9taHogKiAxMDAwICogMTAwMCk7CisJCQkJCQlicmVhazsKKwkJCQkJfQor CQkJCX0KKwkJCX0KKworCQkJZmNsb3NlKGZwKTsKKwkJfQorCX0KK30KKyNlbmRpZgkJCQkJ CQkvKiBkZWZpbmVkKF9feDg2XzY0X18pICYmIGRlZmluZWQoX19saW51eF9fKSAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oIGIvc3JjL2lu Y2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oCmluZGV4IDRiZDU1NTExM2IuLjMzMGMy MDU5MjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BvcnRhYmlsaXR5L2luc3RyX3RpbWUu aAorKysgYi9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKQEAgLTQsOSAr NCwxMSBAQAogICoJICBwb3J0YWJsZSBoaWdoLXByZWNpc2lvbiBpbnRlcnZhbCB0aW1pbmcK ICAqCiAgKiBUaGlzIGZpbGUgcHJvdmlkZXMgYW4gYWJzdHJhY3Rpb24gbGF5ZXIgdG8gaGlk ZSBwb3J0YWJpbGl0eSBpc3N1ZXMgaW4KLSAqIGludGVydmFsIHRpbWluZy4gIE9uIFVuaXgg d2UgdXNlIGNsb2NrX2dldHRpbWUoKSwgYW5kIG9uIFdpbmRvd3Mgd2UgdXNlCi0gKiBRdWVy eVBlcmZvcm1hbmNlQ291bnRlcigpLiAgVGhlc2UgbWFjcm9zIGFsc28gZ2l2ZSBzb21lIGJy ZWF0aGluZyByb29tIHRvCi0gKiB1c2Ugb3RoZXIgaGlnaC1wcmVjaXNpb24tdGltaW5nIEFQ SXMuCisgKiBpbnRlcnZhbCB0aW1pbmcuIE9uIExpbnV4L3g4NiB3ZSB1c2UgdGhlIHJkdHNj IGluc3RydWN0aW9uIHdoZW4gYSBUU0MKKyAqIGNsb2Nrc291cmNlIGlzIGFsc28gdXNlZCBv biB0aGUgaG9zdCBPUy4gIE90aGVyd2lzZSwgYW5kIG9uIG90aGVyCisgKiBVbml4LWxpa2Ug c3lzdGVtcyB3ZSB1c2UgY2xvY2tfZ2V0dGltZSgpIGFuZCBvbiBXaW5kb3dzIHdlIHVzZQor ICogUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoKS4gVGhlc2UgbWFjcm9zIGFsc28gZ2l2ZSBz b21lIGJyZWF0aGluZworICogcm9vbSB0byB1c2Ugb3RoZXIgaGlnaC1wcmVjaXNpb24tdGlt aW5nIEFQSXMuCiAgKgogICogVGhlIGJhc2ljIGRhdGEgdHlwZSBpcyBpbnN0cl90aW1lLCB3 aGljaCBhbGwgY2FsbGVycyBzaG91bGQgdHJlYXQgYXMgYW4KICAqIG9wYXF1ZSB0eXBlZGVm LiAgaW5zdHJfdGltZSBjYW4gc3RvcmUgZWl0aGVyIGFuIGFic29sdXRlIHRpbWUgKG9mCkBA IC01NiwxMCArNTgsMTUgQEAKIAogI2lmbmRlZiBXSU4zMgogCi0vKiBVc2UgY2xvY2tfZ2V0 dGltZSgpICovCisvKiBVc2VzIHJkdHNjIG9uIExpbnV4L3g4NiBpZiBhdmFpbGFibGUsIG90 aGVyd2lzZSBjbG9ja19nZXR0aW1lKCkgKi8KIAogI2luY2x1ZGUgPHRpbWUuaD4KIAorI2lm IGRlZmluZWQoX194ODZfNjRfXykgJiYgZGVmaW5lZChfX2xpbnV4X18pCisjaW5jbHVkZSA8 eDg2aW50cmluLmg+CisjaW5jbHVkZSA8Y3B1aWQuaD4KKyNlbmRpZgorCiAvKgogICogVGhl IGJlc3QgY2xvY2tpZCB0byB1c2UgYWNjb3JkaW5nIHRvIHRoZSBQT1NJWCBzcGVjIGlzIENM T0NLX01PTk9UT05JQywKICAqIHNpbmNlIHRoYXQgd2lsbCBnaXZlIHJlbGlhYmxlIGludGVy dmFsIHRpbWluZyBldmVuIGluIHRoZSBmYWNlIG9mIGNoYW5nZXMKQEAgLTgwLDcgKzg3LDkg QEAKICNkZWZpbmUgUEdfSU5TVFJfQ0xPQ0sJQ0xPQ0tfUkVBTFRJTUUKICNlbmRpZgogCisv KiB0aW1lIGluIGNwdSByZWZlcmVuY2UgY3ljbGVzICh3aGVuIHVzaW5nIHJkdHNjKSwgb3Ro ZXJ3aXNlIG5hbm9zZWNvbmRzICovCiB0eXBlZGVmIGludDY0IGluc3RyX3RpbWU7CisKICNk ZWZpbmUgTlNfUEVSX1MgSU5UNjRDT05TVCgxMDAwMDAwMDAwKQogI2RlZmluZSBVU19QRVJf UyBJTlQ2NENPTlNUKDEwMDAwMDApCiAjZGVmaW5lIE1TX1BFUl9TIElOVDY0Q09OU1QoMTAw MCkKQEAgLTkyLDE3ICsxMDEsMzggQEAgdHlwZWRlZiBpbnQ2NCBpbnN0cl90aW1lOwogCiAj ZGVmaW5lIElOU1RSX1RJTUVfU0VUX1pFUk8odCkJKCh0KSA9IDApCiAKLXN0YXRpYyBpbmxp bmUgaW5zdHJfdGltZSBwZ19jbG9ja19nZXR0aW1lX25zKHZvaWQpCitleHRlcm4gZG91Ymxl IGN5Y2xlc190b19zZWM7CitleHRlcm4gYm9vbCB1c2VfcmR0c2M7CisKKyNpZiBkZWZpbmVk KF9feDg2XzY0X18pICYmIGRlZmluZWQoX19saW51eF9fKQorZXh0ZXJuIHZvaWQgcGdfY2xv Y2tfZ2V0dGltZV9pbml0aWFsaXplX3JkdHNjKHZvaWQpOworI2VuZGlmCisKK3N0YXRpYyBp bmxpbmUgaW5zdHJfdGltZSBwZ19jbG9ja19nZXR0aW1lX3JlZl9jeWNsZXModm9pZCkKIHsK IAlzdHJ1Y3QgdGltZXNwZWMgdG1wOwogCisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSAmJiBk ZWZpbmVkKF9fbGludXhfXykKKyNpZm5kZWYgRlJPTlRFTkQKKyAgICBpZiAodXNlX3JkdHNj KQorICAgICAgICByZXR1cm4gX19yZHRzYygpOworI2VuZGlmCisjZW5kaWYKKyAgICAKIAlj bG9ja19nZXR0aW1lKFBHX0lOU1RSX0NMT0NLLCAmdG1wKTsKIAogCXJldHVybiB0bXAudHZf c2VjICogTlNfUEVSX1MgKyB0bXAudHZfbnNlYzsKIH0KIAorI2lmIGRlZmluZWQoX194ODZf NjRfXykgJiYgZGVmaW5lZChfX2xpbnV4X18pCisjZGVmaW5lIElOU1RSX1RJTUVfSU5JVElB TElaRSgpIFwKKyAgICAgICBwZ19jbG9ja19nZXR0aW1lX2luaXRpYWxpemVfcmR0c2MoKQor I2Vsc2UKKyNkZWZpbmUgSU5TVFJfVElNRV9JTklUSUFMSVpFKCkKKyNlbmRpZgorCiAjZGVm aW5lIElOU1RSX1RJTUVfU0VUX0NVUlJFTlQodCkgXAotCSh0KSA9IHBnX2Nsb2NrX2dldHRp bWVfbnMoKQorCSh0KSA9IHBnX2Nsb2NrX2dldHRpbWVfcmVmX2N5Y2xlcygpCiAKICNkZWZp bmUgSU5TVFJfVElNRV9BREQoeCx5KSBcCiAJZG8geyBcCkBAIC0xMjAsMTMgKzE1MCwxMyBA QCBzdGF0aWMgaW5saW5lIGluc3RyX3RpbWUgcGdfY2xvY2tfZ2V0dGltZV9ucyh2b2lkKQog CX0gd2hpbGUgKDApCiAKICNkZWZpbmUgSU5TVFJfVElNRV9HRVRfRE9VQkxFKHQpIFwKLQko KGRvdWJsZSkgKHQpIC8gTlNfUEVSX1MpCisJKChkb3VibGUpICh0KSAqIGN5Y2xlc190b19z ZWMpCiAKICNkZWZpbmUgSU5TVFJfVElNRV9HRVRfTUlMTElTRUModCkgXAotCSgoZG91Ymxl KSAodCkgLyBOU19QRVJfTVMpCisJKChkb3VibGUpICh0KSAqIChjeWNsZXNfdG9fc2VjICog TVNfUEVSX1MpKQogCiAjZGVmaW5lIElOU1RSX1RJTUVfR0VUX01JQ1JPU0VDKHQpIFwKLQko KGRvdWJsZSkgKHQpIC8gTlNfUEVSX1VTKQorCSgodWludDY0KSAodCkgKiAoY3ljbGVzX3Rv X3NlYyAqIFVTX1BFUl9TKSkKIAogI2Vsc2UJCQkJCQkJLyogV0lOMzIgKi8KIApAQCAtMTM4 LDYgKzE2OCw4IEBAIHR5cGVkZWYgTEFSR0VfSU5URUdFUiBpbnN0cl90aW1lOwogCiAjZGVm aW5lIElOU1RSX1RJTUVfU0VUX1pFUk8odCkJKCh0KS5RdWFkUGFydCA9IDApCiAKKyNkZWZp bmUgSU5TVFJfVElNRV9JTklUSUFMSVpFKCkKKwogI2RlZmluZSBJTlNUUl9USU1FX1NFVF9D VVJSRU5UKHQpCVF1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyKCYodCkpCiAKICNkZWZpbmUgSU5T VFJfVElNRV9BREQoeCx5KSBcCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9Na3ZjYnVp bGQucG0gYi9zcmMvdG9vbHMvbXN2Yy9Na3ZjYnVpbGQucG0KaW5kZXggODNhM2U0MDQyNS4u MDllZjU2YzMwOSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL21zdmMvTWt2Y2J1aWxkLnBtCisr KyBiL3NyYy90b29scy9tc3ZjL01rdmNidWlsZC5wbQpAQCAtMTM1LDcgKzEzNSw3IEBAIHN1 YiBta3ZjYnVpbGQKIAlvdXIgQHBnY29tbW9uYWxsZmlsZXMgPSBxdygKIAkgIGFyY2hpdmUu YyBiYXNlNjQuYyBjaGVja3N1bV9oZWxwZXIuYyBjb21wcmVzc2lvbi5jCiAJICBjb25maWdf aW5mby5jIGNvbnRyb2xkYXRhX3V0aWxzLmMgZDJzLmMgZW5jbmFtZXMuYyBleGVjLmMKLQkg IGYycy5jIGZpbGVfcGVybS5jIGZpbGVfdXRpbHMuYyBoYXNoZm4uYyBpcC5jIGpzb25hcGku YworCSAgZjJzLmMgZmlsZV9wZXJtLmMgZmlsZV91dGlscy5jIGhhc2hmbi5jIGlwLmMgaW5z dHJfdGltZS5vIGpzb25hcGkuYwogCSAga2V5d29yZHMuYyBrd2xvb2t1cC5jIGxpbmstY2Fu YXJ5LmMgbWQ1X2NvbW1vbi5jCiAJICBwZ19nZXRfbGluZS5jIHBnX2x6Y29tcHJlc3MuYyBw Z19wcm5nLmMgcGdmbmFtZXMuYyBwc3ByaW50Zi5jIHJlbHBhdGguYwogCSAgcm10cmVlLmMg c2FzbHByZXAuYyBzY3JhbS1jb21tb24uYyBzdHJpbmcuYyBzdHJpbmdpbmZvLmMgdW5pY29k ZV9ub3JtLmMKLS0gCjIuMzQuMQoK --------------TJ8Rdp5msvdGQjHtCUzOdU1b--