From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 019E6401A01 for ; Tue, 26 May 2026 14:54:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779807257; cv=none; b=ZGXXOr++K63zLvq30q8DNtVsVpam5v14Cot/ZXvrEaRXLUtyjpKFA520AGzjkLthybko5MDUHTGstUgLBaihcf2uLw6MLZsfVVGQ4m/r165ANfvT6yVs/T8fT0O1tl+eaU1muuyiGu6g/ah1NQxT2x2CRYMuvrSG866xDeO1fMM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779807257; c=relaxed/simple; bh=kr1CO7sl7TPhLtjzqwjEONqTeXB0g9GRZzr+aOdE6l4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D/pXIxhGmpFiNIzbHilHTg3qY7lUPxvse6m70tGIzk2OFCZER19IWviNm39BDdJ3ipHA3Cr2bg//7LKnDL1/LDmprcU4V7UVetHEzA6F2PHCcTHnGAvYozUvi/5LyRBX2E2HzDNAPJWoc5MGjPLDtY89hO149LGNPiVu8ADV9ro= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ZvnzSAmC; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ULYY8Tgj; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ZvnzSAmC"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ULYY8Tgj" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64QCsW6F2496588 for ; Tue, 26 May 2026 14:54:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=eGbs2wuIzx4 oRW315cfu7taJ31oBbt57nbm+n+nx9q8=; b=ZvnzSAmCvS9f1iVT1P+Yu9uIfh4 R/9ljsXmBH+9d5QcRlel38W6uDA+k7kPJKfJTR5gsOBMR6wv3cSG7x9NbnSahi2u Wb/1EaPlGppMBKkQYkU4kbzg7JOXsG4Pojr60M0NwrEYlI+DQev1X4a76rNzXXwN cObj7IKn+V1UWhhjc8xa0gHeps7Aqr4ojHq86cXZnRVrnY9GAr+q9dJ3qi4Bs1Wn DAfn4ieSuRuTKFu5zaGwFoSsPZ8Ge1SgcHxoXdK/bmp1RPdxF1UxFfjf/fOrTisq y3BFyqcfHWYqwbO2kdyqw6EEittXYIk6Wq8Uiyns7944epFy8QmUFdI9sug== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ecpyqmyc2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 26 May 2026 14:54:15 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2bd5b20aaa6so112191525ad.2 for ; Tue, 26 May 2026 07:54:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779807254; x=1780412054; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eGbs2wuIzx4oRW315cfu7taJ31oBbt57nbm+n+nx9q8=; b=ULYY8Tgj/+LwMbZNNNn/nB8zGWF0m0ndXwGhN1E8SKdIeevCqMUGf20Wq7ZEjtoSrs pU7Uxe0DjiVq9KTDnxSBKtHSlROTwwHg4ehM+BrVDd782aFMLzDECyPGsbbzb78aOvhq usso2NTaKfAEu49XVRi+gOFahB2KlvKGtMJoh0tJDPYsYUILo8DULHnDcg1QAnv7TXh0 Bii4Z34m6Tra5O0DIA3pd848XTWU0RqlfcqFwg74PI4mH5sHLFM+A+HQi5mauJW1cwu9 MpnDajml0Q1n4oR/M3btlgWjdr6I53xSx0FdvkBbCotBM3JuZC9wVbkv9kc0GXNYHCtJ fgOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779807254; x=1780412054; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eGbs2wuIzx4oRW315cfu7taJ31oBbt57nbm+n+nx9q8=; b=kcZkYVyAP41P6nZxzHyHLGdGS517EeaRymr5LHGtPRsFiFBfw4x8me6zPxhooE2eny AuYUHzhOd1+IBOmQnxtsfpUp5J0gTWj/ZF+rpU1PrdjJAMTfpetp8QsaMRMBOHWp9wVS CdYaa/QP0H+0tPmR397TXNSS/wcnr+GsMWDtKbtL64fl/FCZ73uKf1UF0+8IlebtZUkU FDHG43lKK29/akk+Je0LFnpORHeJJAdH6Vr/6ULptZc1COI6g9OTFjN5EJXCJzxTokPX 6BlU9/3hkOiGNx4fqoGWAtl5FBjFGf+OI6AzupF8YqIOyhAMeZzBXjdPl7BKTi4vLCnl U9gA== X-Forwarded-Encrypted: i=1; AFNElJ+cGJikU1LTtAgRXOsXDNcDnFOHE2ORQt8/lLRPWZZYJnHsc3MfjDJCTImVrGUN9NufPTOXPVDSjp41ciw=@vger.kernel.org X-Gm-Message-State: AOJu0YyHsddPTzOqnz7lvyctvu7XAFeCp5Apfu/rSCBY/KSZ5jHUvuLv DrCIEiVRPtoCWuHfDgIk3CpWu52CcV/e28SbeC2yS99TpdeMOjdEwR59nQvqxCdLpEajzCPFDWR aRAy8pvoSdpaAIjlSZ8BjSB/Cm8wIBBE0Q5N4CLE2xWmRvVH9ZKH3w/MISDuDx7/POEQ= X-Gm-Gg: Acq92OHVmSlui7rGp0N1/wpBYKDPVZnKFTSI6AVKOxHDoY5/h8rRdTcKVC42k16g+th GaEqo+qUqc4eyCVrxuBvBk/jTtumYvlPsTNUPo6yVGM+F1YBGe397PDZyh7zyw50JFjzG6U6YdA Rrr+tjE0kE7Jz07VV7IZbWgZnFMl0cZp9YCovkem/ajgaNdloHaOp6G+j+4eT+t/nvDLznhTQxr SwF/244IK8s39PBAYp/oChhmj03il4a0pyHhR4je0nzH4wA1WQpSIKTLS6D4fAwPyLC5P4pXeHT XLipC2QQyCTGd5uRk22tbN7oCLt6Xz7nDVYqJmaA9PAYinygL9NYR7CH51kAIFjeXkUcv4X95Zo UoZihYazkspqxnQj6cGYa929ZMqdHPkJe X-Received: by 2002:a17:903:1a70:b0:2ba:73c4:4a77 with SMTP id d9443c01a7336-2beb06bdce0mr214471185ad.9.1779807254333; Tue, 26 May 2026 07:54:14 -0700 (PDT) X-Received: by 2002:a17:903:1a70:b0:2ba:73c4:4a77 with SMTP id d9443c01a7336-2beb06bdce0mr214470685ad.9.1779807253823; Tue, 26 May 2026 07:54:13 -0700 (PDT) Received: from localhost ([2601:1c0:5000:d5c:4ec8:83f5:8254:6891]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb5695b83sm117891735ad.9.2026.05.26.07.54.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 May 2026 07:54:13 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Akhil P Oommen , Rob Clark , Dmitry Baryshkov , Anna Maniscalco , Sean Paul , Konrad Dybcio , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v10 09/16] drm/msm: Add per-context perfcntr state Date: Tue, 26 May 2026 07:50:43 -0700 Message-ID: <20260526145137.160554-10-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260526145137.160554-1-robin.clark@oss.qualcomm.com> References: <20260526145137.160554-1-robin.clark@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Authority-Analysis: v=2.4 cv=dtfrzVg4 c=1 sm=1 tr=0 ts=6a15b417 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=OtV_UDYxk2hhjaRdRjwA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: FDumxb-xiTxDjGIW9oL0Z0MKDb7ecaWL X-Proofpoint-ORIG-GUID: FDumxb-xiTxDjGIW9oL0Z0MKDb7ecaWL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI2MDEyNyBTYWx0ZWRfX2dfPch6yEC9T eDto2DQFIlcdlF9sdQSj7bT0WOcnqCrs8cATLQR+GeZZVNc5M1Ms9/Tpplv/F4ykWDyDNxLTotC RKBbP/mW5ooW4OvN/hSWWIflBbz49//dIL1cGvK5DQCa1JczAWjB8dsXuEtudCPUtxNHKyrQi34 XohlHC54qq3Jy4+x8lvLROhuHawBup84vqcFwaLKlXxc+VueT7lyw4mcb8RF38ppMIQnceY4a1R HAp9wyh3lyWCt82kRPrwJnkfO1eCQIkbYHD79tAJkrtSTDR6l16eQFl/CqpOnktG/Emx0197rYg khxMmLi/d3BEwnTHFD4yTsHzPSsjwam/xLDu1/5EOjCwzjRrgVLmQIpc9hF58bVFKlFetzSUiiL NL0DPSeiEjoe3jhEqZX6KncBR18/hJbvDVxOf70OJXWiB9o8VV/Jyb8sNiDx3mYtFtd30fUgr9u YmHFuIzaFZ3yXgOuCIQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-26_03,2026-05-26_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 suspectscore=0 bulkscore=0 phishscore=0 adultscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605260127 The upcoming PERFCNTR_CONFIG ioctl will allow for both global counter collection, and per-context counter reservation for local (ie. within a single GEM_SUBMIT ioctl) counter collection. Any number of contexts can reserve the same counters, but we will need to ensure that counters reserved for local counter collection do not conflict with counters used for global counter collection. So add tracking for per-context local counter reservations. Signed-off-by: Rob Clark Reviewed-by: Dmitry Baryshkov Reviewed-by: Anna Maniscalco Reviewed-by: Akhil P Oommen --- drivers/gpu/drm/msm/msm_gpu.h | 5 +++++ drivers/gpu/drm/msm/msm_perfcntr.h | 21 +++++++++++++++++++++ drivers/gpu/drm/msm/msm_submitqueue.c | 1 + 3 files changed, 27 insertions(+) diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h index 9e5c753437c2..19484774f369 100644 --- a/drivers/gpu/drm/msm/msm_gpu.h +++ b/drivers/gpu/drm/msm/msm_gpu.h @@ -434,6 +434,11 @@ struct msm_context { * this context. */ atomic64_t ctx_mem; + + /** + * @perfcntrs: Per-context reserved perfcntrs state + */ + struct msm_perfcntr_context_state *perfctx; }; struct drm_gpuvm *msm_context_vm(struct drm_device *dev, struct msm_context *ctx); diff --git a/drivers/gpu/drm/msm/msm_perfcntr.h b/drivers/gpu/drm/msm/msm_perfcntr.h index 8b0d627b2779..d73f1ad9039d 100644 --- a/drivers/gpu/drm/msm/msm_perfcntr.h +++ b/drivers/gpu/drm/msm/msm_perfcntr.h @@ -35,6 +35,27 @@ struct msm_perfcntr_group { const struct msm_perfcntr_counter *counters; }; +/** + * struct msm_perfcntr_context_state - per-msm_context counter state + * + * A given counter can either be unused, reserved for global counter + * collection exclusively, or reserved for local per-context counter + * collection inclusively. Multiple contexts can reserve the same + * counter, since SEL reg programming and counter begin/end sampling + * happen locally (within a single GEM_SUBMIT ioctl). + */ +struct msm_perfcntr_context_state { + /** @dummy: Some compilers dislike structs with only a flex array */ + unsigned dummy; + + /** + * @reserved_counters: + * + * The number of reserved counters indexed by perfcntr group. + */ + unsigned reserved_counters[]; +}; + extern const struct msm_perfcntr_group a6xx_perfcntr_groups[]; extern const unsigned a6xx_num_perfcntr_groups; diff --git a/drivers/gpu/drm/msm/msm_submitqueue.c b/drivers/gpu/drm/msm/msm_submitqueue.c index 2598d674a99d..a58fe41602c6 100644 --- a/drivers/gpu/drm/msm/msm_submitqueue.c +++ b/drivers/gpu/drm/msm/msm_submitqueue.c @@ -66,6 +66,7 @@ void __msm_context_destroy(struct kref *kref) drm_gpuvm_put(ctx->vm); kfree(ctx->comm); kfree(ctx->cmdline); + kfree(ctx->perfctx); kfree(ctx); } -- 2.54.0