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.96) (envelope-from ) id 1vf167-0035T8-0p for pgsql-hackers@arkaria.postgresql.org; Sun, 11 Jan 2026 19:27:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vf155-00CJ0k-21 for pgsql-hackers@arkaria.postgresql.org; Sun, 11 Jan 2026 19:26:32 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vf154-00CJ0W-2m for pgsql-hackers@lists.postgresql.org; Sun, 11 Jan 2026 19:26:32 +0000 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vf152-005ZfG-0G for pgsql-hackers@postgresql.org; Sun, 11 Jan 2026 19:26:30 +0000 Received: by mail-wm1-x342.google.com with SMTP id 5b1f17b1804b1-4775ae77516so64364835e9.1 for ; Sun, 11 Jan 2026 11:26:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768159581; x=1768764381; darn=postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=lNZNMrUBUUXyykcytqoSjJH0Na0zwT7UmRubalZBz4I=; b=Il1L2a6Igrw5NDDDUbbooydXEXs7c0SyxBVvYnEey0bHnhiIpNBcn+fDJ3ry4mTl05 AMDLze84OXgAy3NO7tRLNms/6VWs0hjpqa558wdfe7Qq58NY3jxWNk+xRXXKpyWZeOKL PktAbHBjHI2WUptbfN3zdeeEeqakLOKZ7gsyJ8lkYTI3rhEvlMU3pmsLpxwWt++dET8R 7QRHUVjiwEQgA6jCQA+K+oQkFime30L7hbHLsyOA4x55OOzvFupaWjZlrwey6KwcRy28 Q2h/OQ1132+pI1wAOk5c/+FNCz1B/vpQJ61N4dqbWdPX9FWB1TQxBbAdMRkIoGLajP4F ySuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768159581; x=1768764381; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=lNZNMrUBUUXyykcytqoSjJH0Na0zwT7UmRubalZBz4I=; b=AiIvWmi5/OtmxU5iuB4X4mVKFIRsXpdXI06G/I8eR8+Wl/HFL2yu+mpWCACvyJH/oo 6rgB3G0TK56YLJ0RTmi97KaJ5SmCNxXTgWuSQCeZJY/xp/NSnczuXGu/XlnFV/FMIPvZ 1b4cVsnTqlsh276tmXvdZKHZLMxgWqX9hp6L+3UST+zhsDi+/O/vgO0cDhZU7lpJEjaZ a6qPeZY5wVSm2iImtpGJ4MMEw/LltWVEzW17B9SLbjvs/hE8vIiikaSFzUjFZv2EdRlb FjQS1wu1TfkOHQlv8Dlzg9hbM5WvfrHFYyMzf7IDDN0F1zUHTm5+k+08N1vHuUGjluuZ /9tw== X-Forwarded-Encrypted: i=1; AJvYcCWVzIITFdd886+FMM+rZFHBW2pMDvEvnckgiQLdCyfTlnDseoLEOWCfMxrOdueXhSq9pzHoAw7McGHLE4Q+@postgresql.org X-Gm-Message-State: AOJu0Yysqn3ic08MlGJTOvm9js4m60Dt1DJ0RrcBuU9+f3uJ+WN3Zu4F NADht/FRWcPfUkZR5bWNv60FXiRyy/0Sh1nNyHvRRNFvVKlblFThkHww X-Gm-Gg: AY/fxX6CYcohIidTy3109n0gVSEeu/FDwq1rJPXf3BvKNQgV/JYc9oOhy40vZoo0k+M wi4mNRx0yczRY8S3iKtsETVt6O5Eogp00qXbbUMO7BQ3fqSP/kE00ri7yhAijfXLoQs90rFBpCB GWjT7mgmPXGURTvq5/Han38ikUf/M7WoyNcj7iF6W+UUX3WMlF87bWARrx9DELhMsbzD4+P3wKH Kmyp126BxZYAPC8I1R5CiBGC1OKo2YRQ777WHka39dbwSDgvRyLo3t/nIiFFaTqxAvQ4Csp145/ KzIWLn/44jFjgtByJkpjDey84oHvjPMmHrNL/4ouOfht+yBjsNwBHwssLw1drq26BACI/2VvE9v fQxtaG6LiAsrngRaiEVofHbkMerNPJGNfq8nfJygomzAKgfmVqmLHZMV09AFeT62XdWDo35sW3Q ZxM7EktKOEZFBwT+0= X-Google-Smtp-Source: AGHT+IHJKZ5ESacSqLujtHQkH8pVCa2mrWADR/kw/J7E9ZwB0HJ46WmVNViWsvtMbk6gB0Rib0/t+w== X-Received: by 2002:a05:600c:a08:b0:477:63b5:6f39 with SMTP id 5b1f17b1804b1-47d84b3477amr158031155e9.19.1768159580836; Sun, 11 Jan 2026 11:26:20 -0800 (PST) Received: from [192.168.2.32] ([147.161.234.249]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f4184e1sm308327275e9.4.2026.01.11.11.26.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 11 Jan 2026 11:26:19 -0800 (PST) Content-Type: multipart/mixed; boundary="------------IImi0tp1SoeVM01s2c01rFVy" Message-ID: <3bdce15d-25ec-4c49-9906-818803462897@gmail.com> Date: Sun, 11 Jan 2026 20:26:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc? From: David Geier To: Hannu Krosing , Robert Haas Cc: Lukas Fittl , Andres Freund , Pavel Stehule , vignesh C , Michael Paquier , Ibrar Ahmed , Maciek Sakrejda , pgsql-hackers References: <20230207181218.47irz3of34qsww5l@awork3.anarazel.de> <989acbcf-e950-7911-c2e2-fe7aa7d15108@gmail.com> <198ef658-a5b7-9862-2017-faf85d59e3a8@gmail.com> <20240601185200.riqzbabh5azna2fr@alap3.anarazel.de> <57845c37-85e8-4d0e-9456-76833e089c5d@gmail.com> <7717ba64-9283-49ec-aa3f-34c6de848b93@gmail.com> Content-Language: en-US In-Reply-To: <7717ba64-9283-49ec-aa3f-34c6de848b93@gmail.com> 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. --------------IImi0tp1SoeVM01s2c01rFVy Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit > Based on Robert's suggestion I wanted to add a "fast_clock_source" enum > GUC which can have the following values "auto", "rdtsc", "try_rdtsc" and > "off". With that, at least no additional checks are needed and > performance will remain as previously benchmarked in this thread. The attached patch set is rebased on latest master and contains a commit which adds a "fast_clock_source" GUC that can be "try", "off" and "rdtsc" on Linux. Alternatively, we could call the GUC "clock_source" with "auto", "clock_gettime" and "rdtsc". Opinions? I moved the call to INSTR_TIME_INITIALIZE() from InitPostgres() to PostmasterMain(). In InitPostgres() it kept the database in a recovery cycle. > I'll still add unlikely() around the if (has_rdtsc). Done. -- David Geier --------------IImi0tp1SoeVM01s2c01rFVy Content-Type: text/x-patch; charset=UTF-8; name="v3-0003-Add-GUC.patch" Content-Disposition: attachment; filename="v3-0003-Add-GUC.patch" Content-Transfer-Encoding: base64 RnJvbSAxYjlmOWI5N2Q1Y2E3NDUzMjYyMGNiNTFjOGY4YmViMjM1MDA1MzdmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KRGF0ZTogRnJpLCA1IERlYyAyMDI1IDA4OjU4OjE4ICswMTAwClN1YmplY3Q6IFtQQVRD SCB2MyAzLzNdIEFkZCBHVUMKCi0tLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFz dGVyLmMgICAgICAgfCAxMSArKysrKysrKysKIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMu YyAgICAgICAgICAgICAgIHwgMTEgKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9pbml0 L3Bvc3Rpbml0LmMgICAgICAgICB8ICAzIC0tLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWNfcGFyYW1ldGVycy5kYXQgfCAgNyArKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjX3RhYmxlcy5jICAgICAgIHwgMTAgKysrKysrKysrCiBzcmMvYmluL3BnX3Rlc3RfdGlt aW5nL3BnX3Rlc3RfdGltaW5nLmMgICB8ICAyICstCiBzcmMvYmluL3BnYmVuY2gvcGdiZW5j aC5jICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmluL3BzcWwvc3RhcnR1cC5jICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvY29tbW9uL2luc3RyX3RpbWUuYyAgICAg ICAgICAgICAgICAgICB8IDExICsrKysrKysrKwogc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkv aW5zdHJfdGltZS5oICAgICAgfCAyNyArKysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2lu Y2x1ZGUvdXRpbHMvZ3VjX3RhYmxlcy5oICAgICAgICAgICAgfCAgMSArCiAxMSBmaWxlcyBj aGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IDkyMWQ3MzIyNmQ2Li5hNmRmYWYzNTZlZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKKysrIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAgLTEwMDUsNiArMTAwNSwx NyBAQCBQb3N0bWFzdGVyTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCSAqLwogCUNy ZWF0ZVNoYXJlZE1lbW9yeUFuZFNlbWFwaG9yZXMoKTsKIAorCS8qCisJICogSW5pdGlhbGl6 ZSBoaWdoLXByZWNpc2lvbiBpbnRlcnZhbCB0aW1pbmcuCisJICogUmFpc2UgRkFUQUwgZXJy b3IgaWYgUkRUU0MgaXMgcmVxdWVzdGVkIGJ1dCBub3QgYXZhaWxhYmxlLgorCSAqLworCUlO U1RSX1RJTUVfSU5JVElBTElaRSh0cnVlKTsKKworI2lmIGRlZmluZWQoX194ODZfNjRfXykg JiYgZGVmaW5lZChfX2xpbnV4X18pCisJaWYgKGZhc3RfY2xvY2tfc291cmNlID09IEZBU1Rf Q0xPQ0tfU09VUkNFX1JEVFNDICYmICghaGFzX3JkdHNjIHx8ICFoYXNfcmR0c2NwKSkKKwkJ ZXJlcG9ydChGQVRBTCwgKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LCBlcnJtc2coIlRTQyBpcyBub3Qgc3VwcG9ydGVkIGFzIGZhc3QgY2xvY2sgc291cmNlIikp KTsKKyNlbmRpZgorCiAJLyoKIAkgKiBFc3RpbWF0ZSBudW1iZXIgb2Ygb3BlbmFibGUgZmls ZXMuICBUaGlzIG11c3QgaGFwcGVuIGFmdGVyIHNldHRpbmcgdXAKIAkgKiBzZW1hcGhvcmVz LCBiZWNhdXNlIG9uIHNvbWUgcGxhdGZvcm1zIHNlbWFwaG9yZXMgY291bnQgYXMgb3BlbiBm aWxlcy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9i YWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCBlNTRiZjFlNzYwZi4uZTg4MjIyMGI5YTAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFj a2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTQxNTIsNiArNDE1MiwxNyBAQCBQb3N0Z3Jlc1Np bmdsZVVzZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10sCiAJICovCiAJQ3JlYXRlU2hh cmVkTWVtb3J5QW5kU2VtYXBob3JlcygpOwogCisJLyoKKwkgKiBJbml0aWFsaXplIGhpZ2gt cHJlY2lzaW9uIGludGVydmFsIHRpbWluZy4KKwkgKiBSYWlzZSBGQVRBTCBlcnJvciBpZiBS RFRTQyBpcyByZXF1ZXN0ZWQgYnV0IG5vdCBhdmFpbGFibGUuCisJICovCisJSU5TVFJfVElN RV9JTklUSUFMSVpFKHRydWUpOworCisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSAmJiBkZWZp bmVkKF9fbGludXhfXykKKwlpZiAoZmFzdF9jbG9ja19zb3VyY2UgPT0gRkFTVF9DTE9DS19T T1VSQ0VfUkRUU0MgJiYgKCFoYXNfcmR0c2MgfHwgIWhhc19yZHRzY3ApKQorCQllcmVwb3J0 KEZBVEFMLCAoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksIGVycm1z ZygiVFNDIGlzIG5vdCBzdXBwb3J0ZWQgYXMgZmFzdCBjbG9jayBzb3VyY2UiKSkpOworI2Vu ZGlmCisKIAkvKgogCSAqIEVzdGltYXRlIG51bWJlciBvZiBvcGVuYWJsZSBmaWxlcy4gIFRo aXMgbXVzdCBoYXBwZW4gYWZ0ZXIgc2V0dGluZyB1cAogCSAqIHNlbWFwaG9yZXMsIGJlY2F1 c2Ugb24gc29tZSBwbGF0Zm9ybXMgc2VtYXBob3JlcyBjb3VudCBhcyBvcGVuIGZpbGVzLgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCmluZGV4IGMzMzljMzViMjVkLi4zZjQwMWZh ZjNkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYwpAQCAtODA5LDkgKzgwOSw2 IEBAIEluaXRQb3N0Z3Jlcyhjb25zdCBjaGFyICppbl9kYm5hbWUsIE9pZCBkYm9pZCwKIAkv KiBJbml0aWFsaXplIHBvcnRhbCBtYW5hZ2VyICovCiAJRW5hYmxlUG9ydGFsTWFuYWdlcigp OwogCi0JLyogaW5pdGlhbGl6ZSBoaWdoLXByZWNpc2lvbiBpbnRlcnZhbCB0aW1pbmcgKi8K LQlJTlNUUl9USU1FX0lOSVRJQUxJWkUoKTsKLQogCS8qCiAJICogTG9hZCByZWxjYWNoZSBl bnRyaWVzIGZvciB0aGUgc2hhcmVkIHN5c3RlbSBjYXRhbG9ncy4gIFRoaXMgbXVzdCBjcmVh dGUKIAkgKiBhdCBsZWFzdCBlbnRyaWVzIGZvciBwZ19kYXRhYmFzZSBhbmQgY2F0YWxvZ3Mg dXNlZCBmb3IgYXV0aGVudGljYXRpb24uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3BhcmFtZXRlcnMuZGF0CmluZGV4IDdjNjBiMTI1NTY0Li5jNjhiM2ZmMTE4NCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKQEAgLTEwNDEsNiAr MTA0MSwxMyBAQAogICBtYXggPT4gJzMnLAogfSwKIAoreyBuYW1lID0+ICdmYXN0X2Nsb2Nr X3NvdXJjZScsIHR5cGUgPT4gJ2VudW0nLCBjb250ZXh0ID0+ICdQR0NfUE9TVE1BU1RFUics IGdyb3VwID0+ICdSRVNPVVJDRVNfVElNRScsCisgIHNob3J0X2Rlc2MgPT4gJ1VzZSBvZiBm YXN0IGNsb2NrIHNvdXJjZS4nLAorICB2YXJpYWJsZSA9PiAnZmFzdF9jbG9ja19zb3VyY2Un LAorICBib290X3ZhbCA9PiAnRkFTVF9DTE9DS19TT1VSQ0VfVFJZJywKKyAgb3B0aW9ucyA9 PiAnZmFzdF9jbG9ja19zb3VyY2Vfb3B0aW9ucycsCit9LAorCiB7IG5hbWUgPT4gJ2ZpbGVf Y29weV9tZXRob2QnLCB0eXBlID0+ICdlbnVtJywgY29udGV4dCA9PiAnUEdDX1VTRVJTRVQn LCBncm91cCA9PiAnUkVTT1VSQ0VTX0RJU0snLAogICBzaG9ydF9kZXNjID0+ICdTZWxlY3Rz IHRoZSBmaWxlIGNvcHkgbWV0aG9kLicsCiAgIHZhcmlhYmxlID0+ICdmaWxlX2NvcHlfbWV0 aG9kJywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNzNmZjZhZDBh MzIuLjM2MTRhYWYxODc2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1 Y190YWJsZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpA QCAtOTAsNiArOTAsNyBAQAogI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKICNpbmNsdWRl ICJ0c2VhcmNoL3RzX2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNp bmNsdWRlICJwb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgiCiAjaW5jbHVkZSAidXRpbHMvYnl0 ZWEuaCIKICNpbmNsdWRlICJ1dGlscy9mbG9hdC5oIgogI2luY2x1ZGUgInV0aWxzL2d1Y19o b29rcy5oIgpAQCAtMzcxLDYgKzM3MiwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZp Z19lbnVtX2VudHJ5IGh1Z2VfcGFnZXNfb3B0aW9uc1tdID0gewogCXtOVUxMLCAwLCBmYWxz ZX0KIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgZmFzdF9j bG9ja19zb3VyY2Vfb3B0aW9uc1tdID0geworCXsidHJ5IiwgRkFTVF9DTE9DS19TT1VSQ0Vf VFJZLCBmYWxzZX0sCisJeyJvZmYiLCBGQVNUX0NMT0NLX1NPVVJDRV9PRkYsIGZhbHNlfSwK KyNpZiBkZWZpbmVkKF9feDg2XzY0X18pICYmIGRlZmluZWQoX19saW51eF9fKQorCXsicmR0 c2MiLCBGQVNUX0NMT0NLX1NPVVJDRV9SRFRTQywgZmFsc2V9LAorI2VuZGlmCisJe05VTEws IDAsIGZhbHNlfQorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRy eSBodWdlX3BhZ2VzX3N0YXR1c19vcHRpb25zW10gPSB7CiAJeyJvZmYiLCBIVUdFX1BBR0VT X09GRiwgZmFsc2V9LAogCXsib24iLCBIVUdFX1BBR0VTX09OLCBmYWxzZX0sCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3Rlc3RfdGltaW5nL3BnX3Rlc3RfdGltaW5nLmMgYi9zcmMvYmlu L3BnX3Rlc3RfdGltaW5nL3BnX3Rlc3RfdGltaW5nLmMKaW5kZXggNjJlMzA4ZGQ5NjUuLjNm ZmE5NTc2OWE1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Rlc3RfdGltaW5nL3BnX3Rlc3Rf dGltaW5nLmMKKysrIGIvc3JjL2Jpbi9wZ190ZXN0X3RpbWluZy9wZ190ZXN0X3RpbWluZy5j CkBAIC0xNzQsNyArMTc0LDcgQEAgdGVzdF90aW1pbmcodW5zaWduZWQgaW50IGR1cmF0aW9u LCBib29sIGZhc3RfdGltaW5nKQogCWNoYXIJICAgKnRpbWVfc291cmNlID0gTlVMTDsKIAli b29sCQlmYXN0X3RpbWluZ19hdmFpbGFibGUgPSBmYWxzZTsKIAotCUlOU1RSX1RJTUVfSU5J VElBTElaRSgpOworCUlOU1RSX1RJTUVfSU5JVElBTElaRSh0cnVlKTsKIAogI2lmICFkZWZp bmVkKFdJTjMyKSAmJiBkZWZpbmVkKF9feDg2XzY0X18pICYmIGRlZmluZWQoX19saW51eF9f KQogCWlmIChmYXN0X3RpbWluZyAmJiBoYXNfcmR0c2MpCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnYmVuY2gvcGdiZW5jaC5jIGIvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYwppbmRleCA3 YjY0ZmRhZWQzNC4uNzhlNWI0MGE3YmIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdiZW5jaC9w Z2JlbmNoLmMKKysrIGIvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYwpAQCAtNzMzNSw3ICs3 MzM1LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJfQogCiAJLyogaW5pdGlh bGl6ZSBoaWdoLXByZWNpc2lvbiBpbnRlcnZhbCB0aW1pbmcgKi8KLQlJTlNUUl9USU1FX0lO SVRJQUxJWkUoKTsKKwlJTlNUUl9USU1FX0lOSVRJQUxJWkUoZmFsc2UpOwogCiAJLyogb3Bl bmluZyBjb25uZWN0aW9uLi4uICovCiAJY29uID0gZG9Db25uZWN0KCk7CmRpZmYgLS1naXQg YS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jIGIvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYwppbmRl eCBhMGIzYmFmZTIwYy4uZWM4NzQ4MDAyZDggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9z dGFydHVwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYwpAQCAtMzI5LDcgKzMyOSw3 IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAlQUXNldE5vdGljZVByb2Nlc3Nv cihwc2V0LmRiLCBOb3RpY2VQcm9jZXNzb3IsIE5VTEwpOwogCiAJLyogaW5pdGlhbGl6ZSBo aWdoLXByZWNpc2lvbiBpbnRlcnZhbCB0aW1pbmcgKi8KLQlJTlNUUl9USU1FX0lOSVRJQUxJ WkUoKTsKKwlJTlNUUl9USU1FX0lOSVRJQUxJWkUoZmFsc2UpOwogCiAJU3luY1ZhcmlhYmxl cygpOwogCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2luc3RyX3RpbWUuYyBiL3NyYy9jb21t b24vaW5zdHJfdGltZS5jCmluZGV4IGZkZjQ3Njk5ZjIwLi4wMmI1N2VkZmI5YiAxMDA2NDQK LS0tIGEvc3JjL2NvbW1vbi9pbnN0cl90aW1lLmMKKysrIGIvc3JjL2NvbW1vbi9pbnN0cl90 aW1lLmMKQEAgLTI0LDYgKzI0LDE3IEBACiAKICNpbmNsdWRlICJwb3J0YWJpbGl0eS9pbnN0 cl90aW1lLmgiCiAKK2ludCBmYXN0X2Nsb2NrX3NvdXJjZSA9IEZBU1RfQ0xPQ0tfU09VUkNF X1RSWTsKKwordm9pZAorcGdfaW5pdGlhbGl6ZV90aW1pbmcoYm9vbCB0cnlfZmFzdCkKK3sK KyNpZiBkZWZpbmVkKF9feDg2XzY0X18pICYmIGRlZmluZWQoX19saW51eF9fKQorCWlmICh0 cnlfZmFzdCkKKwkJcGdfaW5pdGlhbGl6ZV9yZHRzYygpOworI2VuZGlmCit9CisKICNpZm5k ZWYgV0lOMzIKIC8qCiAgKiBTdG9yZXMgd2hhdCB0aGUgbnVtYmVyIG9mIGN5Y2xlcyBuZWVk cyB0byBiZSBtdWx0aXBsaWVkIHdpdGggdG8gZW5kIHVwCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmggYi9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0 eS9pbnN0cl90aW1lLmgKaW5kZXggMzNlNTA2ZjM1MjYuLjIyZWU5OTFkMmM5IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oCkBAIC04MSw2ICs4MSwxNCBAQCB0eXBl ZGVmIHN0cnVjdCBpbnN0cl90aW1lCiAjZGVmaW5lIE5TX1BFUl9NUwlJTlQ2NENPTlNUKDEw MDAwMDApCiAjZGVmaW5lIE5TX1BFUl9VUwlJTlQ2NENPTlNUKDEwMDApCiAKK3R5cGVkZWYg ZW51bQoreworCUZBU1RfQ0xPQ0tfU09VUkNFX1RSWSwKKwlGQVNUX0NMT0NLX1NPVVJDRV9P RkYsCisJRkFTVF9DTE9DS19TT1VSQ0VfUkRUU0MKK30gRmFzdENsb2NrU291cmNlVHlwZTsK KworZXh0ZXJuIGludCBmYXN0X2Nsb2NrX3NvdXJjZTsKIAogI2lmbmRlZiBXSU4zMgogCkBA IC0xNDcsNyArMTU1LDcgQEAgc3RhdGljIGlubGluZSBpbnN0cl90aW1lCiBwZ19nZXRfdGlj a3NfZmFzdCh2b2lkKQogewogI2lmIGRlZmluZWQoX194ODZfNjRfXykgJiYgZGVmaW5lZChf X2xpbnV4X18pCi0JaWYgKGhhc19yZHRzYykKKwlpZiAobGlrZWx5KGhhc19yZHRzYyAmJiBm YXN0X2Nsb2NrX3NvdXJjZSAhPSBGQVNUX0NMT0NLX1NPVVJDRV9PRkYpKQogCXsKIAkJaW5z dHJfdGltZQlub3c7CiAKQEAgLTE2Myw3ICsxNzEsNyBAQCBzdGF0aWMgaW5saW5lIGluc3Ry X3RpbWUKIHBnX2dldF90aWNrcyh2b2lkKQogewogI2lmIGRlZmluZWQoX194ODZfNjRfXykg JiYgZGVmaW5lZChfX2xpbnV4X18pCi0JaWYgKGhhc19yZHRzY3ApCisJaWYgKGxpa2VseSho YXNfcmR0c2NwICYmIGZhc3RfY2xvY2tfc291cmNlICE9IEZBU1RfQ0xPQ0tfU09VUkNFX09G RikpCiAJewogCQlpbnN0cl90aW1lCW5vdzsKIAkJdWludDMyCQl1bnVzZWQ7CkBAIC0yMTIs MTYgKzIyMCwxMSBAQCBwZ190aWNrc190b19ucyhpbnQ2NCB0aWNrcykKIAlyZXR1cm4gbnM7 CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZAotcGdfaW5pdGlhbGl6ZV9nZXRfdGlja3MoKQot ewotI2lmIGRlZmluZWQoX194ODZfNjRfXykgJiYgZGVmaW5lZChfX2xpbnV4X18pCi0JcGdf aW5pdGlhbGl6ZV9yZHRzYygpOwotI2VuZGlmCi19CitleHRlcm4gdm9pZAorcGdfaW5pdGlh bGl6ZV90aW1pbmcoYm9vbCB0cnlfZmFzdCk7CiAKLSNkZWZpbmUgSU5TVFJfVElNRV9JTklU SUFMSVpFKCkgXAotCXBnX2luaXRpYWxpemVfZ2V0X3RpY2tzKCkKKyNkZWZpbmUgSU5TVFJf VElNRV9JTklUSUFMSVpFKHRyeV9mYXN0KSBcCisJcGdfaW5pdGlhbGl6ZV90aW1pbmcodHJ5 X2Zhc3QpCiAKICNkZWZpbmUgSU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9GQVNUKHQpIFwKIAko KHQpID0gcGdfZ2V0X3RpY2tzX2Zhc3QoKSkKQEAgLTI2MCw3ICsyNjMsNyBAQCBHZXRUaW1l ckZyZXF1ZW5jeSh2b2lkKQogCXJldHVybiAoZG91YmxlKSBmLlF1YWRQYXJ0OwogfQogCi0j ZGVmaW5lIElOU1RSX1RJTUVfSU5JVElBTElaRSgpCisjZGVmaW5lIElOU1RSX1RJTUVfSU5J VElBTElaRSh0cnlfZmFzdCkKIAogI2RlZmluZSBJTlNUUl9USU1FX1NFVF9DVVJSRU5UX0ZB U1QodCkgXAogCSgodCkgPSBwZ19xdWVyeV9wZXJmb3JtYW5jZV9jb3VudGVyKCkpCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9ndWNfdGFibGVzLmggYi9zcmMvaW5jbHVkZS91 dGlscy9ndWNfdGFibGVzLmgKaW5kZXggNzFhODAxNjE5NjEuLjYzNDQwYjhlMzZjIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9ndWNfdGFibGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvdXRpbHMvZ3VjX3RhYmxlcy5oCkBAIC02MCw2ICs2MCw3IEBAIGVudW0gY29uZmlnX2dy b3VwCiAJQ09OTl9BVVRIX1RDUCwKIAlDT05OX0FVVEhfQVVUSCwKIAlDT05OX0FVVEhfU1NM LAorCVJFU09VUkNFU19USU1FLAogCVJFU09VUkNFU19NRU0sCiAJUkVTT1VSQ0VTX0RJU0ss CiAJUkVTT1VSQ0VTX0tFUk5FTCwKLS0gCjIuNTEuMAoK --------------IImi0tp1SoeVM01s2c01rFVy Content-Type: text/x-patch; charset=UTF-8; name="v3-0002-pg_test_timing-Also-test-fast-timing-and-report-t.patch" Content-Disposition: attachment; filename*0="v3-0002-pg_test_timing-Also-test-fast-timing-and-report-t.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2ZWFhN2Y1ZTM3MjNhZDY0OTA0NDgwODJiNDcwYzE4M2NkODA4YTlmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpE YXRlOiBTdW4sIDI3IEp1bCAyMDI1IDA4OjQ4OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2 MyAyLzNdIHBnX3Rlc3RfdGltaW5nOiBBbHNvIHRlc3QgZmFzdCB0aW1pbmcgYW5kIHJlcG9y dCB0aW1lCiBzb3VyY2UKCkluIHBhc3NpbmcgYWxzbyByZWR1Y2UgdGhlIHBlci1sb29wIG92 ZXJoZWFkIGNhdXNlZCBieSByZXBlYXRlZCBkaXZpc2lvbnMKaW4gSU5TVFJfVElNRV9HRVRf TkFOT1NFQyB3aGVuIHRoZSB0aWNrcyB2YXJpYWJsZSBoYXMgYmVjb21lIHZlcnkgbGFyZ2Us Cmluc3RlYWQgZGlmZiBmaXJzdCBhbmQgdGhlbiB0dXJuIGl0IGludG8gbmFub3NlY3MuCi0t LQogc3JjL2Jpbi9wZ190ZXN0X3RpbWluZy9wZ190ZXN0X3RpbWluZy5jIHwgNzYgKysrKysr KysrKysrKysrKysrKy0tLS0tLQogc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGlt ZS5oICAgIHwgMzEgKysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25z KCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Rlc3RfdGlt aW5nL3BnX3Rlc3RfdGltaW5nLmMgYi9zcmMvYmluL3BnX3Rlc3RfdGltaW5nL3BnX3Rlc3Rf dGltaW5nLmMKaW5kZXggYTU2MjEyNTFhZmMuLjYyZTMwOGRkOTY1IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX3Rlc3RfdGltaW5nL3BnX3Rlc3RfdGltaW5nLmMKKysrIGIvc3JjL2Jpbi9w Z190ZXN0X3RpbWluZy9wZ190ZXN0X3RpbWluZy5jCkBAIC0zMCw3ICszMCw3IEBAIHN0YXRp YyBsb25nIGxvbmcgaW50IGxhcmdlc3RfZGlmZl9jb3VudDsKIAogCiBzdGF0aWMgdm9pZCBo YW5kbGVfYXJncyhpbnQgYXJnYywgY2hhciAqYXJndltdKTsKLXN0YXRpYyB1aW50NjQgdGVz dF90aW1pbmcodW5zaWduZWQgaW50IGR1cmF0aW9uKTsKK3N0YXRpYyB1aW50NjQgdGVzdF90 aW1pbmcodW5zaWduZWQgaW50IGR1cmF0aW9uLCBib29sIGZhc3RfdGltaW5nKTsKIHN0YXRp YyB2b2lkIG91dHB1dCh1aW50NjQgbG9vcF9jb3VudCk7CiAKIGludApAQCAtNDMsMTAgKzQz LDIyIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogCWhhbmRsZV9hcmdzKGFy Z2MsIGFyZ3YpOwogCi0JbG9vcF9jb3VudCA9IHRlc3RfdGltaW5nKHRlc3RfZHVyYXRpb24p OwotCisJLyoKKwkgKiBGaXJzdCwgdGVzdCBkZWZhdWx0IChub24tZmFzdCkgdGltaW5nIGNv ZGUuIEEgY2xvY2sgc291cmNlIGZvciB0aGF0CisJICogaXMgYWx3YXlzIGF2YWlsYWJsZS4g SGVuY2UsIHdlIGNhbiB1bmNvbmRpdGlvbmFsbHkgb3V0cHV0IHRoZSByZXN1bHQuCisJICov CisJbG9vcF9jb3VudCA9IHRlc3RfdGltaW5nKHRlc3RfZHVyYXRpb24sIGZhbHNlKTsKIAlv dXRwdXQobG9vcF9jb3VudCk7CiAKKwkvKgorCSAqIFNlY29uZCwgdGVzdCB0aGUgZmFzdCB0 aW1pbmcgY29kZS4gVGhpcyBjbG9jayBzb3VyY2UgaXMgbm90IGFsd2F5cworCSAqIGF2YWls YWJsZS4gSW4gdGhhdCBjYXNlIHRoZSBsb29wIGNvdW50IHdpbGwgYmUgMCBhbmQgd2UgZG9u J3QgcHJpbnQuCisJICovCisJIHByaW50ZigiXG4iKTsKKwlsb29wX2NvdW50ID0gdGVzdF90 aW1pbmcodGVzdF9kdXJhdGlvbiwgdHJ1ZSk7CisJaWYgKGxvb3BfY291bnQgPiAwKQorCQlv dXRwdXQobG9vcF9jb3VudCk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNzgsNyArOTAsNyBA QCBoYW5kbGVfYXJncyhpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQl9CiAJfQogCi0Jd2hp bGUgKChvcHRpb24gPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiZDpjOiIsCisJd2hpbGUg KChvcHRpb24gPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiZDpjOmY6IiwKIAkJCQkJCQkJ IGxvbmdfb3B0aW9ucywgJm9wdGluZGV4KSkgIT0gLTEpCiAJewogCQlzd2l0Y2ggKG9wdGlv bikKQEAgLTE0MywyMyArMTU1LDQ0IEBAIGhhbmRsZV9hcmdzKGludCBhcmdjLCBjaGFyICph cmd2W10pCiAJCWV4aXQoMSk7CiAJfQogCi0JcHJpbnRmKG5nZXR0ZXh0KCJUZXN0aW5nIHRp bWluZyBvdmVyaGVhZCBmb3IgJXUgc2Vjb25kLlxuIiwKLQkJCQkJIlRlc3RpbmcgdGltaW5n IG92ZXJoZWFkIGZvciAldSBzZWNvbmRzLlxuIiwKKwlwcmludGYobmdldHRleHQoIlRlc3Rp bmcgdGltaW5nIG92ZXJoZWFkIGZvciAldSBzZWNvbmQuXG5cbiIsCisJCQkJCSJUZXN0aW5n IHRpbWluZyBvdmVyaGVhZCBmb3IgJXUgc2Vjb25kcy5cblxuIiwKIAkJCQkJdGVzdF9kdXJh dGlvbiksCiAJCSAgIHRlc3RfZHVyYXRpb24pOwogfQogCiBzdGF0aWMgdWludDY0Ci10ZXN0 X3RpbWluZyh1bnNpZ25lZCBpbnQgZHVyYXRpb24pCit0ZXN0X3RpbWluZyh1bnNpZ25lZCBp bnQgZHVyYXRpb24sIGJvb2wgZmFzdF90aW1pbmcpCiB7CiAJdWludDY0CQl0b3RhbF90aW1l OwogCWludDY0CQl0aW1lX2VsYXBzZWQgPSAwOwogCXVpbnQ2NAkJbG9vcF9jb3VudCA9IDA7 Ci0JdWludDY0CQlwcmV2LAotCQkJCWN1cjsKIAlpbnN0cl90aW1lCXN0YXJ0X3RpbWUsCiAJ CQkJZW5kX3RpbWUsCi0JCQkJdGVtcDsKKwkJCQlwcmV2LAorCQkJCWN1cjsKKwljaGFyCSAg ICp0aW1lX3NvdXJjZSA9IE5VTEw7CisJYm9vbAkJZmFzdF90aW1pbmdfYXZhaWxhYmxlID0g ZmFsc2U7CisKKwlJTlNUUl9USU1FX0lOSVRJQUxJWkUoKTsKKworI2lmICFkZWZpbmVkKFdJ TjMyKSAmJiBkZWZpbmVkKF9feDg2XzY0X18pICYmIGRlZmluZWQoX19saW51eF9fKQorCWlm IChmYXN0X3RpbWluZyAmJiBoYXNfcmR0c2MpCisJeworCQl0aW1lX3NvdXJjZSA9ICJSRFRT QyI7CisJCWZhc3RfdGltaW5nX2F2YWlsYWJsZSA9IHRydWU7CisJfQorCWVsc2UgaWYgKGhh c19yZHRzY3ApCisJCXRpbWVfc291cmNlID0gIlJEVFNDUCI7CisJZWxzZQorCQl0aW1lX3Nv dXJjZSA9IFBHX0lOU1RSX0NMT0NLX05BTUU7CisjZWxzZQorCXRpbWVfc291cmNlID0gUEdf SU5TVFJfQ0xPQ0tfTkFNRTsKKyNlbmRpZgorCWlmIChmYXN0X3RpbWluZyAmJiAhZmFzdF90 aW1pbmdfYXZhaWxhYmxlKQorCQlyZXR1cm4gMDsKKworCXByaW50ZihfKCJUaW1lIHNvdXJj ZTogJXNcbiIpLCB0aW1lX3NvdXJjZSk7CiAKIAkvKgogCSAqIFByZS16ZXJvIHRoZSBzdGF0 aXN0aWNzIGRhdGEgc3RydWN0dXJlcy4gIFRoZXkncmUgYWxyZWFkeSB6ZXJvIGJ5CkBAIC0x NzMsOCArMjA2LDExIEBAIHRlc3RfdGltaW5nKHVuc2lnbmVkIGludCBkdXJhdGlvbikKIAog CXRvdGFsX3RpbWUgPSBkdXJhdGlvbiA+IDAgPyBkdXJhdGlvbiAqIElOVDY0Q09OU1QoMTAw MDAwMDAwMCkgOiAwOwogCi0JSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChzdGFydF90aW1lKTsK LQljdXIgPSBJTlNUUl9USU1FX0dFVF9OQU5PU0VDKHN0YXJ0X3RpbWUpOworCWlmIChmYXN0 X3RpbWluZykKKwkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9GQVNUKHN0YXJ0X3RpbWUpOwor CWVsc2UKKwkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChzdGFydF90aW1lKTsKKwljdXIgPSBz dGFydF90aW1lOwogCiAJd2hpbGUgKHRpbWVfZWxhcHNlZCA8IHRvdGFsX3RpbWUpCiAJewpA QCAtMTgyLDkgKzIxOCwxMSBAQCB0ZXN0X3RpbWluZyh1bnNpZ25lZCBpbnQgZHVyYXRpb24p CiAJCQkJCWJpdHM7CiAKIAkJcHJldiA9IGN1cjsKLQkJSU5TVFJfVElNRV9TRVRfQ1VSUkVO VCh0ZW1wKTsKLQkJY3VyID0gSU5TVFJfVElNRV9HRVRfTkFOT1NFQyh0ZW1wKTsKLQkJZGlm ZiA9IGN1ciAtIHByZXY7CisJCWlmIChmYXN0X3RpbWluZykKKwkJCUlOU1RSX1RJTUVfU0VU X0NVUlJFTlRfRkFTVChjdXIpOworCQllbHNlCisJCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5U KGN1cik7CisJCWRpZmYgPSBJTlNUUl9USU1FX0RJRkZfTkFOT1NFQyhjdXIsIHByZXYpOwog CiAJCS8qIERpZCB0aW1lIGdvIGJhY2t3YXJkcz8gKi8KIAkJaWYgKHVubGlrZWx5KGRpZmYg PCAwKSkKQEAgLTIxNywxMSArMjU1LDEzIEBAIHRlc3RfdGltaW5nKHVuc2lnbmVkIGludCBk dXJhdGlvbikKIAkJCWxhcmdlc3RfZGlmZl9jb3VudCsrOwogCiAJCWxvb3BfY291bnQrKzsK LQkJSU5TVFJfVElNRV9TVUJUUkFDVCh0ZW1wLCBzdGFydF90aW1lKTsKLQkJdGltZV9lbGFw c2VkID0gSU5TVFJfVElNRV9HRVRfTkFOT1NFQyh0ZW1wKTsKKwkJdGltZV9lbGFwc2VkID0g SU5TVFJfVElNRV9ESUZGX05BTk9TRUMoY3VyLCBzdGFydF90aW1lKTsKIAl9CiAKLQlJTlNU Ul9USU1FX1NFVF9DVVJSRU5UKGVuZF90aW1lKTsKKwlpZiAoZmFzdF90aW1pbmcpCisJCUlO U1RSX1RJTUVfU0VUX0NVUlJFTlRfRkFTVChlbmRfdGltZSk7CisJZWxzZQorCQlJTlNUUl9U SU1FX1NFVF9DVVJSRU5UKGVuZF90aW1lKTsKIAogCUlOU1RSX1RJTUVfU1VCVFJBQ1QoZW5k X3RpbWUsIHN0YXJ0X3RpbWUpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0YWJp bGl0eS9pbnN0cl90aW1lLmggYi9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1l LmgKaW5kZXggYzJjZWE3NWI3YzguLjMzZTUwNmYzNTI2IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKKysrIGIvc3JjL2luY2x1ZGUvcG9ydGFi aWxpdHkvaW5zdHJfdGltZS5oCkBAIC0xMTIsMTAgKzExMiwxMyBAQCBleHRlcm4gaW50NjQg bWF4X3RpY2tzX25vX292ZXJmbG93OwogICovCiAjaWYgZGVmaW5lZChfX2Rhcndpbl9fKSAm JiBkZWZpbmVkKENMT0NLX01PTk9UT05JQ19SQVcpCiAjZGVmaW5lIFBHX0lOU1RSX0NMT0NL CUNMT0NLX01PTk9UT05JQ19SQVcKKyNkZWZpbmUgUEdfSU5TVFJfQ0xPQ0tfTkFNRQkiY2xv Y2tfZ2V0dGltZSAoQ0xPQ0tfTU9OT1RPTklDX1JBVykiCiAjZWxpZiBkZWZpbmVkKENMT0NL X01PTk9UT05JQykKICNkZWZpbmUgUEdfSU5TVFJfQ0xPQ0sJQ0xPQ0tfTU9OT1RPTklDCisj ZGVmaW5lIFBHX0lOU1RSX0NMT0NLX05BTUUJImNsb2NrX2dldHRpbWUgKENMT0NLX01PTk9U T05JQykiCiAjZWxzZQogI2RlZmluZSBQR19JTlNUUl9DTE9DSwlDTE9DS19SRUFMVElNRQor I2RlZmluZSBQR19JTlNUUl9DTE9DS19OQU1FCSJjbG9ja19nZXR0aW1lIChDTE9DS19SRUFM VElNRSkiCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoX194ODZfNjRfXykgJiYgZGVmaW5lZChf X2xpbnV4X18pCkBAIC0xNzQsNyArMTc3LDcgQEAgcGdfZ2V0X3RpY2tzKHZvaWQpCiB9CiAK IHN0YXRpYyBpbmxpbmUgaW50NjRfdAotcGdfdGlja3NfdG9fbnMoaW5zdHJfdGltZSB0KQor cGdfdGlja3NfdG9fbnMoaW50NjQgdGlja3MpCiB7CiAJLyoKIAkgKiBXb3VsZCBtdWx0aXBs aWNhdGlvbiBvdmVyZmxvdz8gSWYgc28gcGVyZm9ybSBjb21wdXRhdGlvbiBpbiB0d28gcGFy dHMuCkBAIC0xODMsNyArMTg2LDcgQEAgcGdfdGlja3NfdG9fbnMoaW5zdHJfdGltZSB0KQog CSAqLwogCWludDY0CQlucyA9IDA7CiAKLQlpZiAodW5saWtlbHkodC50aWNrcyA+IG1heF90 aWNrc19ub19vdmVyZmxvdykpCisJaWYgKHVubGlrZWx5KHRpY2tzID4gbWF4X3RpY2tzX25v X292ZXJmbG93KSkKIAl7CiAJCS8qCiAJCSAqIENvbXB1dGUgaG93IG9mdGVuIHRoZSBtYXhp bXVtIG51bWJlciBvZiB0aWNrcyBmaXRzIGNvbXBsZXRlbHkgaW50bwpAQCAtMTkyLDcgKzE5 NSw3IEBAIHBnX3RpY2tzX3RvX25zKGluc3RyX3RpbWUgdCkKIAkJICogdmFsdWUuIEluIGEg Mm5kIHN0ZXAgd2UgYWRqdXN0IHRoZSBudW1iZXIgb2YgZWxhcHNlZCB0aWNrcyBhbmQKIAkJ ICogY29udmVydCB0aGUgcmVtYWluaW5nIHRpY2tzLgogCQkgKi8KLQkJaW50NjQJCWNvdW50 ID0gdC50aWNrcyAvIG1heF90aWNrc19ub19vdmVyZmxvdzsKKwkJaW50NjQJCWNvdW50ID0g dGlja3MgLyBtYXhfdGlja3Nfbm9fb3ZlcmZsb3c7CiAJCWludDY0CQltYXhfbnMgPSBtYXhf dGlja3Nfbm9fb3ZlcmZsb3cgKiB0aWNrc19wZXJfbnNfc2NhbGVkIC8gVElDS1NfVE9fTlNf UFJFQ0lTSU9OOwogCiAJCW5zID0gbWF4X25zICogY291bnQ7CkBAIC0yMDEsMTEgKzIwNCwx MSBAQCBwZ190aWNrc190b19ucyhpbnN0cl90aW1lIHQpCiAJCSAqIFN1YnRyYWN0IHRoZSB0 aWNrcyB0aGF0IHdlIG5vdyBhbHJlYWR5IGFjY291bnRlZCBmb3IsIHNvIHRoYXQgdGhleQog CQkgKiBkb24ndCBnZXQgY291bnRlZCB0d2ljZS4KIAkJICovCi0JCXQudGlja3MgLT0gY291 bnQgKiBtYXhfdGlja3Nfbm9fb3ZlcmZsb3c7Ci0JCUFzc2VydCh0LnRpY2tzID49IDApOwor CQl0aWNrcyAtPSBjb3VudCAqIG1heF90aWNrc19ub19vdmVyZmxvdzsKKwkJQXNzZXJ0KHRp Y2tzID49IDApOwogCX0KIAotCW5zICs9IHQudGlja3MgKiB0aWNrc19wZXJfbnNfc2NhbGVk IC8gVElDS1NfVE9fTlNfUFJFQ0lTSU9OOworCW5zICs9IHRpY2tzICogdGlja3NfcGVyX25z X3NjYWxlZCAvIFRJQ0tTX1RPX05TX1BSRUNJU0lPTjsKIAlyZXR1cm4gbnM7CiB9CiAKQEAg LTIyNiwxNCArMjI5LDE0IEBAIHBnX2luaXRpYWxpemVfZ2V0X3RpY2tzKCkKICNkZWZpbmUg SU5TVFJfVElNRV9TRVRfQ1VSUkVOVCh0KSBcCiAJKCh0KSA9IHBnX2dldF90aWNrcygpKQog Ci0jZGVmaW5lIElOU1RSX1RJTUVfR0VUX05BTk9TRUModCkgXAotCXBnX3RpY2tzX3RvX25z KHQpCi0KKyNkZWZpbmUgSU5TVFJfVElNRV9USUNLU19UT19OQU5PU0VDKHRpY2tzKSBcCisJ KHBnX3RpY2tzX3RvX25zKHRpY2tzKSkKIAogI2Vsc2UJCQkJCQkJLyogV0lOMzIgKi8KIAog CiAvKiBVc2UgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoKSAqLworI2RlZmluZSBQR19JTlNU Ul9DTE9DS19OQU1FCSJRdWVyeVBlcmZvcm1hbmNlQ291bnRlciIKIAogLyogaGVscGVyIGZv ciBJTlNUUl9USU1FX1NFVF9DVVJSRU5UIC8gSU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9GQVNU ICovCiBzdGF0aWMgaW5saW5lIGluc3RyX3RpbWUKQEAgLTI2NSw4ICsyNjgsOCBAQCBHZXRU aW1lckZyZXF1ZW5jeSh2b2lkKQogI2RlZmluZSBJTlNUUl9USU1FX1NFVF9DVVJSRU5UKHQp IFwKIAkoKHQpID0gcGdfcXVlcnlfcGVyZm9ybWFuY2VfY291bnRlcigpKQogCi0jZGVmaW5l IElOU1RSX1RJTUVfR0VUX05BTk9TRUModCkgXAotCSgoaW50NjQpICgodCkudGlja3MgKiAo KGRvdWJsZSkgTlNfUEVSX1MgLyBHZXRUaW1lckZyZXF1ZW5jeSgpKSkpCisjZGVmaW5lIElO U1RSX1RJTUVfVElDS1NfVE9fTkFOT1NFQyh0aWNrcykgXAorCSgoaW50NjQpICgodGlja3Mp ICogKChkb3VibGUpIE5TX1BFUl9TIC8gR2V0VGltZXJGcmVxdWVuY3koKSkpKQogCiAjZW5k aWYJCQkJCQkJLyogV0lOMzIgKi8KIApAQCAtMjg1LDEyICsyODgsMTggQEAgR2V0VGltZXJG cmVxdWVuY3kodm9pZCkKICNkZWZpbmUgSU5TVFJfVElNRV9TVUJUUkFDVCh4LHkpIFwKIAko KHgpLnRpY2tzIC09ICh5KS50aWNrcykKIAorI2RlZmluZSBJTlNUUl9USU1FX0RJRkZfTkFO T1NFQyh4LHkpIFwKKwkoSU5TVFJfVElNRV9USUNLU19UT19OQU5PU0VDKCh4KS50aWNrcyAt ICh5KS50aWNrcykpCisKICNkZWZpbmUgSU5TVFJfVElNRV9BQ0NVTV9ESUZGKHgseSx6KSBc CiAJKCh4KS50aWNrcyArPSAoeSkudGlja3MgLSAoeikudGlja3MpCiAKICNkZWZpbmUgSU5T VFJfVElNRV9MVCh4LHkpIFwKIAkoKHgpLnRpY2tzID4gKHkpLnRpY2tzKQogCisjZGVmaW5l IElOU1RSX1RJTUVfR0VUX05BTk9TRUModCkgXAorCShJTlNUUl9USU1FX1RJQ0tTX1RPX05B Tk9TRUMoKHQpLnRpY2tzKSkKKwogI2RlZmluZSBJTlNUUl9USU1FX0dFVF9ET1VCTEUodCkg XAogCSgoZG91YmxlKSBJTlNUUl9USU1FX0dFVF9OQU5PU0VDKHQpIC8gTlNfUEVSX1MpCiAK LS0gCjIuNTEuMAoK --------------IImi0tp1SoeVM01s2c01rFVy Content-Type: text/x-patch; charset=UTF-8; name="v3-0001-Use-time-stamp-counter-to-measure-time-on-Linux-x.patch" Content-Disposition: attachment; filename*0="v3-0001-Use-time-stamp-counter-to-measure-time-on-Linux-x.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzNzUzMjljMTFiNGIzMjI5NzBhMGQ4NTU0MDk2ZjQ3NDNmNjJhZjFkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpE YXRlOiBGcmksIDI1IEp1bCAyMDI1IDE3OjU3OjIwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2 MyAxLzNdIFVzZSB0aW1lIHN0YW1wIGNvdW50ZXIgdG8gbWVhc3VyZSB0aW1lIG9uIExpbnV4 L3g4NgoKV2Ugc3dpdGNoIHRvIHVzaW5nIHRoZSB0aW1lIHN0YW1wIGNvdW50ZXIgKFRTQykg aW5zdGVhZCBvZiBjbG9ja19nZXR0aW1lKCkKdG8gcmVkdWNlIG92ZXJoZWFkIG9mIEVYUExB SU4gKEFOQUxZWkUsIFRJTUUgT04pLiBUZXN0cyBzaG93ZWQgdGhhdCBydW50aW1lCmlzIHJl ZHVjZWQgYnkgYXJvdW5kIDEwJSBmb3IgcXVlcmllcyBtb3ZpbmcgbG90cyBvZiByb3dzIHRo cm91Z2ggdGhlIHBsYW4uCgpGb3Igbm93IHRoaXMgaXMgb25seSBlbmFibGVkIG9uIExpbnV4 L3g4NiwgaW4gY2FzZSB0aGUgc3lzdGVtIGNsb2Nrc291cmNlIGlzCnJlcG9ydGVkIGFzIFRT Qy4gUmVseWluZyBvbiB0aGUgTGludXgga2VybmVsIHNpbXBsaWZpZXMgdGhlIGxvZ2ljIHRv IGRldGVjdAppZiB0aGUgcHJlc2VudCBUU0MgaXMgdXNhYmxlIChmcmVxdWVuY3kgaW52YXJp YW50LCBzeW5jaHJvbml6ZWQgYmV0d2Vlbgpzb2NrZXRzLCBldGMuKS4gSW4gYWxsIG90aGVy IGNhc2VzIHdlIGZhbGxiYWNrIHRvIGNsb2NrX2dldHRpbWUoKS4KCk5vdGUsIHRoYXQgd2Ug aW50ZW50aW9uYWxseSB1c2UgUkRUU0MgaW4gdGhlIGZhc3QgcGF0aHMsIHJhdGhlciB0aGFu IFJEVFNDUC4KUkRUU0NQIHdhaXRzIGZvciBvdXRzdGFuZGluZyBpbnN0cnVjdGlvbnMgdG8g cmV0aXJlIG9uIG91dC1vZi1vcmRlciBDUFVzLgpUaGlzIGFkZHMgbm90aWNhYmx5IGZvciBs aXR0bGUgYmVuZWZpdCBpbiB0aGUgdHlwaWNhbCBJbnN0clN0YXJ0Tm9kZSgpIC8KSW5zdHJT dG9wTm9kZSgpIHVzZSBjYXNlLiBUaGUgbWFjcm8gdG8gYmUgdXNlZCBpbiBzdWNoIGNhc2Vz IGlzIGNhbGxlZApJTlNUUl9USU1FX1NFVF9DVVJSRU5UX0ZBU1QoKS4gVGhlIG9yaWdpbmFs IG1hY3JvIElOU1RSX1RJTUVfU0VUX0NVUlJFTlQoKQp1c2VzIFJEVFNDUCBhbmQgaXMgc3Vw cG9zZWQgdG8gYmUgdXNlZCB3aGVuIHByZWNpc2lvbiBpcyBtb3JlIGltcG9ydGFudAp0aGFu IHBlcmZvcm1hbmNlLgoKQXV0aG9yOiBEYXZpZCBHZWllciA8Z2VpZGF2LnBnQGdtYWlsLmNv bT4KQXV0aG9yOiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+CkF1dGhvcjog THVrYXMgRml0dGwgPGx1a2FzQGZpdHRsLmNvbT4KUmV2aWV3ZWQtYnk6CkRpc2N1c3Npb246 IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC8yMDIwMDYxMjIz MjgxMC5mNDZuYnFrZGhidXR6cWRnJTQwYWxhcDMuYW5hcmF6ZWwuZGUKLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL2luc3RydW1lbnQuYyAgICB8ICAxMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvaW5p dC9wb3N0aW5pdC5jICAgIHwgICAzICsKIHNyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMgICAg ICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BzcWwvc3RhcnR1cC5jICAgICAgICAgICAgICAg fCAgIDQgKwogc3JjL2NvbW1vbi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9jb21tb24vaW5zdHJfdGltZS5jICAgICAgICAgICAgICB8IDIwNiArKysrKysrKysr KysrKysrKysrKysrKysrKysKIHNyYy9jb21tb24vbWVzb24uYnVpbGQgICAgICAgICAgICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmggfCAxMzYg KysrKysrKysrKysrKysrLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDM0OCBpbnNlcnRpb25zKCsp LCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvY29tbW9uL2luc3Ry X3RpbWUuYwoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCAyMDg2 YTU3NzE5OS4uYWYyMjAxZjQyYmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMKQEAgLTM0NTgsOCArMzQ1OCw4IEBAIGNvdW50X25vbmRlbGV0YWJsZV9wYWdlcyhM VlJlbFN0YXRlICp2YWNyZWwsIGJvb2wgKmxvY2tfd2FpdGVyX2RldGVjdGVkKQogCQkJSU5T VFJfVElNRV9TRVRfQ1VSUkVOVChjdXJyZW50dGltZSk7CiAJCQllbGFwc2VkID0gY3VycmVu dHRpbWU7CiAJCQlJTlNUUl9USU1FX1NVQlRSQUNUKGVsYXBzZWQsIHN0YXJ0dGltZSk7Ci0J CQlpZiAoKElOU1RSX1RJTUVfR0VUX01JQ1JPU0VDKGVsYXBzZWQpIC8gMTAwMCkKLQkJCQk+ PSBWQUNVVU1fVFJVTkNBVEVfTE9DS19DSEVDS19JTlRFUlZBTCkKKwkJCWlmIChJTlNUUl9U SU1FX0dFVF9NSUxMSVNFQyhlbGFwc2VkKSA+PQorCQkJCVZBQ1VVTV9UUlVOQ0FURV9MT0NL X0NIRUNLX0lOVEVSVkFMKQogCQkJewogCQkJCWlmIChMb2NrSGFzV2FpdGVyc1JlbGF0aW9u KHZhY3JlbC0+cmVsLCBBY2Nlc3NFeGNsdXNpdmVMb2NrKSkKIAkJCQl7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9pbnN0cnVtZW50LmMKaW5kZXggZWRhYjkyYTBlYmUuLmViZGFkMzFjYTNiIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCkBAIC02Nyw5ICs2NywxMyBAQCBJbnN0cklu aXQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgaW50IGluc3RydW1lbnRfb3B0aW9ucykKIHZv aWQKIEluc3RyU3RhcnROb2RlKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCiB7Ci0JaWYgKGlu c3RyLT5uZWVkX3RpbWVyICYmCi0JCSFJTlNUUl9USU1FX1NFVF9DVVJSRU5UX0xBWlkoaW5z dHItPnN0YXJ0dGltZSkpCi0JCWVsb2coRVJST1IsICJJbnN0clN0YXJ0Tm9kZSBjYWxsZWQg dHdpY2UgaW4gYSByb3ciKTsKKwlpZiAoaW5zdHItPm5lZWRfdGltZXIpCisJeworCQlpZiAo IUlOU1RSX1RJTUVfSVNfWkVSTyhpbnN0ci0+c3RhcnR0aW1lKSkKKwkJCWVsb2coRVJST1Is ICJJbnN0clN0YXJ0Tm9kZSBjYWxsZWQgdHdpY2UgaW4gYSByb3ciKTsKKwkJZWxzZQorCQkJ SU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9GQVNUKGluc3RyLT5zdGFydHRpbWUpOworCX0KIAog CS8qIHNhdmUgYnVmZmVyIHVzYWdlIHRvdGFscyBhdCBub2RlIGVudHJ5LCBpZiBuZWVkZWQg Ki8KIAlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UpCkBAIC05NSw3ICs5OSw3IEBAIEluc3Ry U3RvcE5vZGUoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpCiAJCWlm IChJTlNUUl9USU1FX0lTX1pFUk8oaW5zdHItPnN0YXJ0dGltZSkpCiAJCQllbG9nKEVSUk9S LCAiSW5zdHJTdG9wTm9kZSBjYWxsZWQgd2l0aG91dCBzdGFydCIpOwogCi0JCUlOU1RSX1RJ TUVfU0VUX0NVUlJFTlQoZW5kdGltZSk7CisJCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlRfRkFT VChlbmR0aW1lKTsKIAkJSU5TVFJfVElNRV9BQ0NVTV9ESUZGKGluc3RyLT5jb3VudGVyLCBl bmR0aW1lLCBpbnN0ci0+c3RhcnR0aW1lKTsKIAogCQlJTlNUUl9USU1FX1NFVF9aRVJPKGlu c3RyLT5zdGFydHRpbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9w b3N0aW5pdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCmluZGV4IDNm NDAxZmFmM2RlLi5jMzM5YzM1YjI1ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv aW5pdC9wb3N0aW5pdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQu YwpAQCAtODA5LDYgKzgwOSw5IEBAIEluaXRQb3N0Z3Jlcyhjb25zdCBjaGFyICppbl9kYm5h bWUsIE9pZCBkYm9pZCwKIAkvKiBJbml0aWFsaXplIHBvcnRhbCBtYW5hZ2VyICovCiAJRW5h YmxlUG9ydGFsTWFuYWdlcigpOwogCisJLyogaW5pdGlhbGl6ZSBoaWdoLXByZWNpc2lvbiBp bnRlcnZhbCB0aW1pbmcgKi8KKwlJTlNUUl9USU1FX0lOSVRJQUxJWkUoKTsKKwogCS8qCiAJ ICogTG9hZCByZWxjYWNoZSBlbnRyaWVzIGZvciB0aGUgc2hhcmVkIHN5c3RlbSBjYXRhbG9n cy4gIFRoaXMgbXVzdCBjcmVhdGUKIAkgKiBhdCBsZWFzdCBlbnRyaWVzIGZvciBwZ19kYXRh YmFzZSBhbmQgY2F0YWxvZ3MgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5jIGIvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2gu YwppbmRleCA1ODczNTg3MWMxNy4uN2I2NGZkYWVkMzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdiZW5jaC9wZ2JlbmNoLmMKKysrIGIvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYwpAQCAt NzMzNCw2ICs3MzM0LDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWluaXRS YW5kb21TdGF0ZSgmc3RhdGVbaV0uY3NfZnVuY19ycyk7CiAJfQogCisJLyogaW5pdGlhbGl6 ZSBoaWdoLXByZWNpc2lvbiBpbnRlcnZhbCB0aW1pbmcgKi8KKwlJTlNUUl9USU1FX0lOSVRJ QUxJWkUoKTsKKwogCS8qIG9wZW5pbmcgY29ubmVjdGlvbi4uLiAqLwogCWNvbiA9IGRvQ29u bmVjdCgpOwogCWlmIChjb24gPT0gTlVMTCkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9z dGFydHVwLmMgYi9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCmluZGV4IDlhMzk3ZWM4N2I3Li5h MGIzYmFmZTIwYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYworKysgYi9z cmMvYmluL3BzcWwvc3RhcnR1cC5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiaGVs cC5oIgogI2luY2x1ZGUgImlucHV0LmgiCiAjaW5jbHVkZSAibWFpbmxvb3AuaCIKKyNpbmNs dWRlICJwb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgiCiAjaW5jbHVkZSAic2V0dGluZ3MuaCIK IAogLyoKQEAgLTMyNyw2ICszMjgsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAKIAlQUXNldE5vdGljZVByb2Nlc3Nvcihwc2V0LmRiLCBOb3RpY2VQcm9jZXNzb3IsIE5V TEwpOwogCisJLyogaW5pdGlhbGl6ZSBoaWdoLXByZWNpc2lvbiBpbnRlcnZhbCB0aW1pbmcg Ki8KKwlJTlNUUl9USU1FX0lOSVRJQUxJWkUoKTsKKwogCVN5bmNWYXJpYWJsZXMoKTsKIAog CWlmIChvcHRpb25zLmxpc3RfZGJzKQpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9NYWtlZmls ZSBiL3NyYy9jb21tb24vTWFrZWZpbGUKaW5kZXggMmM3MjBjYWE1MDkuLjFhMmZiYmU4ODdm IDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL01ha2VmaWxlCisrKyBiL3NyYy9jb21tb24vTWFr ZWZpbGUKQEAgLTU5LDYgKzU5LDcgQEAgT0JKU19DT01NT04gPSBcCiAJZmlsZV9wZXJtLm8g XAogCWZpbGVfdXRpbHMubyBcCiAJaGFzaGZuLm8gXAorCWluc3RyX3RpbWUubyBcCiAJaXAu byBcCiAJanNvbmFwaS5vIFwKIAlrZXl3b3Jkcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9jb21t b24vaW5zdHJfdGltZS5jIGIvc3JjL2NvbW1vbi9pbnN0cl90aW1lLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZkZjQ3Njk5ZjIwCi0tLSAvZGV2L251bGwK KysrIGIvc3JjL2NvbW1vbi9pbnN0cl90aW1lLmMKQEAgLTAsMCArMSwyMDYgQEAKKy8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGluc3RyX3RpbWUuYworICoJICAgTm9uLWlubGlu ZSBwYXJ0cyBvZiB0aGUgcG9ydGFibGUgaGlnaC1wcmVjaXNpb24gaW50ZXJ2YWwgdGltaW5n CisgKgkgaW1wbGVtZW50YXRpb24KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIw MjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL3BvcnQvaW5zdHJfdGltZS5jCisgKgor ICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisj aWYgZGVmaW5lZChIQVZFX19HRVRfQ1BVSUQpIHx8IChkZWZpbmVkKEhBVkVfX0NQVUlERVgp ICYmICFkZWZpbmVkKF9NU0NfVkVSKSkKKyNpbmNsdWRlIDxjcHVpZC5oPgorI2VuZGlmCisK KyNpZiBkZWZpbmVkKEhBVkVfX0NQVUlEKSB8fCAoZGVmaW5lZChIQVZFX19DUFVJREVYKSAm JiBkZWZpbmVkKF9NU0NfVkVSKSkKKyNpbmNsdWRlIDxpbnRyaW4uaD4KKyNlbmRpZgorCisj aW5jbHVkZSAicG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oIgorCisjaWZuZGVmIFdJTjMyCisv KgorICogU3RvcmVzIHdoYXQgdGhlIG51bWJlciBvZiBjeWNsZXMgbmVlZHMgdG8gYmUgbXVs dGlwbGllZCB3aXRoIHRvIGVuZCB1cAorICogd2l0aCBuYW5vc2Vjb25kcyB1c2luZyBpbnRl Z2VyIG1hdGguIFNlZSBjb21tZW50IGluIHBnX2luaXRpYWxpemVfcmR0c2MoKQorICogZm9y IG1vcmUgZGV0YWlscy4KKyAqCisgKiBCeSBkZWZhdWx0IGFzc3VtZSB3ZSBhcmUgdXNpbmcg Y2xvY2tfZ2V0dGltZSgpIGFzIGEgZmFsbGJhY2sgd2hpY2ggdXNlcworICogbmFub3NlY29u ZHMgYXMgdGlja3MuIEhlbmNlLCB3ZSBzZXQgdGhlIG11bHRpcGxpZXIgdG8gdGhlIHByZWNp c2lvbiBzY2FsYXIKKyAqIHNvIHRoYXQgdGhlIGRpdmlzaW9uIGluIElOU1RSX1RJTUVfR0VU X05BTk9TRUMoKSB3b24ndCBjaGFuZ2UgdGhlIG5hbm9zZWNvbmRzLgorICoKKyAqIFdoZW4g dXNpbmcgdGhlIFJEVFNDIGluc3RydWN0aW9uIGRpcmVjdGx5IHRoaXMgaXMgZmlsbGVkIGlu IGR1cmluZyBpbml0aWFsaXphdGlvbgorICogYmFzZWQgb24gdGhlIHJlbGV2YW50IENQVUlE IGZpZWxkcy4KKyAqLworaW50NjQJCXRpY2tzX3Blcl9uc19zY2FsZWQgPSBUSUNLU19UT19O U19QUkVDSVNJT047CitpbnQ2NAkJdGlja3NfcGVyX3NlYyA9IE5TX1BFUl9TOworaW50NjQJ CW1heF90aWNrc19ub19vdmVyZmxvdyA9IFBHX0lOVDY0X01BWCAvIFRJQ0tTX1RPX05TX1BS RUNJU0lPTjsKKworI2lmIGRlZmluZWQoX194ODZfNjRfXykgJiYgZGVmaW5lZChfX2xpbnV4 X18pCisvKgorICogSW5kaWNhdGVzIGlmIFJEVFNDIGNhbiBiZSB1c2VkIChMaW51eC94ODYg b25seSwgd2hlbiBPUyB1c2VzIFRTQyBjbG9ja3NvdXJjZSkKKyAqLworYm9vbAkJaGFzX3Jk dHNjID0gZmFsc2U7CisKKy8qCisgKiBJbmRpY2F0ZXMgaWYgUkRUU0NQIGNhbiBiZSB1c2Vk LiBUcnVlIGlmIFJEVFNDIGNhbiBiZSB1c2VkIGFuZCBSRFRTQ1AgaXMgYXZhaWxhYmxlLgor ICovCitib29sCQloYXNfcmR0c2NwID0gZmFsc2U7CisKKyNkZWZpbmUgQ1BVSURfSFlQRVJW SVNPUl9WTVdBUkUod29yZHMpICh3b3Jkc1sxXSA9PSAweDYxNzc0ZDU2ICYmIHdvcmRzWzJd ID09IDB4NGQ1NjY1NzIgJiYgd29yZHNbM10gPT0gMHg2NTcyNjE3NykgLyogVk13YXJlVk13 YXJlICovCisjZGVmaW5lIENQVUlEX0hZUEVSVklTT1JfS1ZNKHdvcmRzKSAod29yZHNbMV0g PT0gMHg0YjRkNTY0YiAmJiB3b3Jkc1syXSA9PSAweDU2NGI0ZDU2ICYmIHdvcmRzWzNdID09 IDB4MDAwMDAwNGQpCS8qIEtWTUtWTUtWTSAqLworCitzdGF0aWMgYm9vbAorZ2V0X3RzY19m cmVxdWVuY3lfa2h6KHVpbnQzMiAqdHNjX2ZyZXEpCit7CisJdWludDMyCQlyWzRdID0gezAs IDAsIDAsIDB9OworCisjaWYgZGVmaW5lZChIQVZFX19HRVRfQ1BVSUQpCisJX19nZXRfY3B1 aWQoMHgxNSwgJnJbMF0gLyogZGVub21pbmF0b3IgKi8gLCAmclsxXSAvKiBudW1lcmF0b3Ig Ki8gLCAmclsyXSAvKiBoeiAqLyAsICZyWzNdKTsKKyNlbGlmIGRlZmluZWQoSEFWRV9fQ1BV SUQpCisJX19jcHVpZChyLCAweDE1KTsKKyNlbHNlCisjZXJyb3IgY3B1aWQgaW5zdHJ1Y3Rp b24gbm90IGF2YWlsYWJsZQorI2VuZGlmCisKKwlpZiAoclsyXSA+IDApCisJeworCQlpZiAo clswXSA9PSAwIHx8IHJbMV0gPT0gMCkKKwkJCXJldHVybiBmYWxzZTsKKworCQkqdHNjX2Zy ZXEgPSByWzJdIC8gMTAwMCAqIHJbMV0gLyByWzBdOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisK KwkvKiBTb21lIENQVXMgb25seSByZXBvcnQgZnJlcXVlbmN5IGluIDE2SCAqLworCisjaWYg ZGVmaW5lZChIQVZFX19HRVRfQ1BVSUQpCisJX19nZXRfY3B1aWQoMHgxNiwgJnJbMF0gLyog YmFzZV9taHogKi8gLCAmclsxXSwgJnJbMl0sICZyWzNdKTsKKyNlbGlmIGRlZmluZWQoSEFW RV9fQ1BVSUQpCisJX19jcHVpZChyLCAweDE2KTsKKyNlbHNlCisjZXJyb3IgY3B1aWQgaW5z dHJ1Y3Rpb24gbm90IGF2YWlsYWJsZQorI2VuZGlmCisKKwlpZiAoclswXSA+IDApCisJewor CQkqdHNjX2ZyZXEgPSByWzBdICogMTAwMDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJLyoK KwkgKiBDaGVjayBpZiB3ZSBoYXZlIGEgS1ZNIG9yIFZNd2FyZSBIeXBlcnZpc29yIHBhc3Np bmcgZG93biBUU0MgZnJlcXVlbmN5CisJICogdG8gdXMgaW4gYSBndWVzdCBWTQorCSAqCisJ ICogTm90ZSB0aGF0IGFjY2Vzc2luZyB0aGUgMHg0MDAwMDAwMCBsZWFmIGZvciBIeXBlcnZp c29yIGluZm8gcmVxdWlyZXMKKwkgKiB1c2Ugb2YgX19jcHVpZGV4IHRvIHNldCBFQ1ggdG8g MC4gVGhlIHNpbWlsYXIgX19nZXRfY3B1aWRfY291bnQKKwkgKiBmdW5jdGlvbiBkb2VzIG5v dCB3b3JrIGFzIGV4cGVjdGVkIHNpbmNlIGl0IGNvbnRhaW5zIGEgY2hlY2sgZm9yCisJICog X19nZXRfY3B1aWRfbWF4LCB3aGljaCBoYXMgYmVlbiBvYnNlcnZlZCB0byBiZSBsb3dlciB0 aGFuIHRoZSBzcGVjaWFsCisJICogSHlwZXJ2aXNvciBsZWFmLgorCSAqLworI2lmIGRlZmlu ZWQoSEFWRV9fQ1BVSURFWCkKKwlfX2NwdWlkZXgoKGludDMyICopIHIsIDB4NDAwMDAwMDAs IDApOworCWlmIChyWzBdID49IDB4NDAwMDAwMTAgJiYgKENQVUlEX0hZUEVSVklTT1JfVk1X QVJFKHIpIHx8IENQVUlEX0hZUEVSVklTT1JfS1ZNKHIpKSkKKwl7CisJCV9fY3B1aWRleCgo aW50MzIgKikgciwgMHg0MDAwMDAxMCwgMCk7CisJCWlmIChyWzBdID4gMCkKKwkJeworCQkJ KnRzY19mcmVxID0gclswXTsKKwkJCXJldHVybiB0cnVlOworCQl9CisJfQorI2VuZGlmCisK KwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sCitpc19yZHRzY3BfYXZhaWxhYmxl KCkKK3sKKwl1aW50MzIJCXJbNF0gPSB7MCwgMCwgMCwgMH07CisKKyNpZiBkZWZpbmVkKEhB VkVfX0dFVF9DUFVJRCkKKwlpZiAoIV9fZ2V0X2NwdWlkKDB4ODAwMDAwMDEsICZyWzBdLCAm clsxXSwgJnJbMl0sICZyWzNdKSkKKwkJcmV0dXJuIGZhbHNlOworI2VsaWYgZGVmaW5lZChI QVZFX19DUFVJRCkKKwlfX2NwdWlkKHIsIDB4ODAwMDAwMDEpOworI2Vsc2UKKyNlcnJvciBj cHVpZCBpbnN0cnVjdGlvbiBub3QgYXZhaWxhYmxlCisjZW5kaWYKKworCXJldHVybiAoclsz XSAmICgxIDw8IDI3KSkgIT0gMDsKK30KKworLyoKKyAqIERlY2lkZSB3aGV0aGVyIHdlIHVz ZSB0aGUgUkRUU0MgaW5zdHJ1Y3Rpb24gYXQgcnVudGltZSwgZm9yIExpbnV4L3g4NiwKKyAq IGluc3RlYWQgb2YgaW5jdXJyaW5nIHRoZSBvdmVyaGVhZCBvZiBhIGZ1bGwgY2xvY2tfZ2V0 dGltZSgpIGNhbGwuCisgKgorICogVGhpcyBjYW4ndCBiZSByZWxpYWJseSBkZXRlcm1pbmVk IGF0IGNvbXBpbGUgdGltZSwgc2luY2UgdGhlCisgKiBhdmFpbGFiaWxpdHkgb2YgYW4gImlu dmFyaWFudCIgVFNDICh0aGF0IGlzIG5vdCBhZmZlY3RlZCBieSBDUFUKKyAqIGZyZXF1ZW5j eSBjaGFuZ2VzKSBpcyBkZXBlbmRlbnQgb24gdGhlIENQVSBhcmNoaXRlY3R1cmUuIEFkZGl0 aW9uYWxseSwKKyAqIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSBUU0MgYXZhaWxhYmlsaXR5IGlz IGltcGFjdGVkIGJ5IHZpcnR1YWxpemF0aW9uLAorICogd2hlcmUgYSBzaW1wbGUgY3B1aWQg ZmVhdHVyZSBjaGVjayB3b3VsZCBub3QgYmUgZW5vdWdoLgorICoKKyAqIFNpbmNlIExpbnV4 IGFscmVhZHkgZG9lcyBhIHNpZ25pZmljYW50IGFtb3VudCBvZiB3b3JrIHRvIGRldGVybWlu ZQorICogd2hldGhlciBUU0MgaXMgYSB2aWFibGUgY2xvY2sgc291cmNlLCBkZWNpZGUgYmFz ZWQgb24gdGhhdC4KKyAqLwordm9pZAorcGdfaW5pdGlhbGl6ZV9yZHRzYyh2b2lkKQorewor CUZJTEUJICAgKmZwID0gZm9wZW4oIi9zeXMvZGV2aWNlcy9zeXN0ZW0vY2xvY2tzb3VyY2Uv Y2xvY2tzb3VyY2UwL2N1cnJlbnRfY2xvY2tzb3VyY2UiLCAiciIpOworCisJaWYgKGZwKQor CXsKKwkJY2hhcgkJYnVmWzEyOF07CisKKwkJaWYgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1Ziks IGZwKSAhPSBOVUxMICYmIHN0cmNtcChidWYsICJ0c2NcbiIpID09IDApCisJCXsKKwkJCS8q CisJCQkgKiBDb21wdXRlIGJhc2VsaW5lIENQVSBwZWZvcm1hbmNlLCBkZXRlcm1pbmVzIHNw ZWVkIGF0IHdoaWNoCisJCQkgKiBSRFRTQyBhZHZhbmNlcy4KKwkJCSAqLworCQkJdWludDMy CQl0c2NfZnJlcTsKKworCQkJaWYgKGdldF90c2NfZnJlcXVlbmN5X2toeigmdHNjX2ZyZXEp KQorCQkJeworCQkJCS8qCisJCQkJICogVGlja3MgdG8gbmFub3NlY29uZHMgY29udmVyc2lv biByZXF1aXJlcyBmbG9hdGluZyBwb2ludAorCQkJCSAqIG1hdGggYmVjYXVzZSBiZWNhdXNl OgorCQkJCSAqCisJCQkJICogc2VjID0gdGlja3MgLyBmcmVxdWVuY3lfaHogbnMgID0gdGlj a3MgLyBmcmVxdWVuY3lfaHogKgorCQkJCSAqIDEsMDAwLDAwMCwwMDAgbnMgID0gdGlja3Mg KiAoMSwwMDAsMDAwLDAwMCAvIGZyZXF1ZW5jeV9oeikKKwkJCQkgKiBucyAgPSB0aWNrcyAq ICgxLDAwMCwwMDAgLyBmcmVxdWVuY3lfa2h6KSA8LS0gbm93IGluCisJCQkJICoga2lsb2hl cnR6CisJCQkJICoKKwkJCQkgKiBIZXJlLCAnbnMnIGlzIHVzdWFsbHkgYSBmbG9hdGluZyBu dW1iZXIuIEZvciBleGFtcGxlIGZvciBhCisJCQkJICogMi41IEdIeiBDUFUgdGhlIHNjYWxp bmcgZmFjdG9yIGJlY29tZXMgMSwwMDAsMDAwIC8KKwkJCQkgKiAyLDUwMCwwMDAgPSAxLjIu CisJCQkJICoKKwkJCQkgKiBUbyBiZSBhYmxlIHRvIHVzZSBpbnRlZ2VyIG1hdGggd2Ugd29y ayBhcm91bmQgdGhlIGxhY2sgb2YKKwkJCQkgKiBwcmVjaXNpb24uIFdlIGZpcnN0IHNjYWxl IHRoZSBpbnRlZ2VyIHVwIGFuZCBhZnRlciB0aGUKKwkJCQkgKiBtdWx0aXBsaWNhdGlvbiBi eSB0aGUgbnVtYmVyIG9mIHRpY2tzIGluCisJCQkJICogSU5TVFJfVElNRV9HRVRfTkFOT1NF QygpIHdlIGRpdmlkZSBhZ2FpbiBieSB0aGUgc2FtZSB2YWx1ZS4KKwkJCQkgKiBXZSBwaWNr ZWQgdGhlIHNjYWxlciBzdWNoIHRoYXQgaXQgcHJvdmlkZXMgZW5vdWdoIHByZWNpc2lvbgor CQkJCSAqIGFuZCBpcyBhIHBvd2VyLW9mLXR3byB3aGljaCBhbGxvd3MgZm9yIHNoaWZ0aW5n IGluc3RlYWQgb2YKKwkJCQkgKiBkb2luZyBhbiBpbnRlZ2VyIGRpdmlzaW9uLgorCQkJCSAq LworCQkJCXRpY2tzX3Blcl9uc19zY2FsZWQgPSBJTlQ2NENPTlNUKDEwMDAwMDApICogVElD S1NfVE9fTlNfUFJFQ0lTSU9OIC8gdHNjX2ZyZXE7CisJCQkJdGlja3NfcGVyX3NlYyA9IHRz Y19mcmVxICogMTAwMDsJLyogS0h6LT5IeiAqLworCQkJCW1heF90aWNrc19ub19vdmVyZmxv dyA9IFBHX0lOVDY0X01BWCAvIHRpY2tzX3Blcl9uc19zY2FsZWQ7CisKKwkJCQloYXNfcmR0 c2MgPSB0cnVlOworCQkJCWhhc19yZHRzY3AgPSBpc19yZHRzY3BfYXZhaWxhYmxlKCk7CisJ CQl9CisJCX0KKworCQlmY2xvc2UoZnApOworCX0KK30KKyNlbmRpZgkJCQkJCQkvKiBkZWZp bmVkKF9feDg2XzY0X18pICYmIGRlZmluZWQoX19saW51eF9fKSAqLworCisjZW5kaWYJCQkJ CQkJLyogV0lOMzIgKi8KZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vbWVzb24uYnVpbGQgYi9z cmMvY29tbW9uL21lc29uLmJ1aWxkCmluZGV4IGI3NTc2MThhOWM5Li4wNDJlZGI3NDczYSAx MDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9tZXNvbi5idWlsZAorKysgYi9zcmMvY29tbW9uL21l c29uLmJ1aWxkCkBAIC0xMyw2ICsxMyw3IEBAIGNvbW1vbl9zb3VyY2VzID0gZmlsZXMoCiAg ICdmaWxlX3Blcm0uYycsCiAgICdmaWxlX3V0aWxzLmMnLAogICAnaGFzaGZuLmMnLAorICAn aW5zdHJfdGltZS5jJywKICAgJ2lwLmMnLAogICAnanNvbmFwaS5jJywKICAgJ2tleXdvcmRz LmMnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5o IGIvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oCmluZGV4IDQ5MDU5M2Qx ODI1Li5jMmNlYTc1YjdjOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkv aW5zdHJfdGltZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BvcnRhYmlsaXR5L2luc3RyX3RpbWUu aApAQCAtNCw5ICs0LDExIEBACiAgKgkgIHBvcnRhYmxlIGhpZ2gtcHJlY2lzaW9uIGludGVy dmFsIHRpbWluZwogICoKICAqIFRoaXMgZmlsZSBwcm92aWRlcyBhbiBhYnN0cmFjdGlvbiBs YXllciB0byBoaWRlIHBvcnRhYmlsaXR5IGlzc3VlcyBpbgotICogaW50ZXJ2YWwgdGltaW5n LiAgT24gVW5peCB3ZSB1c2UgY2xvY2tfZ2V0dGltZSgpLCBhbmQgb24gV2luZG93cyB3ZSB1 c2UKLSAqIFF1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyKCkuICBUaGVzZSBtYWNyb3MgYWxzbyBn aXZlIHNvbWUgYnJlYXRoaW5nIHJvb20gdG8KLSAqIHVzZSBvdGhlciBoaWdoLXByZWNpc2lv bi10aW1pbmcgQVBJcy4KKyAqIGludGVydmFsIHRpbWluZy4gT24gTGludXgveDg2IHdlIHVz ZSB0aGUgcmR0c2MgaW5zdHJ1Y3Rpb24gd2hlbiBhIFRTQworICogY2xvY2tzb3VyY2UgaXMg YWxzbyB1c2VkIG9uIHRoZSBob3N0IE9TLiAgT3RoZXJ3aXNlLCBhbmQgb24gb3RoZXIKKyAq IFVuaXgtbGlrZSBzeXN0ZW1zIHdlIHVzZSBjbG9ja19nZXR0aW1lKCkgYW5kIG9uIFdpbmRv d3Mgd2UgdXNlCisgKiBRdWVyeVBlcmZvcm1hbmNlQ291bnRlcigpLiBUaGVzZSBtYWNyb3Mg YWxzbyBnaXZlIHNvbWUgYnJlYXRoaW5nCisgKiByb29tIHRvIHVzZSBvdGhlciBoaWdoLXBy ZWNpc2lvbi10aW1pbmcgQVBJcy4KICAqCiAgKiBUaGUgYmFzaWMgZGF0YSB0eXBlIGlzIGlu c3RyX3RpbWUsIHdoaWNoIGFsbCBjYWxsZXJzIHNob3VsZCB0cmVhdCBhcyBhbgogICogb3Bh cXVlIHR5cGVkZWYuICBpbnN0cl90aW1lIGNhbiBzdG9yZSBlaXRoZXIgYW4gYWJzb2x1dGUg dGltZSAob2YKQEAgLTE3LDEwICsxOSwxMSBAQAogICoKICAqIElOU1RSX1RJTUVfU0VUX1pF Uk8odCkJCQlzZXQgdCB0byB6ZXJvIChtZW1zZXQgaXMgYWNjZXB0YWJsZSB0b28pCiAgKgot ICogSU5TVFJfVElNRV9TRVRfQ1VSUkVOVCh0KQkJc2V0IHQgdG8gY3VycmVudCB0aW1lCisg KiBJTlNUUl9USU1FX1NFVF9DVVJSRU5UX0ZBU1QodCkJc2V0IHQgdG8gY3VycmVudCB0aW1l IHdpdGhvdXQgd2FpdGluZworICogCQkJCQkJCQkJZm9yIGluc3RydWN0aW9ucyBpbiBvdXQt b2Ytb3JkZXIgd2luZG93CiAgKgotICogSU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9MQVpZKHQp CXNldCB0IHRvIGN1cnJlbnQgdGltZSBpZiB0IGlzIHplcm8sCi0gKgkJCQkJCQkJCWV2YWx1 YXRlcyB0byB3aGV0aGVyIHQgY2hhbmdlZAorICogSU5TVFJfVElNRV9TRVRfQ1VSUkVOVCh0 KQkJc2V0IHQgdG8gY3VycmVudCB0aW1lIHdoaWxlIHdhaXRpbmcgZm9yCisgKiAJCQkJCQkJ CQlpbnN0cnVjdGlvbnMgaW4gT09PIHRvIHJldGlyZQogICoKICAqIElOU1RSX1RJTUVfQURE KHgsIHkpCQkJCXggKz0geQogICoKQEAgLTgxLDYgKzg0LDE1IEBAIHR5cGVkZWYgc3RydWN0 IGluc3RyX3RpbWUKIAogI2lmbmRlZiBXSU4zMgogCisvKgorICogTWFrZSBzdXJlIHRoaXMg aXMgYSBwb3dlci1vZi10d28sIHNvIHRoYXQgdGhlIGNvbXBpbGVyIGNhbiB0dXJuIHRoZQor ICogbXVsdGlwbGljYXRpb25zIGFuZCBkaXZpc2lvbnMgaW50byBzaGlmdHMuCisgKi8KKyNk ZWZpbmUgVElDS1NfVE9fTlNfUFJFQ0lTSU9OICgxPDwxNCkKKworZXh0ZXJuIGludDY0IHRp Y2tzX3Blcl9uc19zY2FsZWQ7CitleHRlcm4gaW50NjQgdGlja3NfcGVyX3NlYzsKK2V4dGVy biBpbnQ2NCBtYXhfdGlja3Nfbm9fb3ZlcmZsb3c7CiAKIC8qIFVzZSBjbG9ja19nZXR0aW1l KCkgKi8KIApAQCAtMTA2LDkgKzExOCwxOCBAQCB0eXBlZGVmIHN0cnVjdCBpbnN0cl90aW1l CiAjZGVmaW5lIFBHX0lOU1RSX0NMT0NLCUNMT0NLX1JFQUxUSU1FCiAjZW5kaWYKIAotLyog aGVscGVyIGZvciBJTlNUUl9USU1FX1NFVF9DVVJSRU5UICovCisjaWYgZGVmaW5lZChfX3g4 Nl82NF9fKSAmJiBkZWZpbmVkKF9fbGludXhfXykKKyNpbmNsdWRlIDx4ODZpbnRyaW4uaD4K KyNpbmNsdWRlIDxjcHVpZC5oPgorCitleHRlcm4gYm9vbCBoYXNfcmR0c2M7CitleHRlcm4g Ym9vbCBoYXNfcmR0c2NwOworCitleHRlcm4gdm9pZCBwZ19pbml0aWFsaXplX3JkdHNjKHZv aWQpOworI2VuZGlmCisKIHN0YXRpYyBpbmxpbmUgaW5zdHJfdGltZQotcGdfY2xvY2tfZ2V0 dGltZV9ucyh2b2lkKQorcGdfY2xvY2tfZ2V0dGltZSh2b2lkKQogewogCWluc3RyX3RpbWUJ bm93OwogCXN0cnVjdCB0aW1lc3BlYyB0bXA7CkBAIC0xMTksMTEgKzE0MCw5NCBAQCBwZ19j bG9ja19nZXR0aW1lX25zKHZvaWQpCiAJcmV0dXJuIG5vdzsKIH0KIAorc3RhdGljIGlubGlu ZSBpbnN0cl90aW1lCitwZ19nZXRfdGlja3NfZmFzdCh2b2lkKQoreworI2lmIGRlZmluZWQo X194ODZfNjRfXykgJiYgZGVmaW5lZChfX2xpbnV4X18pCisJaWYgKGhhc19yZHRzYykKKwl7 CisJCWluc3RyX3RpbWUJbm93OworCisJCW5vdy50aWNrcyA9IF9fcmR0c2MoKTsKKwkJcmV0 dXJuIG5vdzsKKwl9CisjZW5kaWYKKworCXJldHVybiBwZ19jbG9ja19nZXR0aW1lKCk7Cit9 CisKK3N0YXRpYyBpbmxpbmUgaW5zdHJfdGltZQorcGdfZ2V0X3RpY2tzKHZvaWQpCit7Cisj aWYgZGVmaW5lZChfX3g4Nl82NF9fKSAmJiBkZWZpbmVkKF9fbGludXhfXykKKwlpZiAoaGFz X3JkdHNjcCkKKwl7CisJCWluc3RyX3RpbWUJbm93OworCQl1aW50MzIJCXVudXNlZDsKKwor CQlub3cudGlja3MgPSBfX3JkdHNjcCgmdW51c2VkKTsKKwkJcmV0dXJuIG5vdzsKKwl9Cisj ZW5kaWYKKworCXJldHVybiBwZ19jbG9ja19nZXR0aW1lKCk7Cit9CisKK3N0YXRpYyBpbmxp bmUgaW50NjRfdAorcGdfdGlja3NfdG9fbnMoaW5zdHJfdGltZSB0KQoreworCS8qCisJICog V291bGQgbXVsdGlwbGljYXRpb24gb3ZlcmZsb3c/IElmIHNvIHBlcmZvcm0gY29tcHV0YXRp b24gaW4gdHdvIHBhcnRzLgorCSAqIENoZWNrIG92ZXJmbG93IHdpdGhvdXQgYWN0dWFsbHkg b3ZlcmZsb3dpbmcgdmlhOiBhICogYiA+IG1heCA8PT4gYSA+CisJICogbWF4IC8gYgorCSAq LworCWludDY0CQlucyA9IDA7CisKKwlpZiAodW5saWtlbHkodC50aWNrcyA+IG1heF90aWNr c19ub19vdmVyZmxvdykpCisJeworCQkvKgorCQkgKiBDb21wdXRlIGhvdyBvZnRlbiB0aGUg bWF4aW11bSBudW1iZXIgb2YgdGlja3MgZml0cyBjb21wbGV0ZWx5IGludG8KKwkJICogdGhl IG51bWJlciBvZiBlbGFwc2VkIHRpY2tzIGFuZCBjb252ZXJ0IHRoYXQgbnVtYmVyIGludG8K KwkJICogbmFub3NlY29uZHMuIFRoZW4gbXVsdGlwbHkgYnkgdGhlIGNvdW50IHRvIGFycml2 ZSBhdCB0aGUgZmluYWwKKwkJICogdmFsdWUuIEluIGEgMm5kIHN0ZXAgd2UgYWRqdXN0IHRo ZSBudW1iZXIgb2YgZWxhcHNlZCB0aWNrcyBhbmQKKwkJICogY29udmVydCB0aGUgcmVtYWlu aW5nIHRpY2tzLgorCQkgKi8KKwkJaW50NjQJCWNvdW50ID0gdC50aWNrcyAvIG1heF90aWNr c19ub19vdmVyZmxvdzsKKwkJaW50NjQJCW1heF9ucyA9IG1heF90aWNrc19ub19vdmVyZmxv dyAqIHRpY2tzX3Blcl9uc19zY2FsZWQgLyBUSUNLU19UT19OU19QUkVDSVNJT047CisKKwkJ bnMgPSBtYXhfbnMgKiBjb3VudDsKKworCQkvKgorCQkgKiBTdWJ0cmFjdCB0aGUgdGlja3Mg dGhhdCB3ZSBub3cgYWxyZWFkeSBhY2NvdW50ZWQgZm9yLCBzbyB0aGF0IHRoZXkKKwkJICog ZG9uJ3QgZ2V0IGNvdW50ZWQgdHdpY2UuCisJCSAqLworCQl0LnRpY2tzIC09IGNvdW50ICog bWF4X3RpY2tzX25vX292ZXJmbG93OworCQlBc3NlcnQodC50aWNrcyA+PSAwKTsKKwl9CisK KwlucyArPSB0LnRpY2tzICogdGlja3NfcGVyX25zX3NjYWxlZCAvIFRJQ0tTX1RPX05TX1BS RUNJU0lPTjsKKwlyZXR1cm4gbnM7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorcGdfaW5p dGlhbGl6ZV9nZXRfdGlja3MoKQoreworI2lmIGRlZmluZWQoX194ODZfNjRfXykgJiYgZGVm aW5lZChfX2xpbnV4X18pCisJcGdfaW5pdGlhbGl6ZV9yZHRzYygpOworI2VuZGlmCit9CisK KyNkZWZpbmUgSU5TVFJfVElNRV9JTklUSUFMSVpFKCkgXAorCXBnX2luaXRpYWxpemVfZ2V0 X3RpY2tzKCkKKworI2RlZmluZSBJTlNUUl9USU1FX1NFVF9DVVJSRU5UX0ZBU1QodCkgXAor CSgodCkgPSBwZ19nZXRfdGlja3NfZmFzdCgpKQorCiAjZGVmaW5lIElOU1RSX1RJTUVfU0VU X0NVUlJFTlQodCkgXAotCSgodCkgPSBwZ19jbG9ja19nZXR0aW1lX25zKCkpCisJKCh0KSA9 IHBnX2dldF90aWNrcygpKQogCiAjZGVmaW5lIElOU1RSX1RJTUVfR0VUX05BTk9TRUModCkg XAotCSgoaW50NjQpICh0KS50aWNrcykKKwlwZ190aWNrc190b19ucyh0KQogCiAKICNlbHNl CQkJCQkJCS8qIFdJTjMyICovCkBAIC0xMzEsNyArMjM1LDcgQEAgcGdfY2xvY2tfZ2V0dGlt ZV9ucyh2b2lkKQogCiAvKiBVc2UgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoKSAqLwogCi0v KiBoZWxwZXIgZm9yIElOU1RSX1RJTUVfU0VUX0NVUlJFTlQgKi8KKy8qIGhlbHBlciBmb3Ig SU5TVFJfVElNRV9TRVRfQ1VSUkVOVCAvIElOU1RSX1RJTUVfU0VUX0NVUlJFTlRfRkFTVCAq Lwogc3RhdGljIGlubGluZSBpbnN0cl90aW1lCiBwZ19xdWVyeV9wZXJmb3JtYW5jZV9jb3Vu dGVyKHZvaWQpCiB7CkBAIC0xNTMsNiArMjU3LDExIEBAIEdldFRpbWVyRnJlcXVlbmN5KHZv aWQpCiAJcmV0dXJuIChkb3VibGUpIGYuUXVhZFBhcnQ7CiB9CiAKKyNkZWZpbmUgSU5TVFJf VElNRV9JTklUSUFMSVpFKCkKKworI2RlZmluZSBJTlNUUl9USU1FX1NFVF9DVVJSRU5UX0ZB U1QodCkgXAorCSgodCkgPSBwZ19xdWVyeV9wZXJmb3JtYW5jZV9jb3VudGVyKCkpCisKICNk ZWZpbmUgSU5TVFJfVElNRV9TRVRfQ1VSUkVOVCh0KSBcCiAJKCh0KSA9IHBnX3F1ZXJ5X3Bl cmZvcm1hbmNlX2NvdW50ZXIoKSkKIApAQCAtMTY4LDEzICsyNzcsOCBAQCBHZXRUaW1lckZy ZXF1ZW5jeSh2b2lkKQogCiAjZGVmaW5lIElOU1RSX1RJTUVfSVNfWkVSTyh0KQkoKHQpLnRp Y2tzID09IDApCiAKLQogI2RlZmluZSBJTlNUUl9USU1FX1NFVF9aRVJPKHQpCSgodCkudGlj a3MgPSAwKQogCi0jZGVmaW5lIElOU1RSX1RJTUVfU0VUX0NVUlJFTlRfTEFaWSh0KSBcCi0J KElOU1RSX1RJTUVfSVNfWkVSTyh0KSA/IElOU1RSX1RJTUVfU0VUX0NVUlJFTlQodCksIHRy dWUgOiBmYWxzZSkKLQotCiAjZGVmaW5lIElOU1RSX1RJTUVfQUREKHgseSkgXAogCSgoeCku dGlja3MgKz0gKHkpLnRpY2tzKQogCi0tIAoyLjUxLjAKCg== --------------IImi0tp1SoeVM01s2c01rFVy--