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 6567B23FC41 for ; Thu, 2 Jul 2026 05:35:14 +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=1782970516; cv=none; b=hM3BOWAjx8MqjjWUjVwt9vRcYs2rd4vqKjaYZOnFNPugw2zGe0hPFG5WAiV8xFEEoo/OGvwZKfpjkrh8e7Uf0DVbRgSGnXoPyiuTDy+zSvGOC7dy55TwYzlMsvrAuRTvCrY8wK2HvpGovajIlmDcdM4nZ8bwBzFCgJARm3Qa/Iw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782970516; c=relaxed/simple; bh=XLTSfMptGsGAVVw8MRDFuGXVmpsVxOBv48EiZ2G0+B0=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=mZMrZenlKxkQMXMdUcxR8V5rvsvGIeaRof2YFWL2xJY2cxWhQzV7exZqsS5TWvLwjzwIXUFTcE9Jg+C0fbiQBXfTRJCsM9ZlfnxoztIHWErgaaYlbHoxT7OqwbFXziwg+43J14zdalxf/++Ry42FOFOGKqijOCU8c4FJZttHzVk= 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=Ro7Z422w; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VNlG3XW+; 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="Ro7Z422w"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VNlG3XW+" 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 6621KGe63009475 for ; Thu, 2 Jul 2026 05:35:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= BXQOVmnUutoNTds54kZvzeA6Cp+B841HmrjaPmvpvAY=; b=Ro7Z422wvJg6R1s7 Y0kcMu0dvzFNqsYCQi+5vP5rKolNBWse0+yiKy0SFP2ebg15PUlx+K/R49KfqgT/ 9aaAnJ3RE6Lks689pwq04JwO37K14wcAvoK2ES8ZalzlTzlYHkwDK0CyJq+TIhZn 0gUg2ZLwJregtSEi1+xPif6BrWe+Jw6cUS7gZ2uGSEvtSfSKH+e1YSe7VKnPW2I6 btlxDsKQSxpkWJSh5QetF/LooBkd1CNSfXzVrL06cG9ZkV9L+MsvV4hgUkULupXL onvBGvV8y+yIXsSm0X94pZfDPwp/RTuZMOfP3MoVvPUsHQ59fz2LLGDYxZzAixSM LuUuYQ== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f579rtc82-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Jul 2026 05:35:13 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c891ed872ddso1686671a12.2 for ; Wed, 01 Jul 2026 22:35:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782970512; x=1783575312; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=BXQOVmnUutoNTds54kZvzeA6Cp+B841HmrjaPmvpvAY=; b=VNlG3XW+wnlnQ2QSS7KzYPQ8VnUoA18Ygmz1LnhCrdZi4bBM1ZQvTsSzOoLFKzUWlD iWIqxs3UjT/PHqG0/yik9M8YeYfMDTGIzDd4D4rXalcmQa2sYaMzHFCF6DNNy9U257NN Gh0U1KgL2cMlPCcnKh5sEdviFSFAWL36t630T6wy4XJYsV5NacNpL6GWqcerXZiXDdze uzp8ewtse8i4TqwyubRfyqtPkp7Fi5oUV6v4AHsuzW95eQw95L7c+Zwij0KRyDHDwZh3 t/2+zfODESkmzaLFtcKpgI0ypYEUsaTE3UQ5Xsl3GEmNR3CHsOoMdz3datQaDKwHbQTC V8mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782970512; x=1783575312; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BXQOVmnUutoNTds54kZvzeA6Cp+B841HmrjaPmvpvAY=; b=DH0s15C1/vQxGqfJfm3CQAUqh7x3gxWI4BGmXo0NPgQnt1u4X5K9RhBN+Dg9GukaB8 tjsOZJEVNQqqubMGwHFwKHEiAY2YSnmUhM93+xXbYZgtUoDa/uz1ARvvPcfqr4QoG+3e 9HqlrB5YIXZ+ed3JF5tKC4AW1mL22Uog6AbCguHxCFe6pFjyZeKNnZ9Tyw0UXbhG1T3H nXhylZAh6GXzGpHoReu69HHeDIopKy2JdbAAql1iuRe1drexMt3+oxuuO3g4Pq088NZM Q/qAnz3QJL3l5eRP9jCLU3pjZT9jBkJy15GhBrG4OFhkyPIEqVwPgg//76IqOUbd+nQj a+fg== X-Forwarded-Encrypted: i=1; AFNElJ9Uyp3buH9zd5Q9ym7aYrdoBWk5um1sp1QbcsdvoWNaWEfgOw99VUQScPuOyeHHwOHLmjkTKQc2n6BeCjQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzKVl7XSPuZvbr8DZ2ObAltUZrQyNPTpa7ApU8EQdE8You4kmjX eevpsSwJ/JhsT8SDMbQTE7h50g3ggVjUT3lQnGlQT5IBhmRhY2IBogAvspQDusSVeCuDU0OhIZD 0AcEOTF40Hf1hqDVtrd2Lu4El/ZGq5wtby/E8NtNFMmBh1I4wMBL4BBd/nSw5hHTqfFE= X-Gm-Gg: AfdE7cmbWWPXywDZxKMz5dg3aQbtndn9bRX1vQYczDLmxJCnM9vhmUNn5MQjWX+zePA S/nmTQGc1wPfDfXnihJX2mWA157it8UNrrNdL7mpj1YmeBiTk62GHCxtQzEgDU6SUT7zrXnIS4m sfjakakJ7I/nb1ZWPfkbuL2UtdGXeDe1uSXHJ6QBRA/DwP9k5W95HjLgmErS49ZCuwIslxsMJ3T vg7dPMPkEnHf9DcYI4GALc1EckbP3lxMIPEBADtaq8+bWB1VGtyEX9Z2Yoj+y0vrkaJu/PsIWST uqwgJkNhgeQz4uHwYTyW+17Aa0jj9hgfQrgPdRHAcGHOLH3j78nPZivGo8VeAc5xEyEDRko7Skb D3DvpbjhrvtjuChJdmTWoGbZ2hAwo4P2rZnz7tm5i X-Received: by 2002:a05:6a00:3018:b0:847:73f1:4ce8 with SMTP id d2e1a72fcca58-847c094766bmr4215994b3a.46.1782970512098; Wed, 01 Jul 2026 22:35:12 -0700 (PDT) X-Received: by 2002:a05:6a00:3018:b0:847:73f1:4ce8 with SMTP id d2e1a72fcca58-847c094766bmr4215958b3a.46.1782970511558; Wed, 01 Jul 2026 22:35:11 -0700 (PDT) Received: from [10.204.78.220] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-847cb6dcd7esm801508b3a.11.2026.07.01.22.35.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 01 Jul 2026 22:35:10 -0700 (PDT) Message-ID: <01d8d8cb-3de0-4267-9a73-c06287393483@oss.qualcomm.com> Date: Thu, 2 Jul 2026 11:05:06 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] misc: fastrpc: create duplicate sessions after all CB probing To: Vinayak Katoch , Srinivas Kandagatla , Amol Maheshwari , Arnd Bergmann , Greg Kroah-Hartman Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Bharath Kumar , Chenna Kesava Raju References: <20260609-dup-sessions-v1-1-26934abb9fa3@oss.qualcomm.com> Content-Language: en-US From: Ekansh Gupta In-Reply-To: <20260609-dup-sessions-v1-1-26934abb9fa3@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzAyMDA1NCBTYWx0ZWRfX0AkM/eHmeA7N ovMNhZouLgGlfMW1LnRWpwF5w+Xaz+7wDXFjHdh+Pv7FNXmQm0siHUxGtTdf2rM7tUSJi6RQPTH 91l1/SPxidLHrcAldJxfPODxzWtAdZRyT0jyZTIIAPOLdR1SNysMelhVM+vxmiWfGRmIEJY4bff PzQkSM7LwcK+/bzXuXAYAMf8FYa707b1G2lt3vwFP/ILgctAM/fq78YAjbIPLtS2Lo88Oh8IOG4 D50wvHx2gzTSJr45BopyadjlJYy7LmqzbU/QhOR1oj9FABnonRTkoNwMEK2fN1/qniY1/vj7b3p kAPZNmT+zkemldEFR77lBB9I/noE7ZCoxxx3EczHM8cAquUSvjT7vrzsP8dcgyW154hPNpzYkTJ McLv+/LIR6pkQxs6u192YIu2qPbmwNO4wix6FwHf9itciLUxqnYp/2OxbvZRQF7pN0PF/EMm5F2 E5we3Y2yGFKvzYkNuZA== X-Authority-Analysis: v=2.4 cv=X8pi7mTe c=1 sm=1 tr=0 ts=6a45f891 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=9RQ4r9LfJCXKqqXW7GcA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-GUID: DJwIXAylDv6GbBMl5tDluFMlCsPpd81f X-Proofpoint-ORIG-GUID: DJwIXAylDv6GbBMl5tDluFMlCsPpd81f X-Proofpoint-Spam-Info: AW1haW4tMjYwNzAyMDA1NCBTYWx0ZWRfX2ZIeyUkBRGY+ wEclUjJd2j9felCFioH7+VUFL2E333fmq5DBZGZpYfuMCIwN4W/wqgbNpELXskkjbvFyJEsYRqJ /py9CzUV8RAUwFnBDeBbzUI7ilGFXKI= 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-07-02_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607020054 On 09-06-2026 16:03, Vinayak Katoch wrote: > For ADSP, only a limited number of FastRPC context banks (CBs) are > available. Each CB supports a single session, which means only a few > processes can run on ADSP simultaneously. If all sessions are consumed > by fastrpc daemons, no session remains available when a user application > starts, causing the application to fail. > > To address this limitation, a Device Tree change was used till now: > qcom,nsessions = <5>; > > However, feedback from the upstream community indicated that this change > should not be made in the Device Tree. Instead, it was recommended to > handle this as a driver-level change. > > Instead of duplicating sessions inline during fastrpc_cb_probe() using > the qcom,nsessions DT property, defer duplication until after > of_platform_populate() returns in fastrpc_rpmsg_probe(), at which point > all compute-CB child nodes have been probed and the session array is > fully populated. > > For the ADSP domain, append FASTRPC_DUP_SESSIONS (4) copies of the > last probed session once of_platform_populate() succeeds. This keeps > the per-CB probe path simple and ensures duplicates are always derived > from a stable, fully-initialised session state. > > The qcom,nsessions DT property is no longer consumed by the driver; the > binding and DT sources are left unchanged. > > Signed-off-by: Vinayak Katoch > --- > drivers/misc/fastrpc.c | 31 ++++++++++++++++++------------- > 1 file changed, 18 insertions(+), 13 deletions(-) > > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c > index 1080f9acf70a..46afbae9c234 100644 > --- a/drivers/misc/fastrpc.c > +++ b/drivers/misc/fastrpc.c > @@ -30,6 +30,7 @@ > #define CDSP_DOMAIN_ID (3) > #define GDSP_DOMAIN_ID (4) > #define FASTRPC_MAX_SESSIONS 14 > +#define FASTRPC_DUP_SESSIONS 4 > #define FASTRPC_MAX_VMIDS 16 > #define FASTRPC_ALIGN 128 > #define FASTRPC_MAX_FDLIST 16 > @@ -2195,7 +2196,6 @@ static int fastrpc_cb_probe(struct platform_device *pdev) > struct fastrpc_channel_ctx *cctx; > struct fastrpc_session_ctx *sess; > struct device *dev = &pdev->dev; > - int i, sessions = 0; > unsigned long flags; > int rc; > u32 dma_bits; > @@ -2204,8 +2204,6 @@ static int fastrpc_cb_probe(struct platform_device *pdev) > if (!cctx) > return -EINVAL; > > - of_property_read_u32(dev->of_node, "qcom,nsessions", &sessions); > - > spin_lock_irqsave(&cctx->lock, flags); > if (cctx->sesscount >= FASTRPC_MAX_SESSIONS) { > dev_err(&pdev->dev, "too many sessions\n"); > @@ -2225,16 +2223,6 @@ static int fastrpc_cb_probe(struct platform_device *pdev) > if (of_property_read_u32(dev->of_node, "reg", &sess->sid)) > dev_info(dev, "FastRPC Session ID not specified in DT\n"); > > - if (sessions > 0) { > - struct fastrpc_session_ctx *dup_sess; > - > - for (i = 1; i < sessions; i++) { > - if (cctx->sesscount >= FASTRPC_MAX_SESSIONS) > - break; > - dup_sess = &cctx->session[cctx->sesscount++]; > - memcpy(dup_sess, sess, sizeof(*dup_sess)); > - } > - } > spin_unlock_irqrestore(&cctx->lock, flags); > rc = dma_set_mask(dev, DMA_BIT_MASK(dma_bits)); > if (rc) { > @@ -2445,6 +2433,23 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev) > if (err) > goto err_deregister_fdev; > > + if (data->domain_id == ADSP_DOMAIN_ID && data->sesscount > 0) { > + struct fastrpc_session_ctx *last_sess; > + struct fastrpc_session_ctx *dup_sess; > + unsigned long flags; > + int i; int i was already declared outside, avoid shadowing> + > + spin_lock_irqsave(&data->lock, flags); > + last_sess = &data->session[data->sesscount - 1]; > + for (i = 0; i < FASTRPC_DUP_SESSIONS; i++) { > + if (data->sesscount >= FASTRPC_MAX_SESSIONS) > + break; > + dup_sess = &data->session[data->sesscount++]; > + memcpy(dup_sess, last_sess, sizeof(*dup_sess)); > + } > + spin_unlock_irqrestore(&data->lock, flags); > + } > + > return 0; > > err_deregister_fdev: > > --- > base-commit: 97e797263a5e963da3d1e66e743fd518567dfe37 > change-id: 20260609-dup-sessions-ea2acaac1994 > > Best regards,