From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 A7A3D368D6F for ; Fri, 22 May 2026 17:34:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779471296; cv=none; b=AHOuVIkh8GkwGveF5e6C0raeGMdAete8dFr47nI63Gmc8MI3nbV7RYLLIdpBJ/c/l/Iow238+FT/Fh7IHxkALnEudpi6VXlaDWw5BEn9//Kflk6ng76mpOnrvl1sDEqZhkVk4MgSNSIu7YJ8BfcfYmRy9aLceKQiyoIjnPlj65I= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779471296; c=relaxed/simple; bh=hqi3tq0y9epWny4EPW7VeKw3SDVmkOb39hmH3jRlfjo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZKvllkOZjGFbVzc0pbXYads0ub/U0CzqUFPnOOCUQv0PibBGxq8Opky6La67eIxx6vvaxZcZnIP4S+mqIIcTrw8ZJk0i6GqQ9oPWYq3AYge7JSxlvRrGehJcBHfunbbNbAvm7gCscEl3+lgRmsq2xoyeLITXuo0XrYBYxKHjMFc= 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=QnQGSMjr; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cav/qZZ5; arc=none smtp.client-ip=205.220.180.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="QnQGSMjr"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cav/qZZ5" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64MCIWQu778825 for ; Fri, 22 May 2026 17:34:53 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=zUQTW5zoVnU p4nHccZutj+SQwGrJIr4wWIwttwIdYe4=; b=QnQGSMjr7L+VN214WZP6OnmkLWm KN73OQYNju3bGyQueFhrZrJ343ivwCF544ftjoOlvHDVC9cTqKBbFEOIwUdwtFp0 DgFNngDqFixIdhx0CXR4FCoZ5a70PgP44K/z4V71+U2qKoX0Dou02dlzRnt/mOQe kEQMqy6fvDXfwswRgJqAUPRUEm9HxiUzzXGBl9nRfORcBpjNRNo46/T/Cn24lSgw oRzVRgbWLW7ab6jnurCP/YsisnuTMWC/O0yUaXUw1ETxljlKuN2B4BM+H5AJeu69 Qi88ArG2EXh1x76B4Htd27osWPjWl833gf6wfvS2NanvVnoMyuiiA3fjI0w== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eac7auy12-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 22 May 2026 17:34:53 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c828659ecd4so3312262a12.0 for ; Fri, 22 May 2026 10:34:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779471292; x=1780076092; 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=zUQTW5zoVnUp4nHccZutj+SQwGrJIr4wWIwttwIdYe4=; b=cav/qZZ5Ni66gkpzJBXnectF8dOM1zc2uxb62QVVHgw9LPZf2CtQNUhclvXftd13t3 YkA3WjWZhmf9YY4FBNaqLC3YOYz7vNqDlq5BUG5lM2SCQCuUk6BEt0arH+yymX4+JI+M PDgv1AMaElRBplBDohRx2/dBaLtVhhtKnsj4McMJV7DttNDkJJZ7SFtqxIz1XLWPFSkU i4tb+iUUgplsgeFxUzoCWmP9RFhAsmlm6tUzNaE0FFbVqmVOHVNkRLnrd58DNVZpqnvA MfVivgLSElv5o5WsOjYcjwQUwPqQML62S56ANrnwMzHYvB4XZQ+CUu6mnxWGdEaiXA6z dLvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779471292; x=1780076092; 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=zUQTW5zoVnUp4nHccZutj+SQwGrJIr4wWIwttwIdYe4=; b=flheEezowfGg1R7+jcFcwBHC7L0DxSToRGCumOcytTvTqOYgTtUk/QsrTS66BVy8b1 fMZDmgIZeyERQ9oXnPje5CVMniF7rmBO+M+uhYaoutO597wvYngOmlWqTjkOBYVVenaM DBjWBtgOyyuhI4GRJ42sGpaew6EIJe3TRP6Kt6ymRUc9HMbepCKCYu4uTCfE72uBbvOK UKKIbxmkA9tJyqkmF2hyb2/LFQ0/BKXC7U+TL0J5x6ZzsaTxUQiD9xSnoHxU5YQaZ3Pt rQaU/lkPOTzCaHZUskT1TpWIEOu61sleeUUWaNTrXq+/0+/7/6yz/fmvgXG9gWLEAcwY qyoA== X-Forwarded-Encrypted: i=1; AFNElJ+X7yqOVZRHVI6oEntQFNMTYDYjiYninIhmUjXpC50AV5LCNCwOT4LarnNeimA+4XlQw9oPXEPjPP463yU=@vger.kernel.org X-Gm-Message-State: AOJu0Ywfd7zflraI/NbA+bzf/koYb4J9hwtPTcjDWI/ALA66DokfHRQi nB2uzLS9Go7cXgzjmSvSvX2wHAcTRlUHMg6gdhdMHORfuKpWzcoK9VSN5ExPGCAjW0hCJIxLUek ilYYbiLgvNE1gWK8+RaEQXSbSQW7oyhKa8XnRvudfzHDIK1GIAqjm82gPifINxqRTBpA= X-Gm-Gg: Acq92OFUSJfk8Y8TWMcq2uKUJHuiKOES3nvJ2hlKkEKUCGoJ0MB7+QdAxS57vVM1nSr IL8MjH/rRyD2kNLe+PPNeUt+j89vt4EkFFJrC2DJ4m0p9vVsb04B92Or68JSt6xch/WLRwyd035 ghcw96qtur1MM1Z7+5BTtHrbfPNHsGq6wTSp6VEb0/eiDypYZyrKlEoERO39RqHNyoWIIwFXuNL zbueQs2J0ICH1kkpgBacsiVB9GrQxPKXlqWskh32WFCurQHkyBldz24KLFZpT4stR8FZS84lZrD Rh7PieZpQ2GpZn8gYFJXhS/Dtp9ek4vU1udtlJ/eduqFihk9SCMy+4iVdJDp6VzGZA4NBMWFXsx H9eoGKeg83qOt10UVLYW6NkISkya3s6aonhfeJY0pv3Y= X-Received: by 2002:a05:6a21:a97:b0:3b3:258f:7a1 with SMTP id adf61e73a8af0-3b328ca420dmr4892482637.15.1779471292403; Fri, 22 May 2026 10:34:52 -0700 (PDT) X-Received: by 2002:a05:6a21:a97:b0:3b3:258f:7a1 with SMTP id adf61e73a8af0-3b328ca420dmr4892438637.15.1779471291794; Fri, 22 May 2026 10:34:51 -0700 (PDT) Received: from localhost ([2601:1c0:5000:d5c:4ec8:83f5:8254:6891]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c852056dfb1sm1973705a12.28.2026.05.22.10.34.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 10:34:51 -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 v9 09/16] drm/msm: Add per-context perfcntr state Date: Fri, 22 May 2026 10:32:55 -0700 Message-ID: <20260522173349.55491-10-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260522173349.55491-1-robin.clark@oss.qualcomm.com> References: <20260522173349.55491-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-Proofpoint-ORIG-GUID: Att7d-2RhHgQ7ru4CAuh0BFGD0Gijhn3 X-Authority-Analysis: v=2.4 cv=JrbBas4C c=1 sm=1 tr=0 ts=6a1093bd cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=OtV_UDYxk2hhjaRdRjwA:9 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-GUID: Att7d-2RhHgQ7ru4CAuh0BFGD0Gijhn3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIyMDE3NSBTYWx0ZWRfX/Cr8cn9l+x4l jZ2si910kRy0mhPUv+V8gI7FsABYZEnelWf7AS5I80N3zy5EyKoCIgZd56EUQ21/xt49j0mm1KB Ln3VqbxZLdsfaH4IWqikJncTdc0Ia1i6FIyf9ZOflwrGoEex0TPrfTI2PdsRXIScV8YOzwzgw03 It3XHXKIi+aEqZi4RVGvp9swr3VsU+idrHdL73uSQBhuWhVsl0lMrUcrrmjtJP4MXLfu+FgvGxW ZX+mldBvznH6T7fWULKz8TFxlTc7zNcQ1e+hkkiXZGKSNQQoYE9HEFn4ruaRCUva3dbrlmIo/Eu TEKKRZ+piVz+eC0Mjk1hTbMqQDFH2G+PiwyWVehFgzz96jdENcAOqngbpGfh1ioHVVCfQEkuYiV LlYZxgQBxcO3rxfjwXHyvEoywuZTufuaCvi3arBKn7dSDRFp92Yi0qOuCyBNsrh6+46D3hZsquf AodrRfAybb5b6KbSgLQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-22_04,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 spamscore=0 malwarescore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605220175 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 64a5d29feba1..7f0654182496 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