From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9A2C945BE6 for ; Thu, 27 Jun 2024 08:11:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719475919; cv=none; b=FlZScL8MfCgmaBLEAm8x9hrkO44eF6yDbsvasNaUx+R3uNeCQt4FaeuNiwyLlkGkgE4oXDuwfQxvMe35uwIcltVaPTdcTypg++Gp/98H1AYCZtpLXgfrluutZZFhKbbUM98FXcDD1TvWYOyccVYoyG7TSvLX3onPYueKmnycFzs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719475919; c=relaxed/simple; bh=H4sf75wa+u9MafsJdYli4CEuqRcSVkKoC4HHQCaaP+Q=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=vBc4NZEuq80MNDZPLUpqaoHxAhcKlMe9cGrS3lzB9OyxdiLreQ3lfSgkqb1DV2AJEz8aCSiorPmEgTR6AbGZLdnm8cjkl6EpD5on/1gDQts4Vn17L+Ev//0CHGLM4J9o/x8WNjmVRpwVCwreUw6LXCy30Ss0fCxfuhi2FenYrqs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com; spf=pass smtp.mailfrom=bytedance.com; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b=N0YArAc/; arc=none smtp.client-ip=209.85.167.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=bytedance.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bytedance.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bytedance.com header.i=@bytedance.com header.b="N0YArAc/" Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-52d259dbe3cso2476888e87.0 for ; Thu, 27 Jun 2024 01:11:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1719475915; x=1720080715; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=msK5wFfGDF/WutTur9LQCLii2ycv1OFon1M4QxMP/sI=; b=N0YArAc/R5ECuFuXx25EGjh2KVi4gr72sb7GdaE1dIYLcBPJfj54fyH5oXL038M/4W +GcIeniwNH7DJXEG0ihVWAkWXTdr4pqHsyxMv50TOW+N7/qqAAXyNt0zspE3/thkSt+n 79XyxRXuqJy6Pz4t/Lw2U6cMKj+A2+Lf+BMF7RpcbmEKi3gj28hcEBTI0uAWsl1RSXy2 Jw/hgiQS0FpL9e+553SUVEw9OrIk5DeL6XWr1EJRhCUYft0c7nT5dMXFLprfEhrTsRF4 LbE/9mxNYIUPmjlIn0qhXMp9EJiMyTjmsWpqnGbO70iQyPpaifSATRehskM4MpiOr8Ei T8GQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719475915; x=1720080715; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=msK5wFfGDF/WutTur9LQCLii2ycv1OFon1M4QxMP/sI=; b=C9Av5bUCRDpZOeHylgLzJfo7Ed+CDZZoo/miePOVjOlP6H1min+5ObgdLJzLGH67LF SvrJODSZcwblV+oAJxAv9JxD0ifAAOax9CMexxQb71HyfvLDQ8KdehlCdwqhCDWgxjsx vva+iSpIss3jlNvUXEpeRWhIjXavz9DRP89J10QAMebfPYJjDRQr/0BNt7nFrSlo9G/c IK/a7BH20BR5wBBx0akHDxrjjnfvNpbz0qaZRIOh+GAziO4VFUGGcb9AfSbFfywM9VM+ Rzxlhb0bB/Jx+pqBuLFaj/m1BI+gn99CAhJYyeEBXqrdlSC0OGDFVNXkOz1ynXp9ExV7 YdJA== X-Forwarded-Encrypted: i=1; AJvYcCWdlrJzkMbAufPWt2LrblX4EHc/85FggtbFrp4ZgYqlCaI+0HO8g8JP0dxJWWo9iUGtnifI/Eqx4vjUhCNx12J9LsTJZtrwM7Ff X-Gm-Message-State: AOJu0Yz1nfwPxKEM1OhraH5DUBvW5z5afIrYDRe6U5iQOpVCVyoqR5AC OfmeenUHTKJLovIOgtJIG6ekfuIruxLQWbIwUYI9h1IfUpAXVrXN8nzqdaKveEU= X-Google-Smtp-Source: AGHT+IEDopEuSNAPoRqMq46CO/kVJCKi+X7E3kF8387qXA6YgPT43ltjyIFnDOjv4772zX4xLAWpIA== X-Received: by 2002:a05:6512:348c:b0:52c:86d7:fa62 with SMTP id 2adb3069b0e04-52ce061b1femr9639838e87.23.1719475914653; Thu, 27 Jun 2024 01:11:54 -0700 (PDT) Received: from localhost ([149.71.16.99]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-425649d7055sm14715715e9.0.2024.06.27.01.11.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jun 2024 01:11:54 -0700 (PDT) From: Punit Agrawal To: yunhui cui Cc: jesse@rivosinc.com, jrtc27@jrtc27.com, corbet@lwn.net, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, cleger@rivosinc.com, evan@rivosinc.com, conor.dooley@microchip.com, costa.shul@redhat.com, andy.chiu@sifive.com, samitolvanen@google.com, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, punit.agrawal@bytedance.com, Sunil V L , Palmer Dabbelt , Anup Patel Subject: Re: [PATCH v3] RISC-V: Provide the frequency of time CSR via hwprobe In-Reply-To: (yunhui cui's message of "Tue, 25 Jun 2024 10:08:59 +0800") References: <20240622025514.66537-1-cuiyunhui@bytedance.com> Date: Thu, 27 Jun 2024 09:11:53 +0100 Message-ID: <8734oyoldi.fsf@bytedance.com> User-Agent: Gnus/5.13 (Gnus v5.13) Precedence: bulk X-Mailing-List: linux-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable yunhui cui writes: > Add punit and sunil in the loop. Thanks for looping us in. > On Sat, Jun 22, 2024 at 10:55=E2=80=AFAM Yunhui Cui wrote: >> >> From: Palmer Dabbelt >> >> A handful of user-visible behavior is based on the frequency of the >> time CSR. It will be helpful to add more context to the commit log - especially for something that is being exposed in a user visible interface. Something like below - The RISC-V architecture makes a real time counter CSR (via RDTIME instruction) available for applications in U-mode but there is no architected mechanism for an application to discover the frequency the counter is running at. Some applications (e.g., DPDK) use the time counter for basic performance analysis as well as fine grained time-keeping. Add support to the hwprobe system call to export the timer counter frequency to code running in U-mode. With the commit log updated, Acked-by: Punit Agrawal Thanks >> >> Signed-off-by: Palmer Dabbelt >> Signed-off-by: Yunhui Cui >> Reviewed-by: Evan Green >> Reviewed-by: Anup Patel >> --- >> Documentation/arch/riscv/hwprobe.rst | 2 ++ >> arch/riscv/include/asm/hwprobe.h | 2 +- >> arch/riscv/include/uapi/asm/hwprobe.h | 1 + >> arch/riscv/kernel/sys_hwprobe.c | 5 +++++ >> 4 files changed, 9 insertions(+), 1 deletion(-) >> >> diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/r= iscv/hwprobe.rst >> index df5045103e73..ec3c99474ed7 100644 >> --- a/Documentation/arch/riscv/hwprobe.rst >> +++ b/Documentation/arch/riscv/hwprobe.rst >> @@ -233,3 +233,5 @@ The following keys are defined: >> >> * :c:macro:`RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE`: An unsigned int which >> represents the size of the Zicboz block in bytes. >> + >> +* :c:macro:`RISCV_HWPROBE_KEY_TIME_CSR_FREQ`: Frequency (in Hz) of `tim= e CSR`. >> diff --git a/arch/riscv/include/asm/hwprobe.h b/arch/riscv/include/asm/h= wprobe.h >> index 150a9877b0af..ef01c182af2b 100644 >> --- a/arch/riscv/include/asm/hwprobe.h >> +++ b/arch/riscv/include/asm/hwprobe.h >> @@ -8,7 +8,7 @@ >> >> #include >> >> -#define RISCV_HWPROBE_MAX_KEY 7 >> +#define RISCV_HWPROBE_MAX_KEY 8 >> >> static inline bool riscv_hwprobe_key_is_valid(__s64 key) >> { >> diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/= uapi/asm/hwprobe.h >> index 2fb8a8185e7a..5053a9b18710 100644 >> --- a/arch/riscv/include/uapi/asm/hwprobe.h >> +++ b/arch/riscv/include/uapi/asm/hwprobe.h >> @@ -74,6 +74,7 @@ struct riscv_hwprobe { >> #define RISCV_HWPROBE_MISALIGNED_MASK (7 << 0) >> #define RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE 6 >> #define RISCV_HWPROBE_KEY_MISALIGNED_PERF 7 >> +#define RISCV_HWPROBE_KEY_TIME_CSR_FREQ 8 >> /* Increase RISCV_HWPROBE_MAX_KEY when adding items. */ >> >> /* Flags */ >> diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwp= robe.c >> index e4ec9166339f..3d47edc04a3f 100644 >> --- a/arch/riscv/kernel/sys_hwprobe.c >> +++ b/arch/riscv/kernel/sys_hwprobe.c >> @@ -8,6 +8,7 @@ >> #include >> #include >> #include >> +#include >> #include >> #include >> #include >> @@ -227,6 +228,10 @@ static void hwprobe_one_pair(struct riscv_hwprobe *= pair, >> pair->value =3D riscv_cboz_block_size; >> break; >> >> + case RISCV_HWPROBE_KEY_TIME_CSR_FREQ: >> + pair->value =3D riscv_timebase; >> + break; >> + >> /* >> * For forward compatibility, unknown keys don't fail the whole >> * call, but get their element key set to -1 and value set to 0 >> -- >> 2.20.1 >> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3542AC2BD09 for ; Thu, 27 Jun 2024 08:12:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4cvgmTqYoRTeDXbNRwlGyLhVhDy1dw4qC/VH6teGJZE=; b=dWCkKxe+MCVV97 clOvvOos+Ij6vgx5ETuOd/YpO1SFfAcWwb9BMh0siO/uvYjBK3vhC20w4k6tlmjJydIjl/HTwIuVf klbzz0JsYy2kLO11K240yM6jeR8TP7vJ9CLeUK245/H/VW6IvgNooHKz4IzeQtNOFkIrQuiiJqk9a b36u0QaXj1OWZmNTddLBuzOvU2GHPJffR6FP+WMarl3UUHdls24vlHnifSmqcID77nzU8vtd8UBBK 3eF8ecVfCwZBySr2XxMNMSMhxaTG8VdSJj+Mg6tfPyUXk7/A1zhnxVgvnAf2zbd7n6iMVJdZLCRfp LKOysceJGIwvF5Dm4OTA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sMkEc-00000009glK-390x; Thu, 27 Jun 2024 08:12:02 +0000 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sMkEZ-00000009gke-3ASy for linux-riscv@lists.infradead.org; Thu, 27 Jun 2024 08:12:01 +0000 Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-52cdf4bc083so7927421e87.2 for ; Thu, 27 Jun 2024 01:11:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1719475915; x=1720080715; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=msK5wFfGDF/WutTur9LQCLii2ycv1OFon1M4QxMP/sI=; b=RSBZLJYt8S+Xt3p5VtCIGYny6FycyYexcJaVgOk4X+Yw/b67lyhesVZGQwsaNk/R6R SbfW3vioAlDy0PQ+ILa8PVaWY/KiNq+ON5d8imjztVSTIXXw5JN540aEe0htYRHZ3Vqo bCDps7uQSIlj5gyYs8/abfTFOGAr/1EHl2etqMTjhR4RiXGcWvOJw/Vpzc3K3emvIIvi zFDOe6564CW17U0TypGaDr1l4wwMAFJ+mb8q/EPWiFT+Dtew1Q+9150h04EQ2oVteXPv MhcUUWARKwQcwLX23rkUtoBvhytNX/TXwtlbCi7yoyKBTi5MGEbc5pDN9hUmAcryPpnv FzKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719475915; x=1720080715; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=msK5wFfGDF/WutTur9LQCLii2ycv1OFon1M4QxMP/sI=; b=aEl3B9Ck8uSaVSD9S/Bn7bjhsBl6jNMPOrk44L2pttab7xl/I/uZTTxCzRbXFBpDx2 2Kl1MWlkcN4YElXA59yqMmn6EZ+jFj/Zbsyj8xS08xZIZ6LldiyoC95/yqkvgNHg3uyz kzKqXeyPPffNzT0mN/vVSTVrgBtl2zNMswG/uguZFU+QYABFhPC8rVAiDVwSXQHlACZX lJTBZNXyX7zYXu1BvxXJHIKEK+NKVeYy2/WKf0QOcP9s2OUkvZWmUOXo8Bic5NS0mwZK XOjWyjMs2CM3VA4n6lHDe0xaxTQp5nVmEyujtM1V6M9TufiIrHYqQ4yqwBj77bv0ru7q iS9Q== X-Forwarded-Encrypted: i=1; AJvYcCWWI51pJydeUJSbhifQqPUv0VAjfqb4ekuy7Mwinr+fJIZLmDW2w8HD1g9UZkomauwbWcRb6Y+iCKvFYJ7qQDbxUlkAiop2cja7nC5oj0WL X-Gm-Message-State: AOJu0YxyzuGQYKo/hR9RRn9ABYuRJQNzQG0QrJWybuX8RNAYNKONOrwE kZGyTAdxef6ljfFl5W9z76MTTrJ7ciqqKYM+CO9ZV0dMk1OH1rGLV36jUtGEPX8= X-Google-Smtp-Source: AGHT+IEDopEuSNAPoRqMq46CO/kVJCKi+X7E3kF8387qXA6YgPT43ltjyIFnDOjv4772zX4xLAWpIA== X-Received: by 2002:a05:6512:348c:b0:52c:86d7:fa62 with SMTP id 2adb3069b0e04-52ce061b1femr9639838e87.23.1719475914653; Thu, 27 Jun 2024 01:11:54 -0700 (PDT) Received: from localhost ([149.71.16.99]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-425649d7055sm14715715e9.0.2024.06.27.01.11.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jun 2024 01:11:54 -0700 (PDT) From: Punit Agrawal To: yunhui cui Subject: Re: [PATCH v3] RISC-V: Provide the frequency of time CSR via hwprobe In-Reply-To: (yunhui cui's message of "Tue, 25 Jun 2024 10:08:59 +0800") References: <20240622025514.66537-1-cuiyunhui@bytedance.com> Date: Thu, 27 Jun 2024 09:11:53 +0100 Message-ID: <8734oyoldi.fsf@bytedance.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240627_011159_831572_6682837D X-CRM114-Status: GOOD ( 17.48 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: costa.shul@redhat.com, aou@eecs.berkeley.edu, samitolvanen@google.com, corbet@lwn.net, Anup Patel , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, jesse@rivosinc.com, conor.dooley@microchip.com, evan@rivosinc.com, palmer@dabbelt.com, Palmer Dabbelt , andy.chiu@sifive.com, paul.walmsley@sifive.com, punit.agrawal@bytedance.com, cleger@rivosinc.com, linux-riscv@lists.infradead.org, jrtc27@jrtc27.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org eXVuaHVpIGN1aSA8Y3VpeXVuaHVpQGJ5dGVkYW5jZS5jb20+IHdyaXRlczoKCj4gQWRkIHB1bml0 IGFuZCBzdW5pbCBpbiB0aGUgbG9vcC4KClRoYW5rcyBmb3IgbG9vcGluZyB1cyBpbi4KCj4gT24g U2F0LCBKdW4gMjIsIDIwMjQgYXQgMTA6NTXigK9BTSBZdW5odWkgQ3VpIDxjdWl5dW5odWlAYnl0 ZWRhbmNlLmNvbT4gd3JvdGU6Cj4+Cj4+IEZyb206IFBhbG1lciBEYWJiZWx0IDxwYWxtZXJAcml2 b3NpbmMuY29tPgo+Pgo+PiBBIGhhbmRmdWwgb2YgdXNlci12aXNpYmxlIGJlaGF2aW9yIGlzIGJh c2VkIG9uIHRoZSBmcmVxdWVuY3kgb2YgdGhlCj4+IHRpbWUgQ1NSLgoKSXQgd2lsbCBiZSBoZWxw ZnVsIHRvIGFkZCBtb3JlIGNvbnRleHQgdG8gdGhlIGNvbW1pdCBsb2cgLSBlc3BlY2lhbGx5CmZv ciBzb21ldGhpbmcgdGhhdCBpcyBiZWluZyBleHBvc2VkIGluIGEgdXNlciB2aXNpYmxlCmludGVy ZmFjZS4gU29tZXRoaW5nIGxpa2UgYmVsb3cgLQoKICAgIFRoZSBSSVNDLVYgYXJjaGl0ZWN0dXJl IG1ha2VzIGEgcmVhbCB0aW1lIGNvdW50ZXIgQ1NSICh2aWEgUkRUSU1FCiAgICBpbnN0cnVjdGlv bikgYXZhaWxhYmxlIGZvciBhcHBsaWNhdGlvbnMgaW4gVS1tb2RlIGJ1dCB0aGVyZSBpcyBubwog ICAgYXJjaGl0ZWN0ZWQgbWVjaGFuaXNtIGZvciBhbiBhcHBsaWNhdGlvbiB0byBkaXNjb3ZlciB0 aGUgZnJlcXVlbmN5CiAgICB0aGUgY291bnRlciBpcyBydW5uaW5nIGF0LiBTb21lIGFwcGxpY2F0 aW9ucyAoZS5nLiwgRFBESykgdXNlIHRoZQogICAgdGltZSBjb3VudGVyIGZvciBiYXNpYyBwZXJm b3JtYW5jZSBhbmFseXNpcyBhcyB3ZWxsIGFzIGZpbmUgZ3JhaW5lZAogICAgdGltZS1rZWVwaW5n LgoKICAgIEFkZCBzdXBwb3J0IHRvIHRoZSBod3Byb2JlIHN5c3RlbSBjYWxsIHRvIGV4cG9ydCB0 aGUgdGltZXIgY291bnRlcgogICAgZnJlcXVlbmN5IHRvIGNvZGUgcnVubmluZyBpbiBVLW1vZGUu CgpXaXRoIHRoZSBjb21taXQgbG9nIHVwZGF0ZWQsCgpBY2tlZC1ieTogUHVuaXQgQWdyYXdhbCA8 cHVuaXQuYWdyYXdhbEBieXRlZGFuY2UuY29tPgoKVGhhbmtzCgo+Pgo+PiBTaWduZWQtb2ZmLWJ5 OiBQYWxtZXIgRGFiYmVsdCA8cGFsbWVyQHJpdm9zaW5jLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTog WXVuaHVpIEN1aSA8Y3VpeXVuaHVpQGJ5dGVkYW5jZS5jb20+Cj4+IFJldmlld2VkLWJ5OiBFdmFu IEdyZWVuIDxldmFuQHJpdm9zaW5jLmNvbT4KPj4gUmV2aWV3ZWQtYnk6IEFudXAgUGF0ZWwgPGFu dXBAYnJhaW5mYXVsdC5vcmc+Cj4+IC0tLQo+PiAgRG9jdW1lbnRhdGlvbi9hcmNoL3Jpc2N2L2h3 cHJvYmUucnN0ICB8IDIgKysKPj4gIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdwcm9iZS5oICAg ICAgfCAyICstCj4+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vaHdwcm9iZS5oIHwgMSAr Cj4+ICBhcmNoL3Jpc2N2L2tlcm5lbC9zeXNfaHdwcm9iZS5jICAgICAgIHwgNSArKysrKwo+PiAg NCBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4KPj4gZGlm ZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJjaC9yaXNjdi9od3Byb2JlLnJzdCBiL0RvY3VtZW50 YXRpb24vYXJjaC9yaXNjdi9od3Byb2JlLnJzdAo+PiBpbmRleCBkZjUwNDUxMDNlNzMuLmVjM2M5 OTQ3NGVkNyAxMDA2NDQKPj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9hcmNoL3Jpc2N2L2h3cHJvYmUu cnN0Cj4+ICsrKyBiL0RvY3VtZW50YXRpb24vYXJjaC9yaXNjdi9od3Byb2JlLnJzdAo+PiBAQCAt MjMzLDMgKzIzMyw1IEBAIFRoZSBmb2xsb3dpbmcga2V5cyBhcmUgZGVmaW5lZDoKPj4KPj4gICog OmM6bWFjcm86YFJJU0NWX0hXUFJPQkVfS0VZX1pJQ0JPWl9CTE9DS19TSVpFYDogQW4gdW5zaWdu ZWQgaW50IHdoaWNoCj4+ICAgIHJlcHJlc2VudHMgdGhlIHNpemUgb2YgdGhlIFppY2JveiBibG9j ayBpbiBieXRlcy4KPj4gKwo+PiArKiA6YzptYWNybzpgUklTQ1ZfSFdQUk9CRV9LRVlfVElNRV9D U1JfRlJFUWA6IEZyZXF1ZW5jeSAoaW4gSHopIG9mIGB0aW1lIENTUmAuCj4+IGRpZmYgLS1naXQg YS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3cHJvYmUuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9h c20vaHdwcm9iZS5oCj4+IGluZGV4IDE1MGE5ODc3YjBhZi4uZWYwMWMxODJhZjJiIDEwMDY0NAo+ PiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3cHJvYmUuaAo+PiArKysgYi9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL2h3cHJvYmUuaAo+PiBAQCAtOCw3ICs4LDcgQEAKPj4KPj4gICNpbmNs dWRlIDx1YXBpL2FzbS9od3Byb2JlLmg+Cj4+Cj4+IC0jZGVmaW5lIFJJU0NWX0hXUFJPQkVfTUFY X0tFWSA3Cj4+ICsjZGVmaW5lIFJJU0NWX0hXUFJPQkVfTUFYX0tFWSA4Cj4+Cj4+ICBzdGF0aWMg aW5saW5lIGJvb2wgcmlzY3ZfaHdwcm9iZV9rZXlfaXNfdmFsaWQoX19zNjQga2V5KQo+PiAgewo+ PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2h3cHJvYmUuaCBiL2Fy Y2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2JlLmgKPj4gaW5kZXggMmZiOGE4MTg1ZTdh Li41MDUzYTliMTg3MTAgMTAwNjQ0Cj4+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2Fz bS9od3Byb2JlLmgKPj4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2h3cHJvYmUu aAo+PiBAQCAtNzQsNiArNzQsNyBAQCBzdHJ1Y3QgcmlzY3ZfaHdwcm9iZSB7Cj4+ICAjZGVmaW5l ICAgICAgICAgICAgICAgIFJJU0NWX0hXUFJPQkVfTUlTQUxJR05FRF9NQVNLICAgICAgICAgICAo NyA8PCAwKQo+PiAgI2RlZmluZSBSSVNDVl9IV1BST0JFX0tFWV9aSUNCT1pfQkxPQ0tfU0laRSAg ICA2Cj4+ICAjZGVmaW5lIFJJU0NWX0hXUFJPQkVfS0VZX01JU0FMSUdORURfUEVSRiAgICAgIDcK Pj4gKyNkZWZpbmUgUklTQ1ZfSFdQUk9CRV9LRVlfVElNRV9DU1JfRlJFUSAgICAgICAgOAo+PiAg LyogSW5jcmVhc2UgUklTQ1ZfSFdQUk9CRV9NQVhfS0VZIHdoZW4gYWRkaW5nIGl0ZW1zLiAqLwo+ Pgo+PiAgLyogRmxhZ3MgKi8KPj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3N5c19o d3Byb2JlLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zeXNfaHdwcm9iZS5jCj4+IGluZGV4IGU0ZWM5 MTY2MzM5Zi4uM2Q0N2VkYzA0YTNmIDEwMDY0NAo+PiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9z eXNfaHdwcm9iZS5jCj4+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3N5c19od3Byb2JlLmMKPj4g QEAgLTgsNiArOCw3IEBACj4+ICAjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KPj4gICNpbmNs dWRlIDxhc20vY3B1ZmVhdHVyZS5oPgo+PiAgI2luY2x1ZGUgPGFzbS9od3Byb2JlLmg+Cj4+ICsj aW5jbHVkZSA8YXNtL2RlbGF5Lmg+Cj4+ICAjaW5jbHVkZSA8YXNtL3NiaS5oPgo+PiAgI2luY2x1 ZGUgPGFzbS9zd2l0Y2hfdG8uaD4KPj4gICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgo+PiBAQCAt MjI3LDYgKzIyOCwxMCBAQCBzdGF0aWMgdm9pZCBod3Byb2JlX29uZV9wYWlyKHN0cnVjdCByaXNj dl9od3Byb2JlICpwYWlyLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICBwYWlyLT52YWx1ZSA9 IHJpc2N2X2Nib3pfYmxvY2tfc2l6ZTsKPj4gICAgICAgICAgICAgICAgIGJyZWFrOwo+Pgo+PiAr ICAgICAgIGNhc2UgUklTQ1ZfSFdQUk9CRV9LRVlfVElNRV9DU1JfRlJFUToKPj4gKyAgICAgICAg ICAgICAgIHBhaXItPnZhbHVlID0gcmlzY3ZfdGltZWJhc2U7Cj4+ICsgICAgICAgICAgICAgICBi cmVhazsKPj4gKwo+PiAgICAgICAgIC8qCj4+ICAgICAgICAgICogRm9yIGZvcndhcmQgY29tcGF0 aWJpbGl0eSwgdW5rbm93biBrZXlzIGRvbid0IGZhaWwgdGhlIHdob2xlCj4+ICAgICAgICAgICog Y2FsbCwgYnV0IGdldCB0aGVpciBlbGVtZW50IGtleSBzZXQgdG8gLTEgYW5kIHZhbHVlIHNldCB0 byAwCj4+IC0tCj4+IDIuMjAuMQo+PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1yaXNjdgo=