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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 D6642C25B7C for ; Tue, 21 May 2024 16:43:16 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 913F010E1F5; Tue, 21 May 2024 16:43:16 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="bR4ScfMn"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3D39E10E0C9 for ; Tue, 21 May 2024 16:43:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1716309793; x=1747845793; h=date:message-id:from:to:cc:subject:in-reply-to: references:mime-version; bh=ikBH6sbfKTAOiwww2UIy5YyV57eiD6/oV79DDG9g5gY=; b=bR4ScfMnzZo+oOMlkHy8zj9JF+OOc/qqOK3Tw4UELXcZb5AXSPNxZjR/ A6uneYEEHCYaJO18H6/VEJ7kYYPIXj/jpkSUahjmYZBX3RUk+G8W7ehhi s3gY/tzCCvggqd1wnT8EZvxikpSTCUcK0/uuEjCQc+gVNvKjs3cwS/udv yPxDqZKEuXM7s3DQAqELp8pzpL1MPp7WFvm8yjmNr4WcO67ngkOF+W1cg BNHNYqRMLRhBs7PzSo6QLDPJj5ZEZofKXJ2DgcUvD4hBgupWZP1oSfIiC 2pudWQn3UYruXwqQIMX0cg9uVu8ES7B8uIx6ycZqZQmgZwWiH5VFsz4kP g==; X-CSE-ConnectionGUID: KFfYDy+hR/uMGcWnp+SsvA== X-CSE-MsgGUID: co3FhSCwTTS9iJp9DeB+LA== X-IronPort-AV: E=McAfee;i="6600,9927,11078"; a="30025914" X-IronPort-AV: E=Sophos;i="6.08,178,1712646000"; d="scan'208";a="30025914" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 May 2024 09:43:12 -0700 X-CSE-ConnectionGUID: WQZ6gKF3RBe7p3K/nMNS4g== X-CSE-MsgGUID: CY7C92QtQHKkxNiRZ2F2ug== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,178,1712646000"; d="scan'208";a="33098974" Received: from orsosgc001.jf.intel.com (HELO orsosgc001.intel.com) ([10.165.21.138]) by fmviesa010-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 May 2024 09:43:12 -0700 Date: Tue, 21 May 2024 09:43:12 -0700 Message-ID: <85zfsj15gf.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" To: "Souza, Jose" Cc: "intel-xe@lists.freedesktop.org" Subject: Re: [PATCH 00/17] Add OA functionality to Xe In-Reply-To: <8f86d8ea1d555e8261aab25bda0011ff96698522.camel@intel.com> References: <20240315013518.2848986-1-ashutosh.dixit@intel.com> <438b276a653bf56fe1e0e131709d615dec86ae3e.camel@intel.com> <87frufuc96.wl-ashutosh.dixit@intel.com> <96d03111d07e8182e7ecb3c0ca1942c7fef22e6f.camel@intel.com> <595ea35d63cd92777b36f6ab87cd1f6483a4b38f.camel@intel.com> <851q5v2ljw.wl-ashutosh.dixit@intel.com> <8f86d8ea1d555e8261aab25bda0011ff96698522.camel@intel.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-redhat-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" On Tue, 21 May 2024 09:29:51 -0700, Souza, Jose wrote: > > On Tue, 2024-05-21 at 09:10 -0700, Dixit, Ashutosh wrote: > > On Tue, 21 May 2024 07:47:58 -0700, Souza, Jose wrote: > > > > Hi Jose, > > > > > > Other ask, can you remove this 'Failed to remove unknown OA config' > > > > debug message from xe_oa_remove_config_ioctl()? > > > > > > Missed 'Insufficient privileges to remove xe OA config', that need to be > > > removed too from xe_oa_remove_config_ioctl(). > > > > > > > Mesa will be using DRM_XE_PERF_OP_REMOVE_CONFIG with config id set to > > > > UINT64_MAX to detect if Xe KMD supports OA counters and if application > > > > has enough permissions to use it. So it causes dmesg to be flooded > > > > with 'xe 0000:00:02.0: [drm:xe_oa_remove_config_ioctl [xe]] Failed to > > > > remove unknown OA config' messages when running tests suites. > > > > > > > > Or do you have other suggestion of uAPI that I can use. > > > > OK, so you are relying on ENODEV and EACCES errno's from > > DRM_XE_PERF_OP_REMOVE_CONFIG to find out (a) if OA is present and (b) if > > you need to be root (actually CAP_PERFMON or CAP_SYS_ADMIN). > > yep > > > > > This logic in Xe should be close to what we have in i915? What does Mesa do > > for i915, or what doesn't work in Xe? > > > > Here are some pointers: > > > > * You can execute DRM_XE_DEVICE_QUERY_OA_UNITS to see if OA is present > > > > * Add/remove OA configs and using the global OAG buffer (time based > > sampling or DRM_XE_OA_PROPERTY_SAMPLE_OA set) are priviliged operations > > (need root). Operations which only need OAR/OAC (OA queries, without > > DRM_XE_OA_PROPERTY_SAMPLE_OA) can be executed by non-root. > > > > * If "/proc/sys/dev/xe/perf_stream_paranoid" is 0, all operations can be > > executed by non-root users. Otherwise, as I described in the previous > > point. > > It is possible that process not started by root has CAP_PERFMON: Yes, correct. Above I am using "root" loosely as "CAP_PERFMON or CAP_SYS_ADMIN". So if root sets 'perf_stream_paranoid' to 0, normal users can do OA priviliged operations (as described above). If root sets 'perf_stream_paranoid' to 1, only CAP_PERFMON or CAP_SYS_ADMIN users can do OA priviliged operations. > "Unprivileged processes with enabled CAP_PERFMON capability are treated > as privileged processes with respect to perf_events performance > monitoring and observability operations,..." > > And from what I understood only root can write to perf_stream_paranoid, > so I don't see a point in having this file... So I don't know how this statement follows? root or superuser is the one which gives the permission to non-CAP_PERFMON and non-CAP_SYS_ADMIN users to be able to do priviliged OA operations. > > So basically I think you just need to check for the perf_stream_paranoid > > file above. It will tell you both (a) if OA is present (because we are > > going to merge the code which creates this file together with OA) and (b) > > if you need to be root for particular operations. > > > > Thanks. > > -- > > Ashutosh >