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 X-Spam-Level: X-Spam-Status: No, score=-17.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF9AFC4338F for ; Fri, 6 Aug 2021 22:53:38 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 81409610CB for ; Fri, 6 Aug 2021 22:53:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 81409610CB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pM667I03O0sG23B9feO7WaO6YNytV4qUEUZP9/1L2Xs=; b=yi2NGM6xjHBPCt bJSp9MJGKSaXw3EEJftBKquOzKx/v90r0kQ+A1FS6b1pfk2bdWye+zvvJSaZddBP1XB3P5NXqY+ZX IbImmICYswxanCJM6q4Hq0FGzmBAf8FbOL6aJ+rLlJC62LygwF9px+H3AZOeuWifGKwOctu4ngpdT GtjptHoAzAZwas1n9VjpMLEO/mR7vkGcQjtpGuJXq8ez1aqZFh8fGDyPNenso39DI86ZqhsYfuXl3 fCNTVRaHs6kz0BvkaPqfMSklfByNfOIlenJpKmsXphlxglrRKZTUe2qpqODhIi8FgBHfrxeg4UhW3 s5IBvk2zAUGydCs85DfQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mC8gq-00Dlgw-VN; Fri, 06 Aug 2021 22:51:45 +0000 Received: from mail-io1-f54.google.com ([209.85.166.54]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mC8gb-00Dld6-7P for linux-arm-kernel@lists.infradead.org; Fri, 06 Aug 2021 22:51:31 +0000 Received: by mail-io1-f54.google.com with SMTP id m13so14488084iol.7 for ; Fri, 06 Aug 2021 15:51:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CWafI0pCjrrfNHxq9438YyHZcLkkHXFc+m0sRuUPdcs=; b=Sa3cKkZ8bCTGqUhvRRD+Q/RrFqusY5Bdx1omcuEuNKqCDmcxmZvHFpJUrnVvH8EVOF nUYhBwpbtmjivD9nd2FOaQNPD5qTi6URreyT9FbcFhcVoM93539SWKFYWpcvQrnYO3f1 a9GQJKYpE7pQjGeXkmasa4tsN11V8Jt/QHaXkrXSCG8z5vdRDgsLdB+U6noyq79vuK7Z x5s8xb7qFK+aBQVDhCynVFTCzkOEP1l/GACXyS6jkieChdAGx0ZYO7JVXnUHOamLb04v r/ZG5x90MVgt0kYjSmlFBt+eDfk18mYF5y1ilUzxOJkwwgVn3PYvn94ZBnLi5fp3mxwA Tlyw== X-Gm-Message-State: AOAM533tZ37T3w+dy7+L6CXNjfSW3yaWG81CnNCBgCp6WqsZDud7Bhbo s4/C1dxRjBulUXHA5sSCxA== X-Google-Smtp-Source: ABdhPJweFO666OdbM/CVxzCJS7O+0EI1W/IrUBQGjvsStdD20D+7wtlIVko7cnv6EYv1bValeWrsnw== X-Received: by 2002:a5e:d719:: with SMTP id v25mr3510626iom.124.1628290288763; Fri, 06 Aug 2021 15:51:28 -0700 (PDT) Received: from xps15.herring.priv ([64.188.179.248]) by smtp.googlemail.com with ESMTPSA id x11sm5670338ilu.3.2021.08.06.15.51.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Aug 2021 15:51:28 -0700 (PDT) From: Rob Herring To: Will Deacon , Mark Rutland , Catalin Marinas , Peter Zijlstra , Ingo Molnar Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Arnaldo Carvalho de Melo , Jiri Olsa , Kan Liang , Ian Rogers , Alexander Shishkin , honnappa.nagarahalli@arm.com, Zachary.Leaf@arm.com, Raphael Gault , Jonathan Cameron , Namhyung Kim , Itaru Kitayama , linux-perf-users@vger.kernel.org Subject: [PATCH v9 1/3] arm64: perf: Add userspace counter access disable switch Date: Fri, 6 Aug 2021 16:51:21 -0600 Message-Id: <20210806225123.1958497-2-robh@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210806225123.1958497-1-robh@kernel.org> References: <20210806225123.1958497-1-robh@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210806_155129_309247_3493A074 X-CRM114-Status: GOOD ( 15.98 ) 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="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Like x86, some users may want to disable userspace PMU counter altogether. Add a sysctl 'perf_user_access' file to control userspace counter access. The default is '0' which is disabled. Writing '1' enables access. Note that x86 also supports writing '2' to globally enable user access. As there's not existing userspace support to worry about, this shouldn't be necessary for Arm. It could be added later if the need arises. Cc: Will Deacon Cc: Mark Rutland Cc: Peter Zijlstra Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Namhyung Kim Cc: Catalin Marinas Cc: linux-perf-users@vger.kernel.org Signed-off-by: Rob Herring --- v9: - Use sysctl instead of sysfs attr - Default to disabled v8: - New patch --- arch/arm64/kernel/perf_event.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c index d07788dad388..74f77b68f5f0 100644 --- a/arch/arm64/kernel/perf_event.c +++ b/arch/arm64/kernel/perf_event.c @@ -286,6 +286,21 @@ static const struct attribute_group armv8_pmuv3_events_attr_group = { PMU_FORMAT_ATTR(event, "config:0-15"); PMU_FORMAT_ATTR(long, "config1:0"); +static int sysctl_perf_user_access __read_mostly; + +static struct ctl_table armv8_pmu_sysctl_table[] = { + { + .procname = "perf_user_access", + .data = &sysctl_perf_user_access, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = SYSCTL_ZERO, + .extra2 = SYSCTL_ONE, + }, + { } +}; + static inline bool armv8pmu_event_is_64bit(struct perf_event *event) { return event->attr.config1 & 0x1; @@ -1136,6 +1151,8 @@ static int armv8_pmu_init(struct arm_pmu *cpu_pmu, char *name, cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_CAPS] = caps ? caps : &armv8_pmuv3_caps_attr_group; + register_sysctl("kernel", armv8_pmu_sysctl_table); + return 0; } -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel