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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D375C7618E for ; Sat, 29 Apr 2023 06:19:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231241AbjD2GTy (ORCPT ); Sat, 29 Apr 2023 02:19:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34940 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230180AbjD2GTs (ORCPT ); Sat, 29 Apr 2023 02:19:48 -0400 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F98E2123 for ; Fri, 28 Apr 2023 23:19:45 -0700 (PDT) Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-24de3a8bfcfso7816a91.1 for ; Fri, 28 Apr 2023 23:19:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atishpatra.org; s=google; t=1682749185; x=1685341185; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=yTMjDk3SOgiCPjxuLxhArxtC95/xlU4WSt6SJxU0e7Y=; b=XyLmSLRRw5vhwFunIep9bCU9Ptv8zJooq6+MLDBGrovDSvagRv6kBI6twD+YR78KiG BeEetk1c26wanqo2urmTL/brQ9DSTPDvQi403y65gx4fJSSvfG/Xk14q2glr2oRKHS/T h2ievV6hgV6lbgRlb6Vj2FQy/RghnjYGNW+f4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682749185; x=1685341185; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yTMjDk3SOgiCPjxuLxhArxtC95/xlU4WSt6SJxU0e7Y=; b=EkifPdjW73gTCBs4oDlu04LL7eY10l8Cu/ILH2JgU1PA6L1+ps/Vz4y09PPKxF8jx9 8InQc7H2wLmVU4wdi1GHCOD3fuK7I8e0g545hhJRFYaMFvIFZHKp2tT0mgqOjgl/31e4 fc8MbfC/AGDrkyJkPOzrt9e0NT0ICu/ii3U7RIzAxPPumrwZKgkOXUQ27ChB8Q0S1IWs 7cwUTi8cu7mOdE/POEBLgp84hgXVtWjhJmSd+mjX28w+5aEAaMCwrdnGuiLBfS9Y3xmW +gniKVJKxQPRBVkVekii9PCDtqvwsdWAzPZAGKKbywRmpcyphZ7780FNl1ecYpAyDPSX j7Pw== X-Gm-Message-State: AC+VfDxejlTbE47oc4Fr9FQXd0aa/2uYoTMR1SUcUGLuSKK1tpfiIrN7 Ib271RT7W094CrgKLXXBkPFqn/b2ti1zyr6PTOz6 X-Google-Smtp-Source: ACHHUZ4LhwwR0e1B330AbEkd5AimnCzdBqVUhs/POzba4tZ0rYglv0TK7U3GChiM2m5G/Kut356agp6Sgo1hYtHMuJk= X-Received: by 2002:a17:90b:1b03:b0:246:681c:71fd with SMTP id nu3-20020a17090b1b0300b00246681c71fdmr7622447pjb.6.1682749184993; Fri, 28 Apr 2023 23:19:44 -0700 (PDT) MIME-Version: 1.0 References: <20230413161725.195417-1-alexghiti@rivosinc.com> <20230413161725.195417-5-alexghiti@rivosinc.com> <3bwxedsrovutzhlmlnozeuvz4zqnr32kuef2mdzmnbniajh6vb@we6jzlwkfuof> In-Reply-To: <3bwxedsrovutzhlmlnozeuvz4zqnr32kuef2mdzmnbniajh6vb@we6jzlwkfuof> From: Atish Patra Date: Sat, 29 Apr 2023 11:49:33 +0530 Message-ID: Subject: Re: [PATCH 4/4] riscv: Enable perf counters user access only through perf To: Andrew Jones Cc: Alexandre Ghiti , Jonathan Corbet , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Paul Walmsley , Palmer Dabbelt , Albert Ou , Anup Patel , Will Deacon , Rob Herring , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, David Abdurachmanov , Heinrich Schuchardt , Andreas Schwab , mafm@debian.org, aurel32@debian.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 26, 2023 at 6:55=E2=80=AFPM Andrew Jones wrote: > > On Wed, Apr 26, 2023 at 03:17:01PM +0200, Alexandre Ghiti wrote: > > On Wed, Apr 26, 2023 at 2:57=E2=80=AFPM Andrew Jones wrote: > > > > > > On Thu, Apr 13, 2023 at 06:17:25PM +0200, Alexandre Ghiti wrote: > > > > We used to unconditionnally expose the cycle and instret csrs to > > > > userspace, which gives rise to security concerns. > > > > > > > > So only allow access to hw counters from userspace through the perf > > > > framework which will handle context switchs, per-task events...etc.= But > > > > as we cannot break userspace, we give the user the choice to go bac= k to > > > > the previous behaviour by setting the sysctl perf_user_access. > > > > > > > > We also introduce a means to directly map the hardware counters to > > > > userspace, thus avoiding the need for syscalls whenever an applicat= ion > > > > wants to access counters values. > > > > > > > > Note that arch_perf_update_userpage is a copy of arm64 code. > > > > > > > > Signed-off-by: Alexandre Ghiti > > > > --- > > > > Documentation/admin-guide/sysctl/kernel.rst | 23 +++- > > > > arch/riscv/include/asm/perf_event.h | 3 + > > > > arch/riscv/kernel/Makefile | 2 +- > > > > arch/riscv/kernel/perf_event.c | 65 +++++++++++ > > > > drivers/perf/riscv_pmu.c | 42 ++++++++ > > > > drivers/perf/riscv_pmu_legacy.c | 17 +++ > > > > drivers/perf/riscv_pmu_sbi.c | 113 ++++++++++++++++= ++-- > > > > include/linux/perf/riscv_pmu.h | 3 + > > > > tools/lib/perf/mmap.c | 65 +++++++++++ > > > > 9 files changed, 322 insertions(+), 11 deletions(-) > > > > create mode 100644 arch/riscv/kernel/perf_event.c > > > > > > > > diff --git a/Documentation/admin-guide/sysctl/kernel.rst b/Document= ation/admin-guide/sysctl/kernel.rst > > > > index 4b7bfea28cd7..02b2a40a3647 100644 > > > > --- a/Documentation/admin-guide/sysctl/kernel.rst > > > > +++ b/Documentation/admin-guide/sysctl/kernel.rst > > > > @@ -941,16 +941,31 @@ enabled, otherwise writing to this file will = return ``-EBUSY``. > > > > The default value is 8. > > > > > > > > > > > > -perf_user_access (arm64 only) > > > > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > +perf_user_access (arm64 and riscv only) > > > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > + > > > > +Controls user space access for reading perf event counters. > > > > > > > > -Controls user space access for reading perf event counters. When s= et to 1, > > > > -user space can read performance monitor counter registers directly= . > > > > +arm64 > > > > +=3D=3D=3D=3D=3D > > > > > > > > The default value is 0 (access disabled). > > > > +When set to 1, user space can read performance monitor counter reg= isters > > > > +directly. > > > > > > > > See Documentation/arm64/perf.rst for more information. > > > > > > > > +riscv > > > > +=3D=3D=3D=3D=3D > > > > + > > > > +When set to 0, user access is disabled. > > > > + > > > > +When set to 1, user space can read performance monitor counter reg= isters > > > > +directly only through perf, any direct access without perf interve= ntion will > > > > +trigger an illegal instruction. > > > > + > > > > +The default value is 2, it enables the legacy mode, that is user s= pace has > > > > +direct access to cycle, time and insret CSRs only. > > > > > > I think this default value should be a Kconfig symbol, allowing kerne= ls to > > > be built with a secure default. > > > > Actually I was more in favor of having the default to 1 (ie the secure > > option) and let the distros deal with the legacy mode (via a sysctl > > parameter on the command line) as long as user-space has not been > > fixed: does that make sense? > > Yes, I'd prefer that too. I assumed the default was 2 in this patch > because we couldn't set it to 1 for some reason. > I would prefer that too. However, it was set to 2 because it would break the user space application depending on the legacy behavior as soon as the patches are upstream. That is the reason palmer suggested keeping the default value to 2 in order to avoid that. +distro folks (cc'd) If the distro maintainer can confirm that this would be a non-issue, I am o= kay with setting the default to 1. > Thanks, > drew --=20 Regards, Atish 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 078E1C77B60 for ; Sat, 29 Apr 2023 06:20:02 +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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9aH5Fe8pan/CTmZnF4MHZxltoUmGfb0j2XRfvCbXBR0=; b=PKzbsxIHtMRy8R kCR1nuF5OdYFinZxJ9Gz/PsEPw1nQwLbRgn9mw6htSEPPyKuASwn7lllbLRk0rgHfigSuGiZONrKw 74rxyQW1nYecQjUNNQB/NStYWxg4T5lKU28UzeXJuQqsPa0X2yQh0hmqd10fmK03yDH9Fkx2GZiT9 WejRZIuL+a56tJPwWqmF4plRdc0BgG/1rGmzHm/zWzHQxLkfN/aZb8D1mFElhPFVT5xvNXtZztOpS +X1+f/8JeN8SZWBR+XYqXk0rKOFqU6P/tI6HlIE7CT2jKWIn1Lh3mlXZjtviEAxMIZXVcRSACfTZG mL4rj3ODQJ0EU/Od+y+g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1psdvy-00CJHq-2p; Sat, 29 Apr 2023 06:19:50 +0000 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1psdvu-00CJGr-2D for linux-riscv@lists.infradead.org; Sat, 29 Apr 2023 06:19:48 +0000 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-246fa478d45so692931a91.3 for ; Fri, 28 Apr 2023 23:19:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atishpatra.org; s=google; t=1682749185; x=1685341185; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=yTMjDk3SOgiCPjxuLxhArxtC95/xlU4WSt6SJxU0e7Y=; b=XyLmSLRRw5vhwFunIep9bCU9Ptv8zJooq6+MLDBGrovDSvagRv6kBI6twD+YR78KiG BeEetk1c26wanqo2urmTL/brQ9DSTPDvQi403y65gx4fJSSvfG/Xk14q2glr2oRKHS/T h2ievV6hgV6lbgRlb6Vj2FQy/RghnjYGNW+f4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682749185; x=1685341185; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yTMjDk3SOgiCPjxuLxhArxtC95/xlU4WSt6SJxU0e7Y=; b=NtPYYGzvPTuZXzSbpQkghtdOCOVhHjMpMdb2e/Au+/R/7OQwutmo/dclMIPLe0V7LU z1mg5ZJ9XPgjwIgR8C99o7wuY1+OrLHYjD4/oBw/o00SQ6xnq6nN6wdoF8bpzuFHx3K8 o4M23dRYzHyzVGJrgGq/xKlOeC7N/gOJ/ldaaQQJ5ZGfleCPuTigGaMC+oFAHjS7o/DB a6JAvMGwuz+f/8RXNGyuCee92MI+a/lu4yFM2QKcBBaL70cRq8HWQNsyGf+LSqIqyUEL LiJ2G3qMkSQO6zXgWlWCEvZX4FiHnLFidO9tub0Yiip7MrBrvlkRUECn10nYTReZpsYR 1EzQ== X-Gm-Message-State: AC+VfDy6wFKvFlr70zWhVYWA9Inh1PmyJf7266+/chiGolMbs9X59/2v Euy4X8qE81LWpKvY8WFGVnrZJQUJjt0dNISNwJKz X-Google-Smtp-Source: ACHHUZ4LhwwR0e1B330AbEkd5AimnCzdBqVUhs/POzba4tZ0rYglv0TK7U3GChiM2m5G/Kut356agp6Sgo1hYtHMuJk= X-Received: by 2002:a17:90b:1b03:b0:246:681c:71fd with SMTP id nu3-20020a17090b1b0300b00246681c71fdmr7622447pjb.6.1682749184993; Fri, 28 Apr 2023 23:19:44 -0700 (PDT) MIME-Version: 1.0 References: <20230413161725.195417-1-alexghiti@rivosinc.com> <20230413161725.195417-5-alexghiti@rivosinc.com> <3bwxedsrovutzhlmlnozeuvz4zqnr32kuef2mdzmnbniajh6vb@we6jzlwkfuof> In-Reply-To: <3bwxedsrovutzhlmlnozeuvz4zqnr32kuef2mdzmnbniajh6vb@we6jzlwkfuof> From: Atish Patra Date: Sat, 29 Apr 2023 11:49:33 +0530 Message-ID: Subject: Re: [PATCH 4/4] riscv: Enable perf counters user access only through perf To: Andrew Jones Cc: Alexandre Ghiti , Jonathan Corbet , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Paul Walmsley , Palmer Dabbelt , Albert Ou , Anup Patel , Will Deacon , Rob Herring , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, David Abdurachmanov , Heinrich Schuchardt , Andreas Schwab , mafm@debian.org, aurel32@debian.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230428_231947_013697_318C695F X-CRM114-Status: GOOD ( 35.04 ) 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: , 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 T24gV2VkLCBBcHIgMjYsIDIwMjMgYXQgNjo1NeKAr1BNIEFuZHJldyBKb25lcyA8YWpvbmVzQHZl bnRhbmFtaWNyby5jb20+IHdyb3RlOgo+Cj4gT24gV2VkLCBBcHIgMjYsIDIwMjMgYXQgMDM6MTc6 MDFQTSArMDIwMCwgQWxleGFuZHJlIEdoaXRpIHdyb3RlOgo+ID4gT24gV2VkLCBBcHIgMjYsIDIw MjMgYXQgMjo1N+KAr1BNIEFuZHJldyBKb25lcyA8YWpvbmVzQHZlbnRhbmFtaWNyby5jb20+IHdy b3RlOgo+ID4gPgo+ID4gPiBPbiBUaHUsIEFwciAxMywgMjAyMyBhdCAwNjoxNzoyNVBNICswMjAw LCBBbGV4YW5kcmUgR2hpdGkgd3JvdGU6Cj4gPiA+ID4gV2UgdXNlZCB0byB1bmNvbmRpdGlvbm5h bGx5IGV4cG9zZSB0aGUgY3ljbGUgYW5kIGluc3RyZXQgY3NycyB0bwo+ID4gPiA+IHVzZXJzcGFj ZSwgd2hpY2ggZ2l2ZXMgcmlzZSB0byBzZWN1cml0eSBjb25jZXJucy4KPiA+ID4gPgo+ID4gPiA+ IFNvIG9ubHkgYWxsb3cgYWNjZXNzIHRvIGh3IGNvdW50ZXJzIGZyb20gdXNlcnNwYWNlIHRocm91 Z2ggdGhlIHBlcmYKPiA+ID4gPiBmcmFtZXdvcmsgd2hpY2ggd2lsbCBoYW5kbGUgY29udGV4dCBz d2l0Y2hzLCBwZXItdGFzayBldmVudHMuLi5ldGMuIEJ1dAo+ID4gPiA+IGFzIHdlIGNhbm5vdCBi cmVhayB1c2Vyc3BhY2UsIHdlIGdpdmUgdGhlIHVzZXIgdGhlIGNob2ljZSB0byBnbyBiYWNrIHRv Cj4gPiA+ID4gdGhlIHByZXZpb3VzIGJlaGF2aW91ciBieSBzZXR0aW5nIHRoZSBzeXNjdGwgcGVy Zl91c2VyX2FjY2Vzcy4KPiA+ID4gPgo+ID4gPiA+IFdlIGFsc28gaW50cm9kdWNlIGEgbWVhbnMg dG8gZGlyZWN0bHkgbWFwIHRoZSBoYXJkd2FyZSBjb3VudGVycyB0bwo+ID4gPiA+IHVzZXJzcGFj ZSwgdGh1cyBhdm9pZGluZyB0aGUgbmVlZCBmb3Igc3lzY2FsbHMgd2hlbmV2ZXIgYW4gYXBwbGlj YXRpb24KPiA+ID4gPiB3YW50cyB0byBhY2Nlc3MgY291bnRlcnMgdmFsdWVzLgo+ID4gPiA+Cj4g PiA+ID4gTm90ZSB0aGF0IGFyY2hfcGVyZl91cGRhdGVfdXNlcnBhZ2UgaXMgYSBjb3B5IG9mIGFy bTY0IGNvZGUuCj4gPiA+ID4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgR2hpdGkg PGFsZXhnaGl0aUByaXZvc2luYy5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIERvY3VtZW50YXRp b24vYWRtaW4tZ3VpZGUvc3lzY3RsL2tlcm5lbC5yc3QgfCAgMjMgKysrLQo+ID4gPiA+ICBhcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL3BlcmZfZXZlbnQuaCAgICAgICAgIHwgICAzICsKPiA+ID4gPiAg YXJjaC9yaXNjdi9rZXJuZWwvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMiArLQo+ID4g PiA+ICBhcmNoL3Jpc2N2L2tlcm5lbC9wZXJmX2V2ZW50LmMgICAgICAgICAgICAgIHwgIDY1ICsr KysrKysrKysrCj4gPiA+ID4gIGRyaXZlcnMvcGVyZi9yaXNjdl9wbXUuYyAgICAgICAgICAgICAg ICAgICAgfCAgNDIgKysrKysrKysKPiA+ID4gPiAgZHJpdmVycy9wZXJmL3Jpc2N2X3BtdV9sZWdh Y3kuYyAgICAgICAgICAgICB8ICAxNyArKysKPiA+ID4gPiAgZHJpdmVycy9wZXJmL3Jpc2N2X3Bt dV9zYmkuYyAgICAgICAgICAgICAgICB8IDExMyArKysrKysrKysrKysrKysrKystLQo+ID4gPiA+ ICBpbmNsdWRlL2xpbnV4L3BlcmYvcmlzY3ZfcG11LmggICAgICAgICAgICAgIHwgICAzICsKPiA+ ID4gPiAgdG9vbHMvbGliL3BlcmYvbW1hcC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2NSAr KysrKysrKysrKwo+ID4gPiA+ICA5IGZpbGVzIGNoYW5nZWQsIDMyMiBpbnNlcnRpb25zKCspLCAx MSBkZWxldGlvbnMoLSkKPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3Yva2Vy bmVsL3BlcmZfZXZlbnQuYwo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vYWRtaW4tZ3VpZGUvc3lzY3RsL2tlcm5lbC5yc3QgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1 aWRlL3N5c2N0bC9rZXJuZWwucnN0Cj4gPiA+ID4gaW5kZXggNGI3YmZlYTI4Y2Q3Li4wMmIyYTQw YTM2NDcgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9zeXNj dGwva2VybmVsLnJzdAo+ID4gPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvc3lz Y3RsL2tlcm5lbC5yc3QKPiA+ID4gPiBAQCAtOTQxLDE2ICs5NDEsMzEgQEAgZW5hYmxlZCwgb3Ro ZXJ3aXNlIHdyaXRpbmcgdG8gdGhpcyBmaWxlIHdpbGwgcmV0dXJuIGBgLUVCVVNZYGAuCj4gPiA+ ID4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDguCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IC1wZXJm X3VzZXJfYWNjZXNzIChhcm02NCBvbmx5KQo+ID4gPiA+IC09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KPiA+ID4gPiArcGVyZl91c2VyX2FjY2VzcyAoYXJtNjQgYW5kIHJpc2N2IG9u bHkpCj4gPiA+ID4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4g PiA+ICsKPiA+ID4gPiArQ29udHJvbHMgdXNlciBzcGFjZSBhY2Nlc3MgZm9yIHJlYWRpbmcgcGVy ZiBldmVudCBjb3VudGVycy4KPiA+ID4gPgo+ID4gPiA+IC1Db250cm9scyB1c2VyIHNwYWNlIGFj Y2VzcyBmb3IgcmVhZGluZyBwZXJmIGV2ZW50IGNvdW50ZXJzLiBXaGVuIHNldCB0byAxLAo+ID4g PiA+IC11c2VyIHNwYWNlIGNhbiByZWFkIHBlcmZvcm1hbmNlIG1vbml0b3IgY291bnRlciByZWdp c3RlcnMgZGlyZWN0bHkuCj4gPiA+ID4gK2FybTY0Cj4gPiA+ID4gKz09PT09Cj4gPiA+ID4KPiA+ ID4gPiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCAoYWNjZXNzIGRpc2FibGVkKS4KPiA+ID4gPiAr V2hlbiBzZXQgdG8gMSwgdXNlciBzcGFjZSBjYW4gcmVhZCBwZXJmb3JtYW5jZSBtb25pdG9yIGNv dW50ZXIgcmVnaXN0ZXJzCj4gPiA+ID4gK2RpcmVjdGx5Lgo+ID4gPiA+Cj4gPiA+ID4gIFNlZSBE b2N1bWVudGF0aW9uL2FybTY0L3BlcmYucnN0IGZvciBtb3JlIGluZm9ybWF0aW9uLgo+ID4gPiA+ Cj4gPiA+ID4gK3Jpc2N2Cj4gPiA+ID4gKz09PT09Cj4gPiA+ID4gKwo+ID4gPiA+ICtXaGVuIHNl dCB0byAwLCB1c2VyIGFjY2VzcyBpcyBkaXNhYmxlZC4KPiA+ID4gPiArCj4gPiA+ID4gK1doZW4g c2V0IHRvIDEsIHVzZXIgc3BhY2UgY2FuIHJlYWQgcGVyZm9ybWFuY2UgbW9uaXRvciBjb3VudGVy IHJlZ2lzdGVycwo+ID4gPiA+ICtkaXJlY3RseSBvbmx5IHRocm91Z2ggcGVyZiwgYW55IGRpcmVj dCBhY2Nlc3Mgd2l0aG91dCBwZXJmIGludGVydmVudGlvbiB3aWxsCj4gPiA+ID4gK3RyaWdnZXIg YW4gaWxsZWdhbCBpbnN0cnVjdGlvbi4KPiA+ID4gPiArCj4gPiA+ID4gK1RoZSBkZWZhdWx0IHZh bHVlIGlzIDIsIGl0IGVuYWJsZXMgdGhlIGxlZ2FjeSBtb2RlLCB0aGF0IGlzIHVzZXIgc3BhY2Ug aGFzCj4gPiA+ID4gK2RpcmVjdCBhY2Nlc3MgdG8gY3ljbGUsIHRpbWUgYW5kIGluc3JldCBDU1Jz IG9ubHkuCj4gPiA+Cj4gPiA+IEkgdGhpbmsgdGhpcyBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSBh IEtjb25maWcgc3ltYm9sLCBhbGxvd2luZyBrZXJuZWxzIHRvCj4gPiA+IGJlIGJ1aWx0IHdpdGgg YSBzZWN1cmUgZGVmYXVsdC4KPiA+Cj4gPiBBY3R1YWxseSBJIHdhcyBtb3JlIGluIGZhdm9yIG9m IGhhdmluZyB0aGUgZGVmYXVsdCB0byAxIChpZSB0aGUgc2VjdXJlCj4gPiBvcHRpb24pIGFuZCBs ZXQgdGhlIGRpc3Ryb3MgZGVhbCB3aXRoIHRoZSBsZWdhY3kgbW9kZSAodmlhIGEgc3lzY3RsCj4g PiBwYXJhbWV0ZXIgb24gdGhlIGNvbW1hbmQgbGluZSkgYXMgbG9uZyBhcyB1c2VyLXNwYWNlIGhh cyBub3QgYmVlbgo+ID4gZml4ZWQ6IGRvZXMgdGhhdCBtYWtlIHNlbnNlPwo+Cj4gWWVzLCBJJ2Qg cHJlZmVyIHRoYXQgdG9vLiBJIGFzc3VtZWQgdGhlIGRlZmF1bHQgd2FzIDIgaW4gdGhpcyBwYXRj aAo+IGJlY2F1c2Ugd2UgY291bGRuJ3Qgc2V0IGl0IHRvIDEgZm9yIHNvbWUgcmVhc29uLgo+CgpJ IHdvdWxkIHByZWZlciB0aGF0IHRvby4gSG93ZXZlciwgaXQgd2FzIHNldCB0byAyIGJlY2F1c2Ug aXQgd291bGQgYnJlYWsKdGhlIHVzZXIgc3BhY2UgYXBwbGljYXRpb24gZGVwZW5kaW5nIG9uIHRo ZSBsZWdhY3kgYmVoYXZpb3IgYXMgc29vbiBhcyB0aGUKcGF0Y2hlcyBhcmUgdXBzdHJlYW0uIFRo YXQgaXMgdGhlIHJlYXNvbgpwYWxtZXIgc3VnZ2VzdGVkIGtlZXBpbmcgdGhlIGRlZmF1bHQgdmFs dWUgdG8gMiBpbiBvcmRlciB0byBhdm9pZCB0aGF0LgoKK2Rpc3RybyBmb2xrcyAoY2MnZCkKSWYg dGhlIGRpc3RybyBtYWludGFpbmVyIGNhbiBjb25maXJtIHRoYXQgdGhpcyB3b3VsZCBiZSBhIG5v bi1pc3N1ZSwgSSBhbSBva2F5CndpdGggc2V0dGluZyB0aGUgZGVmYXVsdCB0byAxLgoKCj4gVGhh bmtzLAo+IGRyZXcKCgoKLS0gClJlZ2FyZHMsCkF0aXNoCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgt cmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg== 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 18453C7618E for ; Sat, 29 Apr 2023 06:20:42 +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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZFgSDnO0vqrBCqPXXJ+vWDf++kPcRXJbs3zQZ+tHsPw=; b=krM45SZ8BmuPqg boLOhYTCWwRNneBYOQwAaziMDNYHtKR3QcPASmT3CGFqrbkrL8QVsJkqMZzGwb2yghTEeKP/sPQYn EgvptAZFjzJXPPe/pKZacfGvhIYIl6pd06EfixOES6Plo8iNqPdLVkIJVYkjjvKj8vzHW493UeXFP SAbsJ6DoAbJNzHjK9PfgwZa6nXW0bPXFDnPJM69HpPMkHmNAy0ENmZHlmo1gCwPXpvBFXYLb+cmoJ /khoyk0USwv2K4fHG1wnKVYQlWnzxiKSDpyH0Y9flreiCGY8A5aggK4aXxav3IP9j6q5WhW9tuli0 hBFiglIatBz6RZCW27fA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1psdvy-00CJHi-04; Sat, 29 Apr 2023 06:19:50 +0000 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1psdvu-00CJGt-2D for linux-arm-kernel@lists.infradead.org; Sat, 29 Apr 2023 06:19:48 +0000 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-24986ade373so698536a91.2 for ; Fri, 28 Apr 2023 23:19:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atishpatra.org; s=google; t=1682749185; x=1685341185; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=yTMjDk3SOgiCPjxuLxhArxtC95/xlU4WSt6SJxU0e7Y=; b=XyLmSLRRw5vhwFunIep9bCU9Ptv8zJooq6+MLDBGrovDSvagRv6kBI6twD+YR78KiG BeEetk1c26wanqo2urmTL/brQ9DSTPDvQi403y65gx4fJSSvfG/Xk14q2glr2oRKHS/T h2ievV6hgV6lbgRlb6Vj2FQy/RghnjYGNW+f4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682749185; x=1685341185; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yTMjDk3SOgiCPjxuLxhArxtC95/xlU4WSt6SJxU0e7Y=; b=h7URvHS7xpQXXSocqlOA1HKc6TgLBnslH8g+TBQdzd8Zvz9g6E71cD+nL1hIoXdwXG 72Lv06tAjMN4Fq9Tc7Bg8eKfyXAsXyhGpYNINspyxMZqxgclU8auz+J/DINxnT6PwmHL p43KQAuLIRD6HBmGIbGK5s3oQkdOnt7iD1U62NREFmdpYgVPaz9kuDjExX9URu01GUuZ hedAoEcTrz4RkFDtjSXPvUHu/3LuO7jyZQ3L0EaEBEnmOmx/hLTi+oO77os3dWLPTgrr CWyaD/cN30a1IQhC77zeOmtUefHqEG+grBY+QBwvhBNNdnbywSlWKXbKWuegFNEM4abN mPvw== X-Gm-Message-State: AC+VfDx1IJ+ALAJa5zBELPK3YS0P3QgS0SJJ3diPICJvNNBaWZgcFMSD xucDrJ2k6b6GfZwUUCAtm77zOEw7A5QNMiHVniAd X-Google-Smtp-Source: ACHHUZ4LhwwR0e1B330AbEkd5AimnCzdBqVUhs/POzba4tZ0rYglv0TK7U3GChiM2m5G/Kut356agp6Sgo1hYtHMuJk= X-Received: by 2002:a17:90b:1b03:b0:246:681c:71fd with SMTP id nu3-20020a17090b1b0300b00246681c71fdmr7622447pjb.6.1682749184993; Fri, 28 Apr 2023 23:19:44 -0700 (PDT) MIME-Version: 1.0 References: <20230413161725.195417-1-alexghiti@rivosinc.com> <20230413161725.195417-5-alexghiti@rivosinc.com> <3bwxedsrovutzhlmlnozeuvz4zqnr32kuef2mdzmnbniajh6vb@we6jzlwkfuof> In-Reply-To: <3bwxedsrovutzhlmlnozeuvz4zqnr32kuef2mdzmnbniajh6vb@we6jzlwkfuof> From: Atish Patra Date: Sat, 29 Apr 2023 11:49:33 +0530 Message-ID: Subject: Re: [PATCH 4/4] riscv: Enable perf counters user access only through perf To: Andrew Jones Cc: Alexandre Ghiti , Jonathan Corbet , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Paul Walmsley , Palmer Dabbelt , Albert Ou , Anup Patel , Will Deacon , Rob Herring , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arm-kernel@lists.infradead.org, David Abdurachmanov , Heinrich Schuchardt , Andreas Schwab , mafm@debian.org, aurel32@debian.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230428_231947_014082_E96DE2DD X-CRM114-Status: GOOD ( 36.54 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBBcHIgMjYsIDIwMjMgYXQgNjo1NeKAr1BNIEFuZHJldyBKb25lcyA8YWpvbmVzQHZl bnRhbmFtaWNyby5jb20+IHdyb3RlOgo+Cj4gT24gV2VkLCBBcHIgMjYsIDIwMjMgYXQgMDM6MTc6 MDFQTSArMDIwMCwgQWxleGFuZHJlIEdoaXRpIHdyb3RlOgo+ID4gT24gV2VkLCBBcHIgMjYsIDIw MjMgYXQgMjo1N+KAr1BNIEFuZHJldyBKb25lcyA8YWpvbmVzQHZlbnRhbmFtaWNyby5jb20+IHdy b3RlOgo+ID4gPgo+ID4gPiBPbiBUaHUsIEFwciAxMywgMjAyMyBhdCAwNjoxNzoyNVBNICswMjAw LCBBbGV4YW5kcmUgR2hpdGkgd3JvdGU6Cj4gPiA+ID4gV2UgdXNlZCB0byB1bmNvbmRpdGlvbm5h bGx5IGV4cG9zZSB0aGUgY3ljbGUgYW5kIGluc3RyZXQgY3NycyB0bwo+ID4gPiA+IHVzZXJzcGFj ZSwgd2hpY2ggZ2l2ZXMgcmlzZSB0byBzZWN1cml0eSBjb25jZXJucy4KPiA+ID4gPgo+ID4gPiA+ IFNvIG9ubHkgYWxsb3cgYWNjZXNzIHRvIGh3IGNvdW50ZXJzIGZyb20gdXNlcnNwYWNlIHRocm91 Z2ggdGhlIHBlcmYKPiA+ID4gPiBmcmFtZXdvcmsgd2hpY2ggd2lsbCBoYW5kbGUgY29udGV4dCBz d2l0Y2hzLCBwZXItdGFzayBldmVudHMuLi5ldGMuIEJ1dAo+ID4gPiA+IGFzIHdlIGNhbm5vdCBi cmVhayB1c2Vyc3BhY2UsIHdlIGdpdmUgdGhlIHVzZXIgdGhlIGNob2ljZSB0byBnbyBiYWNrIHRv Cj4gPiA+ID4gdGhlIHByZXZpb3VzIGJlaGF2aW91ciBieSBzZXR0aW5nIHRoZSBzeXNjdGwgcGVy Zl91c2VyX2FjY2Vzcy4KPiA+ID4gPgo+ID4gPiA+IFdlIGFsc28gaW50cm9kdWNlIGEgbWVhbnMg dG8gZGlyZWN0bHkgbWFwIHRoZSBoYXJkd2FyZSBjb3VudGVycyB0bwo+ID4gPiA+IHVzZXJzcGFj ZSwgdGh1cyBhdm9pZGluZyB0aGUgbmVlZCBmb3Igc3lzY2FsbHMgd2hlbmV2ZXIgYW4gYXBwbGlj YXRpb24KPiA+ID4gPiB3YW50cyB0byBhY2Nlc3MgY291bnRlcnMgdmFsdWVzLgo+ID4gPiA+Cj4g PiA+ID4gTm90ZSB0aGF0IGFyY2hfcGVyZl91cGRhdGVfdXNlcnBhZ2UgaXMgYSBjb3B5IG9mIGFy bTY0IGNvZGUuCj4gPiA+ID4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgR2hpdGkg PGFsZXhnaGl0aUByaXZvc2luYy5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIERvY3VtZW50YXRp b24vYWRtaW4tZ3VpZGUvc3lzY3RsL2tlcm5lbC5yc3QgfCAgMjMgKysrLQo+ID4gPiA+ICBhcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL3BlcmZfZXZlbnQuaCAgICAgICAgIHwgICAzICsKPiA+ID4gPiAg YXJjaC9yaXNjdi9rZXJuZWwvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMiArLQo+ID4g PiA+ICBhcmNoL3Jpc2N2L2tlcm5lbC9wZXJmX2V2ZW50LmMgICAgICAgICAgICAgIHwgIDY1ICsr KysrKysrKysrCj4gPiA+ID4gIGRyaXZlcnMvcGVyZi9yaXNjdl9wbXUuYyAgICAgICAgICAgICAg ICAgICAgfCAgNDIgKysrKysrKysKPiA+ID4gPiAgZHJpdmVycy9wZXJmL3Jpc2N2X3BtdV9sZWdh Y3kuYyAgICAgICAgICAgICB8ICAxNyArKysKPiA+ID4gPiAgZHJpdmVycy9wZXJmL3Jpc2N2X3Bt dV9zYmkuYyAgICAgICAgICAgICAgICB8IDExMyArKysrKysrKysrKysrKysrKystLQo+ID4gPiA+ ICBpbmNsdWRlL2xpbnV4L3BlcmYvcmlzY3ZfcG11LmggICAgICAgICAgICAgIHwgICAzICsKPiA+ ID4gPiAgdG9vbHMvbGliL3BlcmYvbW1hcC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2NSAr KysrKysrKysrKwo+ID4gPiA+ICA5IGZpbGVzIGNoYW5nZWQsIDMyMiBpbnNlcnRpb25zKCspLCAx MSBkZWxldGlvbnMoLSkKPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3Yva2Vy bmVsL3BlcmZfZXZlbnQuYwo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vYWRtaW4tZ3VpZGUvc3lzY3RsL2tlcm5lbC5yc3QgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1 aWRlL3N5c2N0bC9rZXJuZWwucnN0Cj4gPiA+ID4gaW5kZXggNGI3YmZlYTI4Y2Q3Li4wMmIyYTQw YTM2NDcgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9zeXNj dGwva2VybmVsLnJzdAo+ID4gPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvc3lz Y3RsL2tlcm5lbC5yc3QKPiA+ID4gPiBAQCAtOTQxLDE2ICs5NDEsMzEgQEAgZW5hYmxlZCwgb3Ro ZXJ3aXNlIHdyaXRpbmcgdG8gdGhpcyBmaWxlIHdpbGwgcmV0dXJuIGBgLUVCVVNZYGAuCj4gPiA+ ID4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDguCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IC1wZXJm X3VzZXJfYWNjZXNzIChhcm02NCBvbmx5KQo+ID4gPiA+IC09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KPiA+ID4gPiArcGVyZl91c2VyX2FjY2VzcyAoYXJtNjQgYW5kIHJpc2N2IG9u bHkpCj4gPiA+ID4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4g PiA+ICsKPiA+ID4gPiArQ29udHJvbHMgdXNlciBzcGFjZSBhY2Nlc3MgZm9yIHJlYWRpbmcgcGVy ZiBldmVudCBjb3VudGVycy4KPiA+ID4gPgo+ID4gPiA+IC1Db250cm9scyB1c2VyIHNwYWNlIGFj Y2VzcyBmb3IgcmVhZGluZyBwZXJmIGV2ZW50IGNvdW50ZXJzLiBXaGVuIHNldCB0byAxLAo+ID4g PiA+IC11c2VyIHNwYWNlIGNhbiByZWFkIHBlcmZvcm1hbmNlIG1vbml0b3IgY291bnRlciByZWdp c3RlcnMgZGlyZWN0bHkuCj4gPiA+ID4gK2FybTY0Cj4gPiA+ID4gKz09PT09Cj4gPiA+ID4KPiA+ ID4gPiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCAoYWNjZXNzIGRpc2FibGVkKS4KPiA+ID4gPiAr V2hlbiBzZXQgdG8gMSwgdXNlciBzcGFjZSBjYW4gcmVhZCBwZXJmb3JtYW5jZSBtb25pdG9yIGNv dW50ZXIgcmVnaXN0ZXJzCj4gPiA+ID4gK2RpcmVjdGx5Lgo+ID4gPiA+Cj4gPiA+ID4gIFNlZSBE b2N1bWVudGF0aW9uL2FybTY0L3BlcmYucnN0IGZvciBtb3JlIGluZm9ybWF0aW9uLgo+ID4gPiA+ Cj4gPiA+ID4gK3Jpc2N2Cj4gPiA+ID4gKz09PT09Cj4gPiA+ID4gKwo+ID4gPiA+ICtXaGVuIHNl dCB0byAwLCB1c2VyIGFjY2VzcyBpcyBkaXNhYmxlZC4KPiA+ID4gPiArCj4gPiA+ID4gK1doZW4g c2V0IHRvIDEsIHVzZXIgc3BhY2UgY2FuIHJlYWQgcGVyZm9ybWFuY2UgbW9uaXRvciBjb3VudGVy IHJlZ2lzdGVycwo+ID4gPiA+ICtkaXJlY3RseSBvbmx5IHRocm91Z2ggcGVyZiwgYW55IGRpcmVj dCBhY2Nlc3Mgd2l0aG91dCBwZXJmIGludGVydmVudGlvbiB3aWxsCj4gPiA+ID4gK3RyaWdnZXIg YW4gaWxsZWdhbCBpbnN0cnVjdGlvbi4KPiA+ID4gPiArCj4gPiA+ID4gK1RoZSBkZWZhdWx0IHZh bHVlIGlzIDIsIGl0IGVuYWJsZXMgdGhlIGxlZ2FjeSBtb2RlLCB0aGF0IGlzIHVzZXIgc3BhY2Ug aGFzCj4gPiA+ID4gK2RpcmVjdCBhY2Nlc3MgdG8gY3ljbGUsIHRpbWUgYW5kIGluc3JldCBDU1Jz IG9ubHkuCj4gPiA+Cj4gPiA+IEkgdGhpbmsgdGhpcyBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSBh IEtjb25maWcgc3ltYm9sLCBhbGxvd2luZyBrZXJuZWxzIHRvCj4gPiA+IGJlIGJ1aWx0IHdpdGgg YSBzZWN1cmUgZGVmYXVsdC4KPiA+Cj4gPiBBY3R1YWxseSBJIHdhcyBtb3JlIGluIGZhdm9yIG9m IGhhdmluZyB0aGUgZGVmYXVsdCB0byAxIChpZSB0aGUgc2VjdXJlCj4gPiBvcHRpb24pIGFuZCBs ZXQgdGhlIGRpc3Ryb3MgZGVhbCB3aXRoIHRoZSBsZWdhY3kgbW9kZSAodmlhIGEgc3lzY3RsCj4g PiBwYXJhbWV0ZXIgb24gdGhlIGNvbW1hbmQgbGluZSkgYXMgbG9uZyBhcyB1c2VyLXNwYWNlIGhh cyBub3QgYmVlbgo+ID4gZml4ZWQ6IGRvZXMgdGhhdCBtYWtlIHNlbnNlPwo+Cj4gWWVzLCBJJ2Qg cHJlZmVyIHRoYXQgdG9vLiBJIGFzc3VtZWQgdGhlIGRlZmF1bHQgd2FzIDIgaW4gdGhpcyBwYXRj aAo+IGJlY2F1c2Ugd2UgY291bGRuJ3Qgc2V0IGl0IHRvIDEgZm9yIHNvbWUgcmVhc29uLgo+CgpJ IHdvdWxkIHByZWZlciB0aGF0IHRvby4gSG93ZXZlciwgaXQgd2FzIHNldCB0byAyIGJlY2F1c2Ug aXQgd291bGQgYnJlYWsKdGhlIHVzZXIgc3BhY2UgYXBwbGljYXRpb24gZGVwZW5kaW5nIG9uIHRo ZSBsZWdhY3kgYmVoYXZpb3IgYXMgc29vbiBhcyB0aGUKcGF0Y2hlcyBhcmUgdXBzdHJlYW0uIFRo YXQgaXMgdGhlIHJlYXNvbgpwYWxtZXIgc3VnZ2VzdGVkIGtlZXBpbmcgdGhlIGRlZmF1bHQgdmFs dWUgdG8gMiBpbiBvcmRlciB0byBhdm9pZCB0aGF0LgoKK2Rpc3RybyBmb2xrcyAoY2MnZCkKSWYg dGhlIGRpc3RybyBtYWludGFpbmVyIGNhbiBjb25maXJtIHRoYXQgdGhpcyB3b3VsZCBiZSBhIG5v bi1pc3N1ZSwgSSBhbSBva2F5CndpdGggc2V0dGluZyB0aGUgZGVmYXVsdCB0byAxLgoKCj4gVGhh bmtzLAo+IGRyZXcKCgoKLS0gClJlZ2FyZHMsCkF0aXNoCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==