Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3354904pxb; Mon, 17 Jan 2022 18:25:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJxMFopO+wWmsIIj5arTrt3cYGuLugRw4XyIeVKQE/Gfsx00nAX6W110/cUjQOTA+y+puOoK X-Received: by 2002:a05:6a00:a90:b0:4bd:320a:d579 with SMTP id b16-20020a056a000a9000b004bd320ad579mr23927724pfl.47.1642472730176; Mon, 17 Jan 2022 18:25:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642472730; cv=none; d=google.com; s=arc-20160816; b=zqFR+FnF27ll3F6vZ8XNMHESI5ZxzkZXLhSK2uZ5vPCw/x6nM/deb0ivNgVI90FBhC uha8skWUk2QIK1vmg3PurKcUHgV7aAf0j4spOeUO2IT6qNEqOItwBtjU0I/hnIeQKB6b dji+mQiO7YpMt/rN5SGjE0dtteJaAH6cm1bWzG/rkmIqu2pK4vq4ZTXo0s8b9ylA6iRw xZ9eaRg8qo79gWgq+uIRfilFcCxygqpQugHBC4hV5a8bgkMDN6nZ1B42FaBY5scaY4mI t+SddewF7REl+CK/9kz3phrZCzb6SuXsMXlJnatFajGPszOzEAvEo5zxEq5iv6UhLVzc hmbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=h3uZB03fpfC8jMiKYcS7iFOx9zqnx1tuMbfxx2nDE1w=; b=p+vDghr4XvDoc6Um3FBfczjEa7jMz6zIciClYqOPiJdVKQd0ou/UOP2zG8jJiFIulr 1WEVvDSOsyL01zcDMw42SmguGR2njvIZtqcBJ0yf39lkpHkq42ebDdCmTjVxF+aCl5z/ L6jJCmqAC6pbCslydVA2saW72GJ3DjqDNtXd3j8qXnRZmFpl6iOjdHHC9fKAE1l3yC3H TXEIOd+sbLViPWmjeAk2b0rBS/H8LKR9EILyaG/uFG+ieA1atRaFDmZqmnaI1QZC/XUh 2UQa/ylTRhf0sKLF1gj0a8nhQlNHCXB65ptOsjm3kxaCM8Z2ye2lmsFPqui7Gbl5Kci+ 0tZQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f15si16669094pgm.365.2022.01.17.18.25.18; Mon, 17 Jan 2022 18:25:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230233AbiAQMpc (ORCPT + 99 others); Mon, 17 Jan 2022 07:45:32 -0500 Received: from foss.arm.com ([217.140.110.172]:57844 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240031AbiAQMp3 (ORCPT ); Mon, 17 Jan 2022 07:45:29 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B918C6D; Mon, 17 Jan 2022 04:45:28 -0800 (PST) Received: from e127744.arm.com (unknown [10.57.36.133]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 78EA63F73D; Mon, 17 Jan 2022 04:45:27 -0800 (PST) From: German Gomez To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, will@kernel.org, mark.rutland@arm.com, james.clark@arm.com, leo.yan@linaro.org Cc: German Gomez Subject: [RFC PATCH 2/2] perf: arm_spe: Enable CONTEXT packets in SPE traces if the profiler runs in CPU mode. Date: Mon, 17 Jan 2022 12:44:32 +0000 Message-Id: <20220117124432.3119132-3-german.gomez@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220117124432.3119132-1-german.gomez@arm.com> References: <20220117124432.3119132-1-german.gomez@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Enable CONTEXT packets in SPE traces if the profiler runs in CPU mode. This is no less permissive than the existing behavior for the following reason: If perf_event_paranoid <= 0, then non perfmon_capable() users can open a per-CPU event. With a per-CPU event, unpriviledged users are allowed to profile _all_ processes, even ones owned by root. Without this change, users could see kernel addresses, root processes, etc, but not gather the PIDs of those processes. The PID is probably the least sensitive of all the information. It would be more idiomatic to check the perf_event_paranoid level with perf_allow_cpu(), but this function is not exported so cannot be used from a module. Looking for cpu != -1 is the indirect way of checking the same thing as it could never get to arm_spe_pmu_event_init() without perf_event_paranoid <= 0. Co-authored-by: James Clark Signed-off-by: German Gomez --- drivers/perf/arm_spe_pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c index 8515bf85c..7d9a7fa4f 100644 --- a/drivers/perf/arm_spe_pmu.c +++ b/drivers/perf/arm_spe_pmu.c @@ -711,7 +711,7 @@ static int arm_spe_pmu_event_init(struct perf_event *event) !(spe_pmu->features & SPE_PMU_FEAT_FILT_LAT)) return -EOPNOTSUPP; - spe_pmu->pmscr_cx = perfmon_capable(); + spe_pmu->pmscr_cx = perfmon_capable() || (event->cpu != -1); reg = arm_spe_event_to_pmscr(event); if (!perfmon_capable() && (reg & (BIT(SYS_PMSCR_EL1_PA_SHIFT) | -- 2.25.1