From nobody Fri Sep 25 10:38:02 2026 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 00EE142252A for ; Mon, 14 Sep 2026 09:39:47 +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=1789378789; cv=none; b=sIPxBHH4AfYmLEAnJCca36d3+8zL825P9Q/tvjUfp3lm/ikHgoJZbaLre2uX2bhkcrQA7P4PUB7DWWyJuBd9bZP7UV4cnu+OD3wtofWNOYiP65Mabi0Peeu8cUmsTKoaqU7lQL3paPrHfaOseDPX/qLhjoLli3Izybc0TBqgck0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378789; c=relaxed/simple; bh=Jy14sVbtBOA4INaXpzyNkK/bT7ygjH1r3zg1u0X4N9o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=D7NZcsKRThzh39m+NDDocRakXS2QEUPoMCBrGtRDaJm08FEW3tv8VAkEmu5tbxUbY4Wk9kg6BW7LGSs/RN6aRQ7tXlwqWwiVG01XPKrVZ5f2Rr4sWm5sTfLmja5RFuoZyZikIdx9y64MCd+G/+eqBwTqqbgiYLkQV5fcBhH6LM8= 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=KJwc0xs/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QXlHuw/Q; 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="KJwc0xs/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QXlHuw/Q" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68E5ikNw4057513 for ; Mon, 14 Sep 2026 09:39:46 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= ZR/24VT+nvDX6Pu+vatSh19aprf4T0g8qioM8XND/94=; b=KJwc0xs/gnV/VDUJ AbPpWQ3KScrRqB5m+kykYuRtCYi8CH0ADcKxgLqAD3GSjgfkqN/WacHGjllBQ27N Lqu7WHocHa/tadb82TF8S9emN6ojTDg252zI0ZOdI4VW8HZMSv0dkFzVD5Pfk9+D IybVvRN5jbYo1yae1kYDrQU+MhpTkRi89g1PEL2jwR4FJz1LUCos2LnToBZyVb85 kk3VYBsZXtmQj2nPlGalwANd6u98BByZdM4Crx/TqsjDqSvX7uZ+bMxbawBrItyo rlUH7LZItb5OhqjSksgKJYWS7GlLoL5ml0dcZik0SDdxSh234Ew1aYzlwlEKDTag tVcH0w== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gp3hsssga-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:39:46 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2dc7337e2a7so38725075ad.0 for ; Mon, 14 Sep 2026 02:39:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378785; x=1789983585; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ZR/24VT+nvDX6Pu+vatSh19aprf4T0g8qioM8XND/94=; b=QXlHuw/QNlndKmqmpl7sM8RQk7Jpzg2aWBB4jSrKH8PUPbA12u4t/KnewGkp7Y8F0z m1XFISDkf4k6BtSC8YCDqCdVKO367/LWXDribl9+vjVSPCqPqdH8xRMEYC91pGcYw2Nn Cx/pCIzfasU1hfOZiqG+lohGf85J04t5SOOQeHiPxReNpb1mMW1l85ht7GCRyDyhmg7X 1GTdUBkB4Ya6X9IWmMLfNF7ybAFS8cnyJZEnYH9g+SD+0VsDHzFruaczZxYrV8tjwnqy AwIiQ8Hn9OnCiM66jXtrEmacC1K2OUazWA+1yDVgmPr4eNehDR4SIvmxWSHSf2/0fyp3 2yDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378785; x=1789983585; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ZR/24VT+nvDX6Pu+vatSh19aprf4T0g8qioM8XND/94=; b=m4tAev8Gt7ZWJr058efiGZAJ47DZS01db2J4lhkA3qp61kAihENmC3WaiEbZu0Ue1w epdyamfV5K+RAMp6Iij1tkQ6943rMTAa/S/a+KVSNDEPkBGx9JWBsDQcPGGJymOdQGfE wMw+PQAB+ppxocx3w3EqAlxYbq1La+V/ICU9rF8/5l9kp+pHaVU4ZKQxzowl7FWTeMzi y7hGO8NrNhsNJkQmB2xtpdARcp0mhFNj9xes9FNBWQZDC89TBkulgLZHxfsLAmNePp4z hbgLT1SRDm8oVETjdbHGO9qTEWgFFuRmNbIlLT0FU4SCIUl6d1p7WDYUU9TOv6yj9+oC whFw== X-Forwarded-Encrypted: i=1; AKwUvBymiPyoosQGHJ94+f7JGIgmZgBV3SzejcU0sugK77nnQIQ/8B0Pms23rwcOWAg1lSpkwU4KJvXIztCJKxQ=@vger.kernel.org X-Gm-Message-State: AFuF++m5jD6L/lXCvbh26Dx4GMpeZftKbaMz4Dl1Ig484ijEylWrpCgw crURK9l7J/3kVcgQz4stJRt1S4xbY7jjfW3iK4L8MDG8bPCWH5O/0NekF1VFfnL5awHWfhkr7Se Fn8Z+29bMeoOOK8NEF7bxHmj6HwHwdKHI/9/10jB49YEOlFH2m4CP+TCO4tBhYPWSeWY= X-Gm-Gg: AYBFou0Sc6VJYa/pLDYA/hwitSc1w0cVAXxg61FGGHo9XqBzia3cKSOIMTLoY8RrSEi c3xg8C8YQa/lxGcLNHyLX9Yc/BiNICF+bmVlGhI2tMd4tkcEZRQ1BkGAtAVtTLjZpF1xlk/3W/p ioXiJSeZpLKgTMFpWYQGlIEvTLKGbzkUY/6t/Ju831ybxIQZblx6Fnbq/X0YEST1VbnHc4A6ind uE18I9YEACSHauV7v67iz7Y45OI+yB9vQf1T5xZWpCxMoFHa1QPtA3/D6WiVFPE8LdjW2Ia6+/x F60q2z0yDw+dh7HZuA9HUF4/FvXJfQqC6IAWiIlH+OAAAv3+d5mHRxA96g+DGPxc02H1aRNZ3M9 A6h+TGfGUbJpLruArRjNAb9Vby+hkEfRDVru5MWCVvwWfWO0TFI3JC/2e X-Received: by 2002:a17:90b:35d0:b0:39d:efb1:dccf with SMTP id 98e67ed59e1d1-39defb1ddacmr2679921a91.6.1789378785526; Mon, 14 Sep 2026 02:39:45 -0700 (PDT) X-Received: by 2002:a17:90b:35d0:b0:39d:efb1:dccf with SMTP id 98e67ed59e1d1-39defb1ddacmr2679850a91.6.1789378785086; Mon, 14 Sep 2026 02:39:45 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.39.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:39:44 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:49 +0800 Subject: [PATCH RFC v2 01/10] arm_mpam: Fix the RIS index range check in mpam_ris_create_locked Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-1-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378758; l=1084; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=Jy14sVbtBOA4INaXpzyNkK/bT7ygjH1r3zg1u0X4N9o=; b=8qVts8kvOfruxq59KFcdjO9xhhSgezIyTV0q1/20EcQF+DfUllQOZoPY0Owrd4E15wWT9eUt0 Aa/3hS1ds/7BuqTY+P0ocnYLZ9q7OxXK12q95t3cvNkvuz4MnkRAN+f X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX01NIh2tO2oDE AO4Y/LUDrHMOLXlY+RDta8f1XUHTypKllV1FuFbwyY1EVA9oy6L1UNQXiZvIGWbnWnHFsPx8IYf bNp7I53XsWbguMMQA1kzg6+NGRaVqqJwvg+Yny2D0bsyQ4cs+fjScPuhPoCqR41RC4qXGtZQ7ma UcKdQlMKH0VRyanFhhfqYc4bV2OdzHkFS1tiXV6VgPC+lto86sNG+VRlqnY8Du0VdCBrfVyB1Jh g6fP/kntSnW4lS1fhyqimB6yvPBDK+em8Wjc19A4xWCazkRkKovGnL/VDHwGd5YlfGtf02ZiuJ8 8s5JHtARNIKCfVrhvxTW7oIKrn7XQP5YWTxBzZutyMIJU0M4okovnqgFkRChlG/O+U8ZEghyHIu ZvVsURgDSqb4qEoHtE4pWdv27BW/VBSBQRn/A3cQcIcmR5pmBWzG/dCXv2/KvFnoYBvGcJabSZY FYQytArVVY4jPMEN9wA== X-Authority-Analysis: v=2.4 cv=IZwSymqa c=1 sm=1 tr=0 ts=6aa7c0e2 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=7CQSdrXTAAAA:8 a=cxiLKowE09Ysm4E8lmYA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-GUID: kUlsc5nVSjMBXmUUaD71RMOD_oUiYWtf X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX6S1OiiQyEkl+ X6n+5VMQ3v9IBjB6SvpVnbFLu+1rs02sv3xIhzi7yHl+UhDjEd2n2NSHQ2CyiNo4aGqcPfHsWHE p9afKVMhq58mk7ST27ngxqTanXk8hZo= X-Proofpoint-ORIG-GUID: kUlsc5nVSjMBXmUUaD71RMOD_oUiYWtf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140137 The RIS selector field is defined as MPAMCFG_PART_SEL_RIS (bits 27:24), which is 4 bits wide and gives valid indices 0..15. MPAM_MSC_MAX_NUM_RIS is defined as 16, so the check should use >=3D to reject index 16 and above. The previous > check incorrectly accepted index 16 as valid. Fixes: 01fb4b822472 ("arm_mpam: Add the class and component structures for = firmware described ris") Signed-off-by: Yin Li Reviewed-by: Andre Przywara --- drivers/resctrl/mpam_devices.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index dd422c56fbb1..6da217abf689 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -552,7 +552,7 @@ static int mpam_ris_create_locked(struct mpam_msc *msc,= u8 ris_idx, =20 lockdep_assert_held(&mpam_list_lock); =20 - if (ris_idx > MPAM_MSC_MAX_NUM_RIS) + if (ris_idx >=3D MPAM_MSC_MAX_NUM_RIS) return -EINVAL; =20 if (test_and_set_bit(ris_idx, &msc->ris_idxs)) --=20 2.34.1 From nobody Fri Sep 25 10:38:02 2026 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 2393134F497 for ; Mon, 14 Sep 2026 09:39:55 +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=1789378797; cv=none; b=plxn/P+P0Yupx0bPKonhqHEV463ZNm8M2OHLv4F3c2EP0UYCt+snlHZX5sOTCd+1D64ESepRLpGHRRwQjkHOH5B4z54xEZQKAIlHIEla8bMARqCFgXj3TKMzkc5lIWKwd2/XEGe6kQIxp8Pnji/15qrjQjTOoXXAOMlix8Rg3hw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378797; c=relaxed/simple; bh=1/dwipsmDrfzLit921IQVdk2VPlf3+aUAoUuV6A273g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cyL4mqKhqd+6IgqCZ/oCfKXxpVv7CUcWuCb6YXKLN92XAnrXE/dVM0j6kYkXjt4316luRY0puxuisU4G1uWHB5WnTFqMCaL3rmk7i4dcOxMqPb1XZNNTDcgKDEeWlXVK5QaXlokiVZCgBlwBobCPzbFztSTkQbpA4qdm9WtZ/Xs= 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=GvCGd3b7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XTfQ6IED; 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="GvCGd3b7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XTfQ6IED" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68E803343490574 for ; Mon, 14 Sep 2026 09:39:55 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= mtciI2dXuSRKP7znBi6/ImEi5cWqof1ckcMtFCHtuf8=; b=GvCGd3b7ibiXNVov KGk6RyollppYoLgluhcTje2RH00hvnrzULm+sVBo/9CjHL+KQjbNG7+UrSm5TsFp oDOW2/+AxLOFkLsnFyyZ/iUZ0JqyZhsQGdTqE5dhQKAAaXUdLcRN2U44iHuYtkMS 8AcygZtX6xVz68/d6aGC4UKivxT5syVmOcfHu2sxh6tXutAQJAbnT3AdODhGYo/x Ks+kk+z+IODcVD+rVfd/4+SvzgKpaqYXWSJ3ufqqb+H1N7I/+8ge+GUzwpCm+Pat 2OkaPc/Ms3op9Fbt/JqvBejUjxVCYi3ccjEFJGgV58PdtfQs9kMiaILbHNEYL05q gqrHPg== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gpd1f0b3g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:39:54 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-39b90cc0d5cso3785729a91.0 for ; Mon, 14 Sep 2026 02:39:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378794; x=1789983594; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=mtciI2dXuSRKP7znBi6/ImEi5cWqof1ckcMtFCHtuf8=; b=XTfQ6IED3XWE6vhSXWto28D0mryfLZgD1lBFtb8I7TlTJlj0s2RaHYxxWFraR9GyVD 4MMvpO6UZffXYBaRvVBiqPPYodlI0L/1esptKCMwXQFJxMIw0uESDkE08WfHZhIBG0vR Qn/+AKbFuw+uuqU+XlDqBWpj7i6ZOgM83qDTMbnKWHcl/vGfdfwV/dnx6B+7d64aCqRJ Jgx1HYIXcyPv5cTKANvmwT95lJ4RY6xxs5rWdXEkKlaPBxNPf0sbtPbTqB8856tToiA4 eav8WEvACmYiExvBqGGKZcvyabnCYsMpEKYvRPY0l4IYz2i4hIq9TCoXre4zaSKChSC+ IPNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378794; x=1789983594; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=mtciI2dXuSRKP7znBi6/ImEi5cWqof1ckcMtFCHtuf8=; b=nqrNZ9Fs/wBbSPgC5r3hmzTkDYgF2wrhkv5oABdErR7+vabHoyUQnc+Ns1CkMx9Zgb 8YbMxA4VKaq5eAnSEKfNPg1RvU6UGtERc2GFl0e4L9pLt9ocsyiUX2osiZTYWAzSxsXU 5vXVaWBtSiT5f2GkXW8lIwLzqtP8W27rTfD/70W/2nbFDUofwjo4MUi+Dm/PyGmtaAge h+TH2Fk9ew86gs72rg5UBRqN7Ro6en6NYLWvxtxDlxuimwj4Jnm0vZkREHaLvl5SEBJi 5FR30lqhbyKUCHeGr16DIjYbHMkTbTNUfqd3kJP0B9djLW6sKnROyMLESdIi7xEmy3Nx m9+w== X-Forwarded-Encrypted: i=1; AKwUvBx7X1lU6QRa+U9b2g6QUwDsT4nE7OgNeDGD6/ipnYQbKdqXNj0pKI9Xlx5ubJHwaw1EKlO1PgC4DLrM1Z8=@vger.kernel.org X-Gm-Message-State: AFuF++l3Hx2gnjEEy9rGrTAuxUd87bQSEWBZ/yz50jjcgJWBNg1NEltF KRTBSYjazAC6T2Go0ySV09OTA8RWLwDanIkRtoAjWOVNoEKwAAyAXN1bPqUaLX5kMvuGo0Zxk82 WEQGyjS/kHpfQ5FQ4C9ckLaxeEOuHIg3KJBFkAk1WCpTuj9Xw/nishzjkl6VjRB08+/0= X-Gm-Gg: AYBFou3tMaiK1uvTeaIBk4Cb5cFx/tYBzzS8WH8WXsWx45gHk6x11GVfgzDsSgonTtF RBRt1sUyWbtv4t2/GvV3r138RR+m2zLUwyYmQopeRjbmHjoGJYkFncbCwZgw9h1BKLtDHRJ52sQ SoUEBONkXCGTsnNDDt2wMeWfqlCVII68IydewtLkaGvkIjy6vESnTCKKSnuq6RHNTEfmIoUJaiO tiWDQbJySAaCI41Ic/uSo6m4V01bYVvmWXjnJOMNDA8V5uNHSv48o7u35giluSsn9LXpcpxw3uD QIWkDm+Jf6Q+/FR+MQXPnDZzAfE5gNGZCCziPbYHljpXVENpvZ/vGpT4tyCbs4OeXy2whnLkmhK Ve6iesFbINs1aYZ1NulqNmI/JJEkIZW/e+NpED66cXeB32l+fTV2K8y4v X-Received: by 2002:a17:90b:1805:b0:39b:4877:ae90 with SMTP id 98e67ed59e1d1-39dec143751mr3901795a91.22.1789378793860; Mon, 14 Sep 2026 02:39:53 -0700 (PDT) X-Received: by 2002:a17:90b:1805:b0:39b:4877:ae90 with SMTP id 98e67ed59e1d1-39dec143751mr3901732a91.22.1789378793357; Mon, 14 Sep 2026 02:39:53 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.39.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:39:53 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:50 +0800 Subject: [PATCH RFC v2 02/10] arm_mpam: Fix MSC MMIO window size off-by-one with resource_size() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-2-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org, kernel test robot X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378759; l=1748; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=1/dwipsmDrfzLit921IQVdk2VPlf3+aUAoUuV6A273g=; b=580EJYrRRaQFaJTBhTGLIBPMftpDItwYKFFvVgVOBnIGXre3jEMO3P5n/lbQty+QF8/WDbE3x ujX3TeCQLrkC8JlprOX1id1zXH56ewGS0cLUd3xaxTFVmX6xlGuwBU3 X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-ORIG-GUID: SgTeJ-_-YansALl_qcZIzbnDO7gmyHkF X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX3pEiDoecENV9 RyQhY8tC8cdguz6ynzPderl3H6ewYArFjB86GeTySN7cy3lBwedAvW+LQg5tounYhV0pb4c5lH6 M9mP2bjnx0VCtAntFo5VWx7ljxUj6ow= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX28zulKvv0gtk BO5mMLYqcmZRlifrzsIafyf/0BFleVeEJvFwGY2icHQkO66cEWQn3Wfr+EhlQi5QUb9PriR+M5r 5oh5eBtv6YY2CxrDG/jcv91cKoMcp7Afe9M/kxDUyTv8flrJ7Ssv3MIY1l4jkCZDrwrEOHDPSS2 4n/VwgYwwdnzxemO97PhkcKigzrhTF4dcI9Yx4+7DZXOh80zMHX0Yp3G7u+WzxG01e9greoeaC9 0Aq3syckyqKCPcSoDFUCHIN/uwaxZ8uO6ySY5PGBW8MiKBb7y00TsFtGXhgfcPEvi7Ot4rgtizu hgYpJE/zWgAKvG4rzHJCk6+cXchZ3KTjlC21AVIFBpzWwvKs3NPMHmuGV/CvE9/3r/kZ+tFwTSo nn9/3OBQWVd4VXxcEtn6M8N73D8AcR8wJLcY3F3f32zrn2Wq6VITK4pGrf6HimB03eHu7MOnMPt 6Zpae1gFPARHDuQolww== X-Authority-Analysis: v=2.4 cv=XKel2ghE c=1 sm=1 tr=0 ts=6aa7c0ea cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=VwQbUJbxAAAA:8 a=QyXUC8HyAAAA:8 a=EUspDBNiAAAA:8 a=7CQSdrXTAAAA:8 a=s3E7sL18FQBPR4dFS-QA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-GUID: SgTeJ-_-YansALl_qcZIzbnDO7gmyHkF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 spamscore=0 bulkscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140137 struct resource uses an inclusive end address, so the window size is end - start + 1. do_mpam_msc_drv_probe() computed it as end - start, which is one byte too small. mapped_hwpage_sz is used by the register access bounds checks, which have the form "offset + width > mapped_hwpage_sz". With the size one byte too small, an access to the last register in the window is incorrectly flagged as out of bounds: for a 0x1000 window, a 4-byte access at offset 0xFFC (bytes 0xFFC..0xFFF, legal) computes 0xFFC + 4 =3D 0x1000 > 0xFFF and falsely warns. Use resource_size() so the size is correct. The ">" bounds checks are correct as-is once the size is accurate and are left unchanged. Fixes: f04046f2577a ("arm_mpam: Add probe/remove for mpam msc driver and kb= uild boiler plate") Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202609030809.ObirDhR3-lkp@int= el.com/ Signed-off-by: Yin Li Reviewed-by: Andre Przywara Reviewed-by: Ben Horgan --- drivers/resctrl/mpam_devices.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 6da217abf689..c68135ee0ffc 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -2095,7 +2095,7 @@ static struct mpam_msc *do_mpam_msc_drv_probe(struct = platform_device *pdev) dev_err_once(dev, "Failed to map MSC base address\n"); return ERR_CAST(io); } - msc->mapped_hwpage_sz =3D msc_res->end - msc_res->start; + msc->mapped_hwpage_sz =3D resource_size(msc_res); msc->mapped_hwpage =3D io; } else { return ERR_PTR(-EINVAL); --=20 2.34.1 From nobody Fri Sep 25 10:38:02 2026 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 339A44252C9 for ; Mon, 14 Sep 2026 09:40:03 +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=1789378806; cv=none; b=udWAqePwrMnu33cpbwJ6v9pUz8ws1WQ5HmQpewRZzs99x2FJQvYHsuM6O1rQBvXE3/pF3do2H3ywUJvXDpR64u5fPfn6jaWWRo71FtaiQwxnfiohSTxZVBEl7WqjS/QtFoAQXPro5L8Ab8dLSutJxpQB47DYF27vJ6dNoxF4YyM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378806; c=relaxed/simple; bh=Q1SO6EtCR75JXe3JpYCv7OaNJuuMIm0WdKd+5Zw+RCM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z/uUftdKu0rpN07byVV7eD1+g23Cyx+h1uDYgnsDOMoz+Lptp2Lt7sdaecpODGmA7wTH7rg6rriojrdHXpKDE/h/kf+t3G2WqBXuFeuEtYrlgxQ8F4zBEcoavmF+dMNmiW7jD8TnEW45otpUufV+c8tDCf09yzteCC6szn4Udms= 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=aHJFoUe0; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Pe0cetSX; 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="aHJFoUe0"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Pe0cetSX" 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 68E9ax4S1304931 for ; Mon, 14 Sep 2026 09:40:03 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= tcHuExv7ntKhJgMZFmAB7i1tSGwudIpTtAVbjxinbE8=; b=aHJFoUe0U4P6bmfz PX35JjrmmrCaMDJgrPYCM8t6MqWgKnVtZPZn+ElJXhrlO2zDuLHzlyv9JwvQtS9/ DZJJHAFDfsDnOZhZHqdoiBd2GVHn2436wVZ72hME2o+Rc6q0la07TWZy3DXCQIQR Tnz03X0XVhws0gEWvgmHAB5wZZutMe+Raa1d25K5eHh7mMYrwFO9nv76rWfdOizH 5t8LiOnQamEB9AePp5T/yUilh4s+s4nW8OW9AzfQ9RSzWJmijeL6r1KAuHLyeB4x Z41s5ONEZtJdHI9oxmVyYAMPYEQ+2Qur92p54RJ4GY6bMuGS4dvdBIOZvW0AMalj Wj70ew== Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gpeex80bm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:40:02 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-cbb92868263so2587060a12.2 for ; Mon, 14 Sep 2026 02:40:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378802; x=1789983602; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=tcHuExv7ntKhJgMZFmAB7i1tSGwudIpTtAVbjxinbE8=; b=Pe0cetSXygOLNUnzKciieksal/7hdCQUH40b6VE/gEIe91/qTYHeZtYw2cWk59bfpA f8pq04PTjgP9Yaj+P4FWlI0etz2Ar71WX4wmfqeQWlazcr40Pbuuz/x92b8ITKG9ZopJ CW+xZT4/HcnV4GKS8lUVXYqLrg/CgDOvhGR2HJiLVbiil4iSTjQRLXd25in5DHmjIisf H9xYsUcGEv5Z39yxFP3Ouw3WnT7l8vQzC0Hk/z3jQaX/ScPw/0iAyigMEcJsfWUAZ5zN o66tugTDo8IX/pfg0+tu26NCsUNLm5j/CwqfMYa7A1A4ha/1CNY6SaiHiHMqbbkqhUEF aZ8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378802; x=1789983602; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=tcHuExv7ntKhJgMZFmAB7i1tSGwudIpTtAVbjxinbE8=; b=CoRWRMxvgR0wBJwcPAi7eOd8DlTr8bGb2wXcQurWGd0FHfMbDT/bUhsBvg8WKCMjV8 PJiGuWrQrJk0srIIDU9JL2qKUr10EpHBKOeUbCRLuru+zS+faOv6HHZAw/7C1x54MD+q kQ4ZxIHmFtdIFE9A9IiQeSxSIgUzvrLAOYgWCOx0DICWS55xVteED96W8E32EjhhHwla Q29wTMbGxkndZNIBtT729voBQaOyF4va3UiFcdE939+3EDPqcFpSD71DpMfUSU1DZXPD amQuoeEy9cpajTQBVvWmL7yn8yWB46stSaUbXqCoADnLrjNAYVps0GvN1P4DHlxDU+F+ UJ3g== X-Forwarded-Encrypted: i=1; AKwUvBwFhxSS25bkaRoSqPD9ptZ8EangYuDSnnZLaeK89AsMRdMO2uwiq3SYluoXL6DUlfRowlCmjmC4F33YHqE=@vger.kernel.org X-Gm-Message-State: AFuF++lCpIT+mdjNHo2sKaWP6ovA/dl9aOKgPT6HqgvxjQZZo3/zFgdD j75MrgX+4AZb8sbXoF5LAtSIChVDK77lPf5Cdo5QFAiC9Ca6kEc8QZHRAijv89ROfRFF9RqrjpY blvgODugkwr/iAYnK1cAWI4/Jm2q90FaSJcJZ4DZnx3q+mVkd07zwzXiWtbmqpne7Cnk= X-Gm-Gg: AYBFou1lv2NMXjYi0hKgXWWbXwfZN6uBuQrJRukgN1ROWTWiXwmZck0Tph5+HaUdqbh d4WPzwVKwc+1DaTwe1I7EaQF5te0QhUydNyitD945+XedxIUB/11vkuAkn5cEq8AN4HyXg2zMA+ VNBXJrOUF2eFmj+cC+EocF7k18driNPs4gWLMildh3jqP191S3veBa+FAz0vT2QrG87xXW/HSBY RhtPUeKUPIWH8AfYfs3xHx9HXBVRYGlwLgPftVX3pQ10IvKExt7gNFlxuaI+tjF/V1lvStuJ1lv AKK7x90gYgDKPK+0C4Di7MI8s+UBcwlsTg2jBa/vlqHJ4S0VArwerq4LlJ+BHewWmB+ZIWfRvji rvNoXYULia9fE609MGbB17YNd7GZ4Jwsn63RkJSHhkuRsO8zNIHA38X4v X-Received: by 2002:a17:90b:4d0d:b0:39d:efa9:cd25 with SMTP id 98e67ed59e1d1-39defa9dd52mr2252562a91.2.1789378801893; Mon, 14 Sep 2026 02:40:01 -0700 (PDT) X-Received: by 2002:a17:90b:4d0d:b0:39d:efa9:cd25 with SMTP id 98e67ed59e1d1-39defa9dd52mr2252522a91.2.1789378801416; Mon, 14 Sep 2026 02:40:01 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.39.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:40:01 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:51 +0800 Subject: [PATCH RFC v2 03/10] dt-bindings: arm: Add MPAM MSC binding Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-3-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378760; l=6447; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=Ow6nsjOKfT1BtZK/wCsIgEjpwtBp/p95hFXIvpOx3ZI=; b=x7FrWzfyQw20XZhZOBNhfYnWn2cwebvQR9HvUByeGHDRQbXH5+wbqauX7T56oAUlGWmLaBnLR 7FCUZSHVECOBeI4oK7kfIhrK3ztCkPOMmNwOfkX+ArlwVuMcgKU+H3j X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNiBTYWx0ZWRfXzjaZIyxBmOrV vkkISrfREFGOJz1TsPAc/9RlDl8SyaeauqV8AaGsDed8JCFRSz68hrHyba6vp38VfI7/LRYFfJF a/yk3P/TCv/lwOf7HhTtpX+RLHRo9JCv0zJKlZ3wQQALFX5ovLnSh84QdPL2ruiyx27Y0Eep8x+ FaL0qfuvgynOtU8fuXUTd1exxAU/2uZkL6pTBRnmYFu9RSATviCO+7KYGGbDXOAmgXRRQY38LmH HMxwAk0T9eogpNZo2Xd5U9Yi8BoRp1uLOiQvRJEFptqBrKVfwbmzFNJtAEQe9vTobyZMlo0Cmso /Hw4eGJipL+Za2XyZF0B2T15SMYmntGTlGuLJBUvzTRAYS2GiIyQ2cyNKgkHAT1BwPWhpygijxX rG+qatssCf01DRGYoC9CNilDpsBEfQNqTziqI6BI/KaSFXmNTqkRQHMum07S0W2OzJp/SHuxaPg 1lklBThikj8TqCkWfTg== X-Proofpoint-GUID: K_4RhArQ2WJMPKfKFFh1l0U2bS-AY5z1 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNiBTYWx0ZWRfX02UN2hTuGSyU sQswIiPVlqtJz7TacGGOg+Pbdu4Z2STmdvUREfCLGGF4rkN/8ddqWLesHDqT//lIF1NyBAQxoB5 McxhKnFUUNP0oGv1MPa03aXMP0li1FU= X-Proofpoint-ORIG-GUID: K_4RhArQ2WJMPKfKFFh1l0U2bS-AY5z1 X-Authority-Analysis: v=2.4 cv=MsrHeGae c=1 sm=1 tr=0 ts=6aa7c0f2 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=gEfo2CItAAAA:8 a=7CQSdrXTAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=FqHZ4tX-ONj_CKorFbsA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=sptkURWiP4Gy88Gu7hUp:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 adultscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140136 From: Rob Herring The binding is designed around the assumption that an MSC will be a sub-block of something else such as a memory controller, cache controller, or IOMMU. However, it's certainly possible a design does not have that association or has a mixture of both, so the binding illustrates how we can support that with RIS child nodes. A key part of MPAM is we need to know about all of the MSCs in the system before it can be enabled. This drives the need for the genericish 'arm,mpam-msc' compatible. Though we can't assume an MSC is accessible until a h/w specific driver potentially enables the h/w. Cc: James Morse Signed-off-by: Rob Herring Signed-off-by: James Morse Signed-off-by: Yin Li --- .../devicetree/bindings/arm/arm,mpam-msc.yaml | 199 +++++++++++++++++= ++++ 1 file changed, 199 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml b/Docu= mentation/devicetree/bindings/arm/arm,mpam-msc.yaml new file mode 100644 index 000000000000..53a6fdbbf05f --- /dev/null +++ b/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml @@ -0,0 +1,199 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/arm,mpam-msc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Arm Memory System Resource Partitioning and Monitoring (MPAM) + +description: | + The Arm MPAM specification can be found here: + + https://developer.arm.com/documentation/ddi0598/latest + +maintainers: + - Rob Herring + +properties: + compatible: + items: + - const: arm,mpam-msc # Further details are discov= erable + - const: arm,mpam-memory-controller-msc + + reg: + maxItems: 1 + description: A memory region containing registers as defined in the MP= AM + specification. + + interrupts: + minItems: 1 + items: + - description: error (optional) + - description: overflow (optional, only for monitoring) + + interrupt-names: + oneOf: + - items: + - enum: [ error, overflow ] + - items: + - const: error + - const: overflow + + arm,not-ready-us: + description: The maximum time in microseconds for monitoring data to be + accurate after a settings change. For more information, see the + Not-Ready (NRDY) bit description in the MPAM specification. + + numa-node-id: true # see NUMA binding + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +patternProperties: + '^ris@[0-9a-f]+$': + type: object + additionalProperties: false + description: + RIS nodes for each resource instance in an MSC. These nodes are requ= ired + for each resource instance implementing known MPAM controls + + properties: + compatible: + enum: + - arm,mpam-cache + # Memory bandwidth + - arm,mpam-memory + + reg: + minimum: 0 + maximum: 0xf + + cpus: + description: + Phandle(s) to the CPU node(s) this RIS belongs to. By default, t= he parent + device's affinity is used. + + arm,mpam-device: + $ref: /schemas/types.yaml#/definitions/phandle + description: + By default, the MPAM enabled device associated with a RIS is the= MSC's + parent node. It is possible for each RIS to be associated with d= ifferent + devices in which case 'arm,mpam-device' should be used. + + required: + - compatible + - reg + +required: + - compatible + - reg + +dependencies: + interrupts: [ interrupt-names ] + +additionalProperties: false + +examples: + - | + L3: cache-controller@30000000 { + compatible =3D "arm,dsu-l3-cache", "cache"; + cache-level =3D <3>; + cache-unified; + + ranges =3D <0x0 0x30000000 0x800000>; + #address-cells =3D <1>; + #size-cells =3D <1>; + + msc@10000 { + compatible =3D "arm,mpam-msc"; + + reg =3D <0x10000 0x2000>; + interrupts =3D <1>, <2>; + interrupt-names =3D "error", "overflow"; + arm,not-ready-us =3D <1>; + /* CPU affinity implied by parent cache node */ + }; + }; + + mem: memory-controller@20000 { + compatible =3D "foo,a-memory-controller"; + reg =3D <0x20000 0x1000>; + + #address-cells =3D <1>; + #size-cells =3D <1>; + ranges; + + msc@21000 { + compatible =3D "arm,mpam-memory-controller-msc", "arm,mpam-msc= "; + reg =3D <0x21000 0x1000>; + interrupts =3D <3>; + interrupt-names =3D "error"; + arm,not-ready-us =3D <1>; + numa-node-id =3D <1>; + }; + }; + + iommu@40000 { + reg =3D <0x40000 0x1000>; + + ranges; + #address-cells =3D <1>; + #size-cells =3D <1>; + + msc@41000 { + compatible =3D "arm,mpam-msc"; + reg =3D <0 0x1000>; + interrupts =3D <5>, <6>; + interrupt-names =3D "error", "overflow"; + arm,not-ready-us =3D <1>; + + #address-cells =3D <1>; + #size-cells =3D <0>; + + ris@2 { + compatible =3D "arm,mpam-cache"; + reg =3D <0>; + // TODO: How to map to device(s)? + }; + }; + }; + + msc@80000 { + compatible =3D "foo,a-standalone-msc"; + reg =3D <0x80000 0x1000>; + + clocks =3D <&clks 123>; + + ranges; + #address-cells =3D <1>; + #size-cells =3D <1>; + + msc@10000 { + compatible =3D "arm,mpam-msc"; + + reg =3D <0x10000 0x2000>; + interrupts =3D <7>; + interrupt-names =3D "overflow"; + arm,not-ready-us =3D <1>; + + #address-cells =3D <1>; + #size-cells =3D <0>; + + ris@0 { + compatible =3D "arm,mpam-cache"; + reg =3D <0>; + arm,mpam-device =3D <&L2_0>; + }; + + ris@1 { + compatible =3D "arm,mpam-memory"; + reg =3D <1>; + arm,mpam-device =3D <&mem>; + }; + }; + }; + +... --=20 2.34.1 From nobody Fri Sep 25 10:38:02 2026 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 D317E42048E for ; Mon, 14 Sep 2026 09:40:12 +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=1789378814; cv=none; b=fzo6C7K25HYx8UFe0XzvUxpW619z91SSbhzC53rJTul69BqObxvz5XWjlS4w8/oEDMlMoHk/g6h5tQL58l6ZU5QpDzTBiTg04RzcLmJJD+cg7EqcM6Um43vMe5Geh3R9wjpibi+OM9E6TtIY/MYkJkUgh6JkNZdjOJVseaJY8rI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378814; c=relaxed/simple; bh=N3m1XL0qPMrLpj2KyTA3YfQe/8CjzIGFh9rILUSGz/Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ShHo3OOYwP5KdvC6zS8taLbo0MnXZvawxz6g57lz0qorWocng2KU1PDBNBDYlxpftCGh4PmwCaT3bP0ag7JRzjrAXbORcN8GwyR2YxlwiKrDQskpe78X/adjFLImWsmYuOndYyLNzIl5WleLhL8HCSDnKGZ4q3gv8BQ2SughoTs= 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=MswalhPg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IVucAIDG; 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="MswalhPg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IVucAIDG" 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 68E5jKaS3842723 for ; Mon, 14 Sep 2026 09:40:11 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= 7DvmSimw6MjnY/L40N+LcEDCs6VLUnTtNUZQ4Z7jK70=; b=MswalhPgXrq7Zixl 19P1QCywTTO7ETPIfcQHUw5E+pkNsUCPGnxHt83C8u5AixNCxAujo9U0EK/S1YqJ R9mgDmpFP7C0Lj+6d+q7nOhrPhxkHOGiBDWnnvr2Z2pbYmMYGkk7F6JOYbUYW8rv n1wMKRaKP56+G+XOIm4W7Ga2EJ8aWUhZMh90Cj89dGc9PhV9LVF/YTr7NVjpTbuE InVUxHn8xHfuUdlDbrTWJVOMVCuETDPjYHnsxTKUTaEjgxQ2VV6RVEHMXew21JXU I3n8mzOgseiLsTRSiwTGS5ga1NpqjbNJ9L1wSVHsfoCcVpsdnTxuwLSN4CkuNAg0 TvelBA== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gmy9c5yy4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:40:11 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-38ea32e57e2so6357158a91.1 for ; Mon, 14 Sep 2026 02:40:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378810; x=1789983610; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=7DvmSimw6MjnY/L40N+LcEDCs6VLUnTtNUZQ4Z7jK70=; b=IVucAIDGs04VAsUfbcWFZpyFTofXNJieEZkFSal9c/a14YfzSmm++9PXDAcZOQOM0O yyw8g3suUl+f0I6jYRpxWOMVgOHFjvgr09mfIdhpz/LzZZGSaXZgD6z4t5AgFKxnQMGn VVNao9ZiG1zINR+/Of8A6YMhxflHJR1EFnj/aAilSSxXR6YbuVb1iA2FP8bmnWwNwMgP +xPoVaD/F/zPJhUZk6zpm+k4RuG7XbyVDYpV6B8uAF4OCf7mV7I8Edr6p9Kh+gZ6tvx3 JA8pBLLPueG8RW1P0lmjfwwYLUwKY5l5S96NOzA9O+6xaDtrRn9ivj5JbTPQpCiGxSCf vW6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378810; x=1789983610; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7DvmSimw6MjnY/L40N+LcEDCs6VLUnTtNUZQ4Z7jK70=; b=JBm5V261isnWJ+HH4aADvKk8V47BnhAPtE1shuCxKkx7kQ5MiGhYqHwOPPWRo5e7lW sLwnIH4nelYh8/I5uCeTwWkZe0dfLnsQbQg6+Jk1oNcEkCHb4+pp/NgBL3NdXs7EgerC vTUkoyxj0RsDzQFcAaMNvwW3NU3Jt5YN0ekpK0Cq1DfBaVV45LfJwIvqwWR6NvTShWYi JBjyiolfkDgbNro9uF4o58Nar2Y+HqHlXq35qgSiHCiH9+s8tm3iK7qOjUZzBGrFh0D8 PE2B/YnibgWzMPnSQeithbNIysj3UxpX+l8PCsKYd1+SUTS/LnA460kM8lYVwm9QCfMq MJJA== X-Forwarded-Encrypted: i=1; AKwUvBwWx94JVmNuFGiE0/05ZciYFFOuxvbSbXjNHKexa1i+SPW/Ucaj8DkHRVnKPPXqjMsLIgiBLt+GF0m3jag=@vger.kernel.org X-Gm-Message-State: AFuF++mqov9ilIXIO6DvtMDMEfoQ2KEHTqL6ZoHwCgLE8/0wuOHmbf4l ZRCB8ZwjBhQrT0DGQNO1u9VZlIPBL3aBaqSHSIVeWY+XadEKQp1So414eS9s6JpdBOXN1xV2o/z nlb0M9QGKTFck1znCwjDF/4tc0i9cY511PpZ577vgcYxX7tG/4OQzASQo18TMw+cotkhO3RbtI6 g= X-Gm-Gg: AYBFou2ELF5Mw4AuLxJGkCu7KHhy6Ha7OpPT8FSfJ3zYxrdpQfE+Y+4KCn3wG+PD+Wl swf2m/6Nqde5Y676ONygs/rZJ5Kn4BvwdyV3XHUeiJS3rOrfM7VRqnjSPDKElfqeBgV52YtnGTG xheBjriEVCu999Z85Dxg6YYl8eZvh9l9/BEYgj3za2hsFwm8+/g//ZAF9Sgmh1rzFupTvsPUXv/ gO4waGAQpC/cYTI5d+YkYZ2bj125UbyFxk4pXCeQtPhqVWTRRW/lsq+Cvc9kBfsoGiOcfbl5xh3 MaAzM/4ZHL/0aqBrNR1RZ6ZF/B3uk9tzYlLCTcJqESZTLkgQ++ypTfBjnTcS3rN+WWFlhWW9cM3 6umlV6NbIxjzYjV0AkyQTfFEmBFbJEci4V1u4M1fdhlFb1db4/MELVtj4 X-Received: by 2002:a17:90b:5784:b0:39d:f7dc:61e4 with SMTP id 98e67ed59e1d1-39df7dc6273mr246892a91.9.1789378810103; Mon, 14 Sep 2026 02:40:10 -0700 (PDT) X-Received: by 2002:a17:90b:5784:b0:39d:f7dc:61e4 with SMTP id 98e67ed59e1d1-39df7dc6273mr246764a91.9.1789378809464; Mon, 14 Sep 2026 02:40:09 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.40.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:40:09 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:52 +0800 Subject: [PATCH RFC v2 04/10] cacheinfo: Expose the code to generate a cache-id from a device_node Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-4-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378762; l=2592; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=MXjxI8aXZOve7L6eY3Z0pfsNkIuJWimjX2RUSvdJo0s=; b=JQcH8p0AqmKiGfmEXtpcideR+t4riLV9L99EgGdmABEku5BckK3T4ae3bI4+e/TEVktBRzg2Q NpvKlDoiqZKC3MJi40P/aObfObcm4D3qRrfHXjEaX4rezR4jLu254fx X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-ORIG-GUID: o2J71EmLfwwECUgmi3YEmBBgH7NHK4cL X-Proofpoint-GUID: o2J71EmLfwwECUgmi3YEmBBgH7NHK4cL X-Authority-Analysis: v=2.4 cv=c5Y+0h9l c=1 sm=1 tr=0 ts=6aa7c0fb cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=NSEGM1D4AEf8_kYA:21 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=YGyWITW8jF7qUHxv7J4A:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfXxQb0Zo/ftQ+h ksXRFbw0jqv3S80GPTlKf69DlMb77a+9/KwHBvEJKwofYncNq2FgTTEZ4WH3ju1MO5fgQ7tf6Fw IPenXDbdCEyvilzfRDpzSTnnqgMcVtkno2i6tsqAKsby1efn8qUPlc9DzjYGcU7m/UDxyC9Rgsn b/hdFZNo9HdhhRcnRoKYAqJYRMOgpwHBtnnqZ9U5RGRfdt79Ria4YOL/V4llq9dPl9HhZ3DDmCu icplwyOAwKhZJnDGYwcJxiTRSAZ+V3no0328FHU9x9Tz9xTSzpFX6h+c0Hb1uUEBMKtD98YOuS/ Jmj/z3rQBhhQIJhEOKtW9oX9YQjGy84x0VrOhHZD9PMIreO1SxCS51wFx9NF+1TKsEs1RuHPqx3 67xvintIhfzkKXORPxwNXpAw2xg2+w8BlruT0086AFNX4KQPvwrbwwBJBwOsBjBZl7RIe/A/z/L kF+fGfX9n96KSBC6SWw== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfXwJf+8PNC1xVW zfdI/QTGpfOqtc91P9sHFIS/Iz3JN8/RX7eWq33w8Llyey2gKDQ79zZkyNPXkoami1WMhkvXVzV riY8+kluZrMShkLtJTDyy66l5W10AvQ= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 bulkscore=0 impostorscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140137 From: James Morse The MPAM driver identifies caches by id for use with resctrl. It needs to know the cache-id when probe-ing, but the value isn't set in cacheinfo until device_initcall(). Even after device_initcall(), the cache-id is only available if at least one CPU associated with the cache is online. Instead of making the driver wait, expose the code that generates the cache-id. The parts of the MPAM driver that run early can use this to set up the resctrl structures before cacheinfo is ready in device_initcall(). Signed-off-by: James Morse [ Yin Li: fix context conflicts in cacheinfo.c and cacheinfo.h; guard the cache_of_calculate_id() declaration with CONFIG_OF to prevent build errors when CONFIG_OF is not set ] Signed-off-by: Yin Li --- drivers/base/cacheinfo.c | 17 ++++++++++++----- include/linux/cacheinfo.h | 3 +++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/base/cacheinfo.c b/drivers/base/cacheinfo.c index 9f9c72727a05..f75e7f64038b 100644 --- a/drivers/base/cacheinfo.c +++ b/drivers/base/cacheinfo.c @@ -226,8 +226,7 @@ static bool match_cache_node(struct device_node *cpu, #define arch_compact_of_hwid(_x) (_x) #endif =20 -static void cache_of_set_id(struct cacheinfo *this_leaf, - struct device_node *cache_node) +u32 cache_of_calculate_id(struct device_node *cache_node) { struct device_node *cpu; u32 min_id =3D ~0; @@ -238,15 +237,23 @@ static void cache_of_set_id(struct cacheinfo *this_le= af, id =3D arch_compact_of_hwid(id); if (FIELD_GET(GENMASK_ULL(63, 32), id)) { of_node_put(cpu); - return; + return ~0; } =20 if (match_cache_node(cpu, cache_node)) min_id =3D min(min_id, id); } =20 - if (min_id !=3D ~0) { - this_leaf->id =3D min_id; + return min_id; +} + +static void cache_of_set_id(struct cacheinfo *this_leaf, + struct device_node *cache_node) +{ + u32 id =3D cache_of_calculate_id(cache_node); + + if (id !=3D ~0) { + this_leaf->id =3D id; this_leaf->attributes |=3D CACHE_ID; } } diff --git a/include/linux/cacheinfo.h b/include/linux/cacheinfo.h index fc879ac4cc4f..c33bb3c8bd63 100644 --- a/include/linux/cacheinfo.h +++ b/include/linux/cacheinfo.h @@ -113,6 +113,9 @@ int acpi_get_cache_info(unsigned int cpu, #endif =20 const struct attribute_group *cache_get_priv_group(struct cacheinfo *this_= leaf); +#ifdef CONFIG_OF +u32 cache_of_calculate_id(struct device_node *np); +#endif =20 /* * Get the cacheinfo structure for the cache associated with @cpu at --=20 2.34.1 From nobody Fri Sep 25 10:38:02 2026 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 5255B424D6B for ; Mon, 14 Sep 2026 09:40:21 +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=1789378824; cv=none; b=px1oo8HBa9nI+Jrgg2fUJDOYxA2diL73JzT93SAbRmVtyG5x5ZxYiPsVQCYTTY52Bz3FPcM5iaTJV81IIZue7F+MhCPw6zu5XzWD9OUD1l8h7XT1l41fpJTQz+uO09hN0y8t8bhcsVPxBnUPkkd14aN343V0sGxT3IRkyII2AeM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378824; c=relaxed/simple; bh=QnBi/UGDsxqyOz/1fRBQGHMXTdCzbXKx2F6q52cJQpI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mKKQ85fBJw2dWYwFib30QnVFVpVFNG8IR/iqku0VY7UEorMlt01OaURcIEbXMAAsrrrgHnTP81L3LhWZR6PDb1MKoKb8FPkpQ9iT0zXn55741O3oMCHxBSzx9ELO6xD2pDEIS7Ux9ycVfTeKXtKxd3lklkJBPtw7BInB1tFN+oQ= 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=cmH3qdeL; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hhLFUCk/; 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="cmH3qdeL"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hhLFUCk/" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68E5ivD13739600 for ; Mon, 14 Sep 2026 09:40:20 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= U9cD0JXX8OKU/IsVaFbZJY79RcROcfNSM94/DgawiLE=; b=cmH3qdeL6w9I3sMo RCAdIaxkDYxiLcjHsi1Y4f56PpegsPvEhDicbwJ0ASSp9GIdYYflnzWCpxAGx/YL KY5AI6cymNIalqfamOYsVv/sdYbaFBYjDLj5v7B+WYo6yRFMbstrG6DKBO1cnHdh NoA+WUvvpxxxWWe9Z6Wg0ytK5OvjlH0b6kp2Vq+YCK9y8hqjCIOQq23x0O19/bft 1W/rswoXtbjHKkuC4yVL8xDvE13IXeL30b9fWlkW1jM/6+T80F0qMQf0MyfBlg0Y TGw0adx3XccJoqD8yUcE09X7Fx78BgWwO2KQwLx8BmSTwU/eRRe1XqZ5axD/Zq6x 470hfQ== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gmy9ddyv5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:40:19 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-39de1f85cb2so932076a91.0 for ; Mon, 14 Sep 2026 02:40:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378819; x=1789983619; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=U9cD0JXX8OKU/IsVaFbZJY79RcROcfNSM94/DgawiLE=; b=hhLFUCk/ItNYTGvFZozgsW/K1DBbF1Sb/1FO21qgJV2wCM2KApfXWZ4kiPBFWTozg6 oOFtZ02MCMIWgxLnqwOVMzxdkLk80zfZeDpth3eW52neJKyw0v/BVjVPMPgY4BNGDxCi PAJcvHD7oOb+KctXykGK4GD4VC5Bxl5VKb8okWhABzABIDM7tllU8Um9YXWtwv0s36GP jgfJ1xfUr8cMZGmglZeQhq44Gydp9XNhhNItOayYNxypFgoQ3PAIshYZ0pkqkdvNMdlW mB3SNAffFzGbymhYUJrZ12WH0E2uUmzjiugEUpSwfAvO2Xy76awwU+Xud0TBpszii9k7 BMgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378819; x=1789983619; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=U9cD0JXX8OKU/IsVaFbZJY79RcROcfNSM94/DgawiLE=; b=kg5EWqrhTST41s11gMeyJ+IOYP3CN58zHGpTRncaxUx2NQ3Wfj/dmFZEWeO0lA06aI KphAstDTWAUL8GIKhML5N4PJDp8FMA791002qWI1AA66SissYENfQq+S2xE/jNBEpEYe clTr3JsPMaju7JB/l/MJ/gKZbNudlysUu5Vl5DPqzJ2uovwor5WBvnw9Ou7pvOmo8Aoh TPkMta9Y2BZejc1yp+R4zDyJ1EYzs4QHLbq/UNbJDzsTSAsuV21XYJ2p1doxOWg+V7hO re71XBpMj8WqPzSxNMnlakaViMfQwCvQQmTGJzqRXFlgT5HA1oIz+oH8xprB5tJ9a8ko sHGw== X-Forwarded-Encrypted: i=1; AKwUvBzWd7UNTOkrkst/z1tnDHXp1WNHh0LTqVWivb8XWlW3KrQvinojN2NnbNRr1KJuv889CVzE+D6zYg4Z5Hc=@vger.kernel.org X-Gm-Message-State: AFuF++kVvMv8shW68G2Blrp9FW0pke3eJp7eMHjmEeT0JWEK4SOrg35L D93SyuIM7i/Fw7roY3tcQzg2PZlhD6IuqNPg9uvxQzR6jW1txfQbh+CGL7lCxpbN3rtWaVnEDEu YtF9mWQUjogWnhjvSEmubDrdZ1EhhaM0ixHa6XIzdXrfC10UCljsv/XZVlYagFqVideA= X-Gm-Gg: AYBFou3cdg4khwYn14XdneVgh1DbXDuzxjGSzKiq6aULwmKQ+BVH7kt4gLF/0UDr8U3 mceBXMIJYuy+l2rskKAXWM3ilbX69SM7mYIK+QEOhdAuFOKDLQY/nvoQkwh2BBmO/MVHA96P00D +W75Fb1ceqBGhXw95mWPHLLMR8uN6/uxFN9qKVsEA4T1RrxWNTljEwd7NOZUGSxV5r3kg16/Bz/ GZsvlx0zPd37jQlAQ0u2cI5YxEPW3Cpa84VfNoV0puxcEbrqA4BgQx1HY15XXRhsdslNDAKGO4J GWX9fAdhnIRSsDd6qGeOewHGz2G0sq0VIHa2P6Fuw5ZI8sQu6gAT44ixUgiFEd4ktwkQrqn5Z/v tdmGzk1wsqB9wHHkzNokcMzPaC7LwRtxjJT43qymSdHAFIYyIVZ4dId9j X-Received: by 2002:a17:90b:3ec8:b0:39d:f351:8f0c with SMTP id 98e67ed59e1d1-39df351afb2mr1213640a91.13.1789378818360; Mon, 14 Sep 2026 02:40:18 -0700 (PDT) X-Received: by 2002:a17:90b:3ec8:b0:39d:f351:8f0c with SMTP id 98e67ed59e1d1-39df351afb2mr1213553a91.13.1789378817677; Mon, 14 Sep 2026 02:40:17 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.40.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:40:17 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:53 +0800 Subject: [PATCH RFC v2 05/10] arm_mpam: Add device tree support for MSC probing Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-5-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378763; l=10822; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=BcWl24kUBo4jlXFvaZjSoBg9s5oXMsoQB5GA5ArXSw0=; b=GfZGzJQQgYFsRrmmOz4w7923BaTZu6EWN2viQbE8Y3Xh0muuEF6CpzkAtZhGx2BqBUeVOX4OG ap35yV4OwNpA7JF01hap0OV7PxEW1WbzmEpoeEaS5MXY5p3rs+zAht6 X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX7UN5GmTqcY6Q WJ5I3vYl8GKCV5WVpR0hDUyShhmxKsGYTLongt+MlPGURkW1YmW9eX3pB7xE7LISp/QqbxP8mvX VG/TyT3K88sVTDV0dk3zF4Ppvf6+SOiwKDh/oVwz5c87AN7CzJFqFMUHtZehbNTHf97E3b1XNxT JL822xSzP9AfEwx5wttUlniJd6dnVv0He/sE66TwsXrHp8BLEoX/qRWsPhBYLA2K243Ph1D/TJ1 dPICQjcXkKoWdzlD6KWNkqarQ4PZCw8g7rhB148EQ11XX8Zhzrm1DAFMpKcrWAGqlTSEs20rHvu F+sdoLlx3hmNS2Vr4HSm7hlvFFmiTNgtDbtWZ9USqLmEgtVK6dpkLMTxbbSd2VCIXbbP3LwQjVN AALYXRfYRKWgl/Od5mMHNl2045zB3nzocG4wcJ7TMcJNVVCjx/xZjIvzkOBOrJW92wZWUsxg63y wkZTRrUbj/zMTKnQrUA== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX1YUjbcjkWiDu Ydt5B8HTpkLZL+b9TiHe8E/McsdIzPAm6MbUHSz3Gvkt7z8T947EBTcrwaC4dH+ro+aG6V3tGXm HZrCEceBXHarwc7vSt+AjrZyGwe0irc= X-Proofpoint-GUID: rvuZrFHEx78PdiIax3D8Kz-IWFrqUg2l X-Authority-Analysis: v=2.4 cv=OeUNnRTY c=1 sm=1 tr=0 ts=6aa7c103 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=-Bf8dWPtDk6FBw2lJ3EA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-ORIG-GUID: rvuZrFHEx78PdiIax3D8Kz-IWFrqUg2l X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 suspectscore=0 impostorscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140137 From: James Morse The MPAM driver currently discovers MSCs only via ACPI. Add a device tree path so MSCs can be probed on DT-based platforms: parse MSC nodes from the device tree, compute cache-id and affinity from the cache nodes and create the RIS entries. Signed-off-by: James Morse [ Yin Li: fix context conflicts; drop the ACPI-only stub of mpam_get_cpumask_from_cache_id(); use of_node_get() for the cache parent to avoid a refcount underflow; reject out-of-range ris_idx after of_property_read_reg() before narrowing to u8; use u32 instead of unsigned long for cache-id values and compare against ~0U ] Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 256 ++++++++++++++++++++++++++++++++++++= +--- drivers/resctrl/mpam_internal.h | 2 +- 2 files changed, 240 insertions(+), 18 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index c68135ee0ffc..7a5b27e87759 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -20,6 +20,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -161,6 +164,171 @@ static void mpam_free_garbage(void) } } =20 +/* Called recursively to walk the list of caches from a particular CPU */ +static void __mpam_get_cpumask_from_cache_id(int cpu, struct device_node *= cache_node, + u32 cache_id, + u32 cache_level, + cpumask_t *affinity) +{ + int err; + u32 iter_level; + u32 iter_cache_id; + struct device_node *iter_node __free(device_node) =3D of_find_next_cache_= node(cache_node); + + if (!iter_node) + return; + + err =3D of_property_read_u32(iter_node, "cache-level", &iter_level); + if (err) + return; + + /* + * get_cpu_cacheinfo_id() isn't ready until sometime + * during device_initcall(). Use cache_of_calculate_id(). + */ + iter_cache_id =3D cache_of_calculate_id(iter_node); + if (iter_cache_id =3D=3D ~0U) + return; + + if (iter_level =3D=3D cache_level && iter_cache_id =3D=3D cache_id) + cpumask_set_cpu(cpu, affinity); + + if (iter_level < cache_level) + __mpam_get_cpumask_from_cache_id(cpu, iter_node, cache_id, + cache_level, affinity); +} + +/* + * The cacheinfo structures are only populated when CPUs are online. + * This helper walks the device tree to include offline CPUs too. + */ +int mpam_get_cpumask_from_cache_id(u32 cache_id, u32 cache_level, + cpumask_t *affinity) +{ + int cpu; + + if (!acpi_disabled) + return acpi_pptt_get_cpumask_from_cache_id(cache_id, affinity); + + for_each_possible_cpu(cpu) { + struct device_node *cpu_node __free(device_node) =3D of_get_cpu_node(cpu= , NULL); + if (!cpu_node) { + pr_err("Failed to find cpu%d device node\n", cpu); + return -ENOENT; + } + + __mpam_get_cpumask_from_cache_id(cpu, cpu_node, cache_id, + cache_level, affinity); + } + + return 0; +} + +static int get_cpumask_from_cache(struct device_node *cache, + cpumask_t *affinity) +{ + int err; + u32 cache_level; + u32 cache_id; + + err =3D of_property_read_u32(cache, "cache-level", &cache_level); + if (err) { + pr_err("Failed to read cache-level from cache node\n"); + return -ENOENT; + } + + cache_id =3D cache_of_calculate_id(cache); + if (cache_id =3D=3D ~0U) { + pr_err("Failed to calculate cache-id from cache node\n"); + return -ENOENT; + } + + return mpam_get_cpumask_from_cache_id(cache_id, cache_level, affinity); +} + +static int mpam_dt_count_msc(void) +{ + int count =3D 0; + struct device_node *np; + + for_each_compatible_node(np, NULL, "arm,mpam-msc") { + if (of_device_is_available(np)) + count++; + } + + return count; +} + +static int mpam_dt_parse_resource(struct mpam_msc *msc, struct device_node= *np, + u8 ris_idx) +{ + int err =3D 0; + u32 level =3D 0; + u32 cache_id; + struct device *dev =3D &msc->pdev->dev; + struct device_node *cache __free(device_node) =3D NULL; + struct device_node *parent __free(device_node) =3D of_get_parent(np); + + if (of_device_is_compatible(np, "arm,mpam-cache")) { + cache =3D of_parse_phandle(np, "arm,mpam-device", 0); + if (!cache) { + dev_err_once(dev, "Failed to read phandle\n"); + return -EINVAL; + } + } else if (of_device_is_compatible(parent, "cache")) { + cache =3D of_node_get(parent); + } else { + /* For now, only caches are supported */ + cache =3D NULL; + return err; + } + + err =3D of_property_read_u32(cache, "cache-level", &level); + if (err) { + dev_err_once(dev, "Failed to read cache-level\n"); + return err; + } + + cache_id =3D cache_of_calculate_id(cache); + if (cache_id =3D=3D ~0U) { + dev_err_once(dev, "Failed to calculate cache-id\n"); + return -ENOENT; + } + + return mpam_ris_create(msc, ris_idx, MPAM_CLASS_CACHE, level, cache_id); +} + +static int mpam_dt_parse_resources(struct mpam_msc *msc, void *ignored) +{ + u64 ris_idx =3D 0; + int err, num_ris =3D 0; + struct device_node *np; + + np =3D msc->pdev->dev.of_node; + for_each_available_child_of_node_scoped(np, iter) { + err =3D of_property_read_reg(iter, 0, &ris_idx, NULL); + if (!err) { + /* + * ris_idx is read as u64 but indexes a 4-bit RIS selector + * (0..MPAM_MSC_MAX_NUM_RIS). Reject out-of-range values here, + * before it is narrowed to u8, so a large value cannot be + * truncated into a valid-looking index. + */ + if (ris_idx >=3D MPAM_MSC_MAX_NUM_RIS) + return -EINVAL; + num_ris++; + err =3D mpam_dt_parse_resource(msc, iter, ris_idx); + if (err) + return err; + } + } + + if (!num_ris) + err =3D mpam_dt_parse_resource(msc, np, 0); + + return err; +} + /* * Once mpam is enabled, new requestors cannot further reduce the available * partid. Assert that the size is fixed, and new requestors will be turned @@ -481,16 +649,6 @@ mpam_vmsc_find(struct mpam_component *comp, struct mpa= m_msc *msc) return mpam_vmsc_alloc(comp, msc); } =20 -/* - * The cacheinfo structures are only populated when CPUs are online. - * This helper walks the acpi tables to include offline CPUs too. - */ -int mpam_get_cpumask_from_cache_id(unsigned long cache_id, u32 cache_level, - cpumask_t *affinity) -{ - return acpi_pptt_get_cpumask_from_cache_id(cache_id, affinity); -} - /* * cpumask_of_node() only knows about online CPUs. This can't tell us whet= her * a class is represented on all possible CPUs. @@ -1987,15 +2145,34 @@ static int mpam_msc_setup_error_irq(struct mpam_msc= *msc) */ static void update_msc_accessibility(struct mpam_msc *msc) { + struct device *dev =3D &msc->pdev->dev; + struct device_node *parent; u32 affinity_id; int err; =20 - err =3D device_property_read_u32(&msc->pdev->dev, "cpu_affinity", - &affinity_id); - if (err) + if (!acpi_disabled) { + err =3D device_property_read_u32(&msc->pdev->dev, "cpu_affinity", + &affinity_id); + if (err) + cpumask_copy(&msc->accessibility, cpu_possible_mask); + else + acpi_pptt_get_cpus_from_container(affinity_id, + &msc->accessibility); + + return; + } + + /* Where an MSC can be accessed from depends on the path to of_node. */ + parent =3D of_get_parent(msc->pdev->dev.of_node); + if (parent =3D=3D of_root) { cpumask_copy(&msc->accessibility, cpu_possible_mask); - else - acpi_pptt_get_cpus_from_container(affinity_id, &msc->accessibility); + } else { + if (of_device_is_compatible(parent, "cache")) + get_cpumask_from_cache(parent, &msc->accessibility); + else + dev_err_once(dev, "Cannot determine accessibility of MSC.\n"); + } + of_node_put(parent); } =20 /* @@ -2123,7 +2300,10 @@ static int mpam_msc_drv_probe(struct platform_device= *pdev) return PTR_ERR(msc); =20 /* Create RIS entries described by firmware */ - err =3D acpi_mpam_parse_resources(msc, plat_data); + if (!acpi_disabled) + err =3D acpi_mpam_parse_resources(msc, plat_data); + else + err =3D mpam_dt_parse_resources(msc, plat_data); if (err) { mpam_msc_drv_remove(pdev); return err; @@ -2136,15 +2316,51 @@ static int mpam_msc_drv_probe(struct platform_devic= e *pdev) return 0; } =20 +static const struct of_device_id mpam_of_match[] =3D { + { .compatible =3D "arm,mpam-msc", }, + {}, +}; +MODULE_DEVICE_TABLE(of, mpam_of_match); + static struct platform_driver mpam_msc_driver =3D { .driver =3D { .name =3D "mpam_msc", .suppress_bind_attrs =3D true, + .of_match_table =3D of_match_ptr(mpam_of_match), }, .probe =3D mpam_msc_drv_probe, .remove =3D mpam_msc_drv_remove, }; =20 +/* + * MSCs that are declared by the firmware as being part of a cache may not + * be created automatically as platform devices, since there is no + * dedicated cache driver. + * + * Deal with theo MSCs here. + */ +static void mpam_dt_create_foundling_msc(void) +{ + struct platform_device *pdev; + struct device_node *cache; + + for_each_compatible_node(cache, NULL, "cache") { + struct device_node *cache_device; + + if (of_node_check_flag(cache, OF_POPULATED)) + continue; + + cache_device =3D of_find_matching_node_and_match(cache, mpam_of_match, N= ULL); + if (!cache_device) + continue; + of_node_put(cache_device); + + pdev =3D of_platform_device_create(cache, "cache", NULL); + if (!pdev) + pr_err_once("Failed to create MSC devices under caches\n"); + } +} + /* Any of these features mean the BWA_WD field is valid. */ static bool mpam_has_bwa_wd_feature(struct mpam_props *props) { @@ -2963,12 +3179,18 @@ static int __init mpam_msc_driver_init(void) =20 init_srcu_struct(&mpam_srcu); =20 - fw_num_msc =3D acpi_mpam_count_msc(); + if (!acpi_disabled) + fw_num_msc =3D acpi_mpam_count_msc(); + else + fw_num_msc =3D mpam_dt_count_msc(); if (fw_num_msc <=3D 0) { pr_err("No MSC devices found in firmware\n"); return -EINVAL; } =20 + if (acpi_disabled) + mpam_dt_create_foundling_msc(); + return platform_driver_register(&mpam_msc_driver); } =20 diff --git a/drivers/resctrl/mpam_internal.h b/drivers/resctrl/mpam_interna= l.h index def0e3a65c23..aa45d00bcd07 100644 --- a/drivers/resctrl/mpam_internal.h +++ b/drivers/resctrl/mpam_internal.h @@ -470,7 +470,7 @@ int mpam_msmon_read(struct mpam_component *comp, struct= mon_cfg *ctx, enum mpam_device_features, u64 *val); void mpam_msmon_reset_mbwu(struct mpam_component *comp, struct mon_cfg *ct= x); =20 -int mpam_get_cpumask_from_cache_id(unsigned long cache_id, u32 cache_level, +int mpam_get_cpumask_from_cache_id(u32 cache_id, u32 cache_level, cpumask_t *affinity); =20 #ifdef CONFIG_RESCTRL_FS --=20 2.34.1 From nobody Fri Sep 25 10:38:02 2026 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 7C4B0423788 for ; Mon, 14 Sep 2026 09:40:28 +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=1789378830; cv=none; b=ppCh4lRY161+LBfGaUPvVvDA0ylgaLo+3Kt3WpMfjeqqrU08WrQhxL3C6ocH/8Vy1RQ5/gTKAT00pV0OkpyNHmjycBR8+KK+/ehSc4HYc6jWSnV4e2j47n2crPcTNpWX64oBwIJJ0cjBLDqujLEDQIqCovr82hXGZ6ljYVqENuU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378830; c=relaxed/simple; bh=1RQ7P/dWp7OBey0lplY8RLtPZF/1STFcgfAyWMzstnU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YLnVs+rhiTYQbG1ZkmW1V5MGyXA/5B7M7gTxuMZx/LRb2avi6BmzokIuNVuuPVxcdmN4u3tnEVXBdl+MsgvWrOXoe2l1gE310HDPzcmFaIYvLooyWF5/m0/9vQrLubQvnueDISGQpiuNPAjY//ejQXRqf1Y0VCluT8AxMufZFNY= 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=SLuri/ZG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jvDMy/A9; 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="SLuri/ZG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jvDMy/A9" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68E5jUbX3740843 for ; Mon, 14 Sep 2026 09:40:27 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= iVYpLMQ75Ps+YlBbbpsUx3nDLsFWRA7tNL5NlwEkWCA=; b=SLuri/ZGxlWJF7WO maL/CdBolq//hxWNOy/ChbIIXq8R0VX0rsEvYTiBIIT3jtev4t6mkEXZaK94t1WT RU/DFLTTQdoqev8ym3QpxGm5gzFg6tZM2fLSFMCnAkjzsrwWT5XniJCwCZGaLQav upIESA8kkAhfpsTMQnc8co02rV+W/hDA/AzcfIOj9HeIQt80bvrrNjdUhgV19B/+ FZ+rqFRwwG/OrPHmaob4PSCbkbqtX3hyFse/uFoNXKY4Q5gMQO1WZHU5ULxul9/+ E7nRVjk1tW+k/W2jr5Gbj9GYoPOGRGFLMrMBPhnZt+XCvDc+fX3k/lb2qhG0QgGi CvU8qA== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gmy9ddyvw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:40:27 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-38ec0f510a9so6718290a91.2 for ; Mon, 14 Sep 2026 02:40:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378826; x=1789983626; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=iVYpLMQ75Ps+YlBbbpsUx3nDLsFWRA7tNL5NlwEkWCA=; b=jvDMy/A9X1O4ROXUZTl57IDfCRk1WNP163BcU1OMFk7+YyIzrYtGGV8JkIC+efqYrm iyaJjnzT/Z2rZxAVOn+FkG0NQQOzNyKCyntohbm3c9D28N06QD8zmUnykwSak1xPkuzu 084PLzv/utNji6fGyOhLy0fxawD054wcbq/yPD7yg+LatVopL0AfLDlIR+USyNTs5CEj Tac+TunmEWd3CWZlyrjRvUXR3nww1FzRqEQvzSU89e5z7p4OM9AFrAQjcf+1Vu7dCTQg Sj2BWudnBqU5Wzxv34fZ2odnLDfzpFOQj9uk5sGH2HgXUPu0X2t4oIpyhsj2W5NELttx SgFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378826; x=1789983626; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=iVYpLMQ75Ps+YlBbbpsUx3nDLsFWRA7tNL5NlwEkWCA=; b=dJWUbLLevNhjcWY/j3DNfkj2bfdLIUqFA3H4WeCMVer/JajaKUZiDsx1B7wj1B/Lbf Ydf3KB+iY5DrXJPT1+sVEZPVNQA2LnMP1QmR0Usa7K6f/Q+/1a8s4rkaLKxJO/atEFQ/ NFRzx9WAPHKH4Vi8tZknzLVMdPO0VNIwjFHqGngLpr4kpR7Tad8zAfXFUvlHhmgJKboj a3gHPhrrlWKDxhsHbe7bCK8b8x7dEIHbO4qkjyJ2SD2zuUTN0fKZ2Ufalk2AxVrCMWZo ESCvEmB/E4tvLLpXmO5aW7Ep6UHO3HDDC0BVoZ1vEGj3QS86K/0NuUGKge83gmriDwe4 qfAA== X-Forwarded-Encrypted: i=1; AKwUvBwO0jhnS+08HjJ+ouOgsETGteYBhHP4UxOZhAhB6gCxzTxEfkKeXabqne3AXzJqvMsTp3QUG1y1aw5KPtQ=@vger.kernel.org X-Gm-Message-State: AFuF++nX07SWu73nkpJD+v/pFs0U+lZ2VQwZvZvrUKKFo2syHAA0uB5N UQfHqDlBbYDXFu+ekxve83J1eHPHSDnXk3/YLRG2t5ylIaM+ovw30qnDiVwndRe9JeghQf6x8rT cRUIcD4kiVAn3rp5gQU65T9Ci/QUPQQiN2T3eL1GSpVUGwhHD2RmlmXAk3GcM8jUx/2A= X-Gm-Gg: AYBFou1Il8u9uS5I7MTAlSkC77EEcyZ0XAcFGx9yQIa41s4BysBUHU1dOYBJSc3a3G/ 1z19NcCriVbI4DkTustQ6GCHTzN7xd1xJ9JoqP/nw7A6O3gFTM0ow3dMf+X7JSUhwJYzO7TYcZ8 6hOuRlVYNLoTWCO0uBuSj4X4IHBvkfWpKgvKxGXkMrHN8/HwCPFLcXhViRmRkF3gB/nNehb1uzi BDay6t7upDGh70/y1M3Ip1pBBOB0HmaMjttHWw2553Th/UreriiI6yrwhE2yw2RkNuuZ3qtX1Rr PMXsNSYNBl074PelX+Ao8aNsAlja3j7qYmLBsKI0rgN52hmCCd/fAN8hgPs8V+YL3j4DrGMbXrm OnntFHc1gMLRe6dlgZCDesJIY4NULPR1fiRl5JsCAtCrDqqx2N4NPDS7P X-Received: by 2002:a17:90b:2541:b0:396:61f1:da5c with SMTP id 98e67ed59e1d1-39debf6bb19mr3764524a91.4.1789378826200; Mon, 14 Sep 2026 02:40:26 -0700 (PDT) X-Received: by 2002:a17:90b:2541:b0:396:61f1:da5c with SMTP id 98e67ed59e1d1-39debf6bb19mr3764448a91.4.1789378825789; Mon, 14 Sep 2026 02:40:25 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.40.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:40:25 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:54 +0800 Subject: [PATCH RFC v2 06/10] arm_mpam: Add support for memory controller MSC on DT platforms Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-6-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378764; l=4057; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=+NDfa41WasI9nPmv5C8GV9yjkaezFDn6xOh3LjQQb2o=; b=nndB5WmbB/5Rn2HufOKANj4QsiBTb2AeSx7P12aYsgZMX7fASXgh9AggBJb1dAxvoBx3dsxT9 nqcLEqfHz3aAmOqUgtuzElXzhj7LhNQOHqwbkckULfU4KRlR8BwVQV3 X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfXwz3jTjCnS249 D5Ve5jS/gUY9xGdNUpH6SPIxC1rbX5acz/hkvKkkD8dyi+v8KyT047ZZwnHqiwohtln2XjdSMFt /Rji3jZDHLf+hm6Zf0y2zP9ZXIdXvhS7tRvaP7Ziaje8M5wDIbCfWLQ4l15uNPCb0D2biupE49t D4K4L7cXTEdqhFujUpNC+9GX8pztjGUV/hDcCfvHsOP7wihmLKMS+cgj8LWSf8rXLTGs5ef5Tl1 rhgCWogpnCj5NAXfpjGYiNcOPJl3ai66sreepoydGgRqszyIXoyRJe60EXFifldfxWbQI4QFxd/ BKAMJGwvBrYEodvCaWamIKAKi8e+GqbTE19nQfpSU468+USy0RLy517wrjmDOkaxpdmJRq5KyMr tF22gsQkS7w+wOR1+iU+z7vaefHL3bRzycxUkE1gfiNOt4W8Qe83zZ4HarT04VyPnxCHu6GF1VR DXhms0Wjij3KKIoXfQQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX34mOdoHS5Y6H 7I6lkTJ44nHdBkvidqLetYvMfTtQOt7OW8VuJgtoScI1pscu6KgKH/Y1EaBB4IEhdVLrI0czD7h +vhOdE2/F3oFnR1AAQQmWZJTm4I4wRg= X-Proofpoint-GUID: dpHjAh_8l3mwrHJum1U9dm9IAE65v_rp X-Authority-Analysis: v=2.4 cv=OeUNnRTY c=1 sm=1 tr=0 ts=6aa7c10b cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=Ikd4Dj_1AAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=YM9RNYZJZtWq5EK5GGEA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-ORIG-GUID: dpHjAh_8l3mwrHJum1U9dm9IAE65v_rp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 suspectscore=0 impostorscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140137 From: Shanker Donthineni The MPAM DT path only handles cache MSCs. Memory-controller MSCs cannot be probed yet. Add support to discover memory-controller MSCs from the device tree: derive the component id from the NUMA node and create a 'memory' class RIS, and treat a memory parent as accessible from all CPUs. Signed-off-by: Shanker Donthineni [ morse: split out of a bigger patch, added affinity piece ] Signed-off-by: James Morse [ Yin Li: fix context offset conflicts; use of_node_get() for the memory parent to avoid a refcount underflow; use u32 instead of unsigned long for component_id and compare against ~0U ] Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 55 ++++++++++++++++++++++++++++++--------= ---- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 7a5b27e87759..480e38cfa86d 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -263,10 +263,12 @@ static int mpam_dt_parse_resource(struct mpam_msc *ms= c, struct device_node *np, u8 ris_idx) { int err =3D 0; - u32 level =3D 0; - u32 cache_id; + u32 class_id =3D 0; + u32 component_id =3D 0; struct device *dev =3D &msc->pdev->dev; + enum mpam_class_types type =3D MPAM_CLASS_UNKNOWN; struct device_node *cache __free(device_node) =3D NULL; + struct device_node *memory __free(device_node) =3D NULL; struct device_node *parent __free(device_node) =3D of_get_parent(np); =20 if (of_device_is_compatible(np, "arm,mpam-cache")) { @@ -275,27 +277,48 @@ static int mpam_dt_parse_resource(struct mpam_msc *ms= c, struct device_node *np, dev_err_once(dev, "Failed to read phandle\n"); return -EINVAL; } + type =3D MPAM_CLASS_CACHE; + } else if (of_device_is_compatible(parent, "cache")) { cache =3D of_node_get(parent); + type =3D MPAM_CLASS_CACHE; + } else if (of_device_is_compatible(np, "arm,mpam-memory")) { + memory =3D of_parse_phandle(np, "arm,mpam-device", 0); + if (!memory) { + dev_err_once(dev, "Failed to read phandle\n"); + return -EINVAL; + } + type =3D MPAM_CLASS_MEMORY; + } else if (of_device_is_compatible(np, "arm,mpam-memory-controller-msc"))= { + memory =3D of_node_get(parent); + type =3D MPAM_CLASS_MEMORY; } else { - /* For now, only caches are supported */ - cache =3D NULL; - return err; - } - - err =3D of_property_read_u32(cache, "cache-level", &level); - if (err) { - dev_err_once(dev, "Failed to read cache-level\n"); + /* + * For now, only caches and memory controllers are + * supported. + */ return err; } =20 - cache_id =3D cache_of_calculate_id(cache); - if (cache_id =3D=3D ~0U) { - dev_err_once(dev, "Failed to calculate cache-id\n"); - return -ENOENT; + /* Determine the class and component ids, based on type. */ + if (type =3D=3D MPAM_CLASS_CACHE) { + err =3D of_property_read_u32(cache, "cache-level", &class_id); + if (err) { + dev_err_once(dev, "Failed to read cache-level\n"); + return err; + } + component_id =3D cache_of_calculate_id(cache); + if (component_id =3D=3D ~0U) { + dev_err_once(dev, "Failed to calculate cache-id\n"); + return -ENOENT; + } + } else if (type =3D=3D MPAM_CLASS_MEMORY) { + err =3D of_node_to_nid(np); + component_id =3D (err =3D=3D NUMA_NO_NODE) ? 0 : err; + class_id =3D MPAM_CLASS_ID_DEFAULT; } =20 - return mpam_ris_create(msc, ris_idx, MPAM_CLASS_CACHE, level, cache_id); + return mpam_ris_create(msc, ris_idx, type, class_id, component_id); } =20 static int mpam_dt_parse_resources(struct mpam_msc *msc, void *ignored) @@ -2169,6 +2192,8 @@ static void update_msc_accessibility(struct mpam_msc = *msc) } else { if (of_device_is_compatible(parent, "cache")) get_cpumask_from_cache(parent, &msc->accessibility); + else if (of_device_is_compatible(parent, "memory")) + cpumask_copy(&msc->accessibility, cpu_possible_mask); else dev_err_once(dev, "Cannot determine accessibility of MSC.\n"); } --=20 2.34.1 From nobody Fri Sep 25 10:38:02 2026 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 7469F425888 for ; Mon, 14 Sep 2026 09:40:35 +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=1789378836; cv=none; b=YwsTCzN/Yg4Y6gGpvKivhOKouJ9ZN589829U+ONm33B7lTdOoLUro8lgy7/qDh5wasX8CNbfza27E+BXQAi9rf8uhGvW2D24iY1T1lmmnJGEBSrVEkHwiuO1REc5/HvhH2DzSI0cdHyGYll8bRgk+ld+5jzyLmQ1SGp5Yjw3US0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378836; c=relaxed/simple; bh=Eup0TFC52Dvb5C0RkUrvytnZqSb5g4QWq/ztKU5w+8Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EnJQ2OTE4l/8yD0z8kx6w/hhj7Sa0gi5L9aCXEGeJsvF+gqj0WR7BxwyDOU7BP4lVIFE9+wwDBGttVvastcbAn7ZwDOfl1LuiS7TfAD7BuKRxQpGjQs0Qvm3HA0Hm/Q13VYbvWn2MFOtSCRpWV6Q2ye/ksuKtvWA86hkar3ozWQ= 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=GRHBF45z; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=am6KVJ+1; 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="GRHBF45z"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="am6KVJ+1" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68E7SBCL3351861 for ; Mon, 14 Sep 2026 09:40:35 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= jLEBtgZPD99ESKFnRmQeGhEc0KH9pKzoTmRMAH/wIzI=; b=GRHBF45zjkMEa/aQ DPBEp39VwMgYCtsR+lOVJ9DVytz9ho4CvOvD5hneLrwyFgr3W3Cnem7dLCCDt6pd kzDnJir+5XMq5ZAsk7FiytBnp01hyY3Rwv0xpNUw3pny1PrD9h3CznEqY82yOc9x jTe+g4H4p+KbnaJLMcEE1H0i/6RtGRY+2tWwTwVT71Fd/72VC1CDDrlcASX79cnt Ijj5W58vhSGpxJYPh7zgfSXUhXteTkvyIWkB4t/Rvf2YFtMGYeBn34ukjlmXGfPc CMiEKWNI8zCI3a7UVUSql95BtG9MmWvsVKiTT3rw5kPP90lY0ftZl6an0rW4giS4 ywIXxQ== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gpcjg0eqv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:40:34 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3965ba1ba3eso3808103a91.2 for ; Mon, 14 Sep 2026 02:40:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378834; x=1789983634; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=jLEBtgZPD99ESKFnRmQeGhEc0KH9pKzoTmRMAH/wIzI=; b=am6KVJ+156hCJflJnhS6eZHTCM95OvK1MroOV9CmTQ3PmpnSIjqO8wy+hYgICCKzn6 WaHTJBbF14irVS0j88vwKSkkxdKcwOBzMjfxJVMerdSIdE76fsnTZUW0obRUCOgU2bxa zJkkwYSLq8tdlrhC3CqV5fbbpC97leFw/5hbmr46hKWt5G8pq1f6hp9SCpdc1XXJ+RdR 9S5CVoxsHOBhDzzL/JCrJE3dY2H6Fj4Y+mlTJjHEFP8/uvcaU8iSvkPhGtgx0+DSZvn4 PhvPv84I+/y0zhvKZUKJ/S4ee1J3Agqgih1V5JBz4Nol8rxexhI8Z3ZxlCuKahdfrZ1Z X2Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378834; x=1789983634; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=jLEBtgZPD99ESKFnRmQeGhEc0KH9pKzoTmRMAH/wIzI=; b=O5cas/6/PLfSWvgT35NWJfjRSsLZzNDej9Ve36f2UhsI1yrhbF2szCvhbLamXN4AIe yxnRkjVzB88uYgbpDSriNu+C1zm/SNyRciXe4Je4j057QY5+G/cjLGPP4zVVFZLBPiQ1 z4uzGO56z4PyEfLqpz9snsK7IAK+jtzIzmS9nIomL5Z1bK96nBQsB5MhKvblC5htM78N TUr0xkIqsW+mFZ+ce2hWzHmbqXq60vncpKGRlntXMMJs7hANm4lcLEmgrSz/MYzgIHOY mEHxA1JfZRCAdcY3bfDMIZmqvtb612pO45U0fR88JzA/Li1IJPErLtVZdzU9JXwWN3O/ 9D2A== X-Forwarded-Encrypted: i=1; AKwUvByFgxWc1socO3Lfmk3DDsR3kpp49WrcYO4R2YzmmLeBIXbcP0UFynbxk7Re7gou+wp8k2AAwiUy0DzW/vA=@vger.kernel.org X-Gm-Message-State: AFuF++kGz1IhNEHVyZTXppKcNfyjkfK2F8Nrm3PKVnyiYoXjrGpAGrwo FTGKX7+hJnysF3d/mP94pZ78mWj/FChgI5e0IfgSRyCv8tJOMCze9skH+zNfluxo9GJ00z5FzKA 3Lu6qEUFMX7uqmJ2n/nM+6tdSO0vAXLm84uTpSxkzxaRxYOCPilGKBqxtP+V/P9FiF4E= X-Gm-Gg: AYBFou1fFgJCjYrv2pI/wfJ2CJmWMnF4cOlE8q3o6Ykob0N8HG+Pj9Y1Dkde8db9YPh 1KQIZ6ScJGOqrohpnRqjHeR3Fyq4zOZlMmORTx29i6Jgmw7E0xyaYSYCDpEsiV1gYt/hjlcfvQr WpiYG8+39cuiDX/e+0SyAqNdS0jTP8KIs8SuR1JE/w+HA+bR6Plw/GuvyJKIgWJFnHSIxMOLLCo ndrSG8xoM9wZ4SxJTg3rToVkYCVXrzsavkQmHDn9dJzGbMWVW6zNkml7gL0pfkya5HfezYwWHj7 PKFuZFkg/LjdeOeYS+Zpxpuzqz66yc1Bc961qx6ykdekWdv3ZKWHtM56Hc0VilfhLK9NS5KKGKp 5CftkZWRJuL2kLL3rGd2NmBJxnbrbPeH7GSIFwE7x4UwPbemqr7tCPLeh X-Received: by 2002:a17:90b:39cc:b0:36d:9e0b:3801 with SMTP id 98e67ed59e1d1-39debf94eefmr4068717a91.8.1789378834167; Mon, 14 Sep 2026 02:40:34 -0700 (PDT) X-Received: by 2002:a17:90b:39cc:b0:36d:9e0b:3801 with SMTP id 98e67ed59e1d1-39debf94eefmr4068644a91.8.1789378833728; Mon, 14 Sep 2026 02:40:33 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.40.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:40:33 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:55 +0800 Subject: [PATCH RFC v2 07/10] arm_mpam: Fix mpam_dt_create_foundling_msc() to create MSC platform devices Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-7-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378765; l=1946; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=Eup0TFC52Dvb5C0RkUrvytnZqSb5g4QWq/ztKU5w+8Q=; b=fXbWfUPGaOjktIrRdd0qWh/gG9DAXYutlr2e3ZmvjdmcsduoOF8c4KLO90VZPV33CVNCkTVC1 Rxwgo62tnAQBpp4OtifMAO9MA/mDvKp/0V6F38k1t2gH4Muaj3j3HEI X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Authority-Analysis: v=2.4 cv=CKa/zhrD c=1 sm=1 tr=0 ts=6aa7c112 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=rtFuv77GRgtEkpuRCi4A:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-ORIG-GUID: GzuqVlkuD12zc-xqbT-IKmtBMIrln6Ig X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX2EUmq9E2syyu mEykvy6T7Ux2/gAdma9vMgbcsHX5qas0KVwdt68LiUCmO3a3kWIY/qUVxZY5tB/1eOYcuGhMfky LIend3jDTYW3OtiDpQd1khXZXqu0Meo= X-Proofpoint-GUID: GzuqVlkuD12zc-xqbT-IKmtBMIrln6Ig X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfXz9/2c+7j0493 RKw4iPLyUSQRWTyrS2PR1Ym7qvHt+RURfBX/17P/bnoQ02d2sYin6PbGzsm3hRsyg7QYt0oCHwq Czg+zcxgrxGzHZT4zbtMsWcrQoLZcfnhPPfVg5J5bcQ8nLXAPm/OMMQ8zXIgU6so7OlJTGNdxO5 nxEUjnaMS//SW06pOc7oPPt3ANwI7d0j6DkGgmnZPNGISw3B8obgGctL0JFbAnNNuwpJ9tJpmpm IyD1MG4DCw7qhVXQRhj5GLiWCcqDFXdQ6ic2X1DlLqNEe6eYxAFPYYsRXGYjDSxPziQiBtdhPxs AMt+wYmb01Kex6c5Dut5cGr+OHbHxszIxcOLaB9HAruJkZsH0L0fcbWyKcviHoimyXVCsGZ7uK1 a3F+I3Sfy2AcARnqATiC+FQNGU2mILvDPYoo2rq7EXR0FSjabye6KSCveOqMMncWCD1gbb8jO07 apILU4IUJX2WjEa9obg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 impostorscore=0 spamscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140137 The original code created a platform device for the cache node itself rather than for the MSC, so the MSC was never created. Instead, walk the cache's children using for_each_child_of_node_scoped() and create the platform device for the MSC child node, skipping cache parents that firmware has marked disabled. Co-developed-by: Huang Yiwei Signed-off-by: Huang Yiwei Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 480e38cfa86d..7ef3ed55b066 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -2366,23 +2366,20 @@ static struct platform_driver mpam_msc_driver =3D { */ static void mpam_dt_create_foundling_msc(void) { - struct platform_device *pdev; - struct device_node *cache; - - for_each_compatible_node(cache, NULL, "cache") { - struct device_node *cache_device; - - if (of_node_check_flag(cache, OF_POPULATED)) - continue; - - cache_device =3D of_find_matching_node_and_match(cache, mpam_of_match, N= ULL); - if (!cache_device) + for_each_compatible_node_scoped(cache, NULL, "cache") { + if (!of_device_is_available(cache)) continue; - of_node_put(cache_device); =20 - pdev =3D of_platform_device_create(cache, "cache", NULL); - if (!pdev) - pr_err_once("Failed to create MSC devices under caches\n"); + for_each_child_of_node_scoped(cache, child) { + if (!of_match_node(mpam_of_match, child)) + continue; + if (!of_device_is_available(child)) + continue; + if (of_node_check_flag(child, OF_POPULATED)) + continue; + if (!of_platform_device_create(child, NULL, NULL)) + pr_err("Failed to create MSC device for %pOF\n", child); + } } } =20 --=20 2.34.1 From nobody Fri Sep 25 10:38:02 2026 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 51C8D4252A8 for ; Mon, 14 Sep 2026 09:40:44 +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=1789378846; cv=none; b=cUz/JKz3JEK4M0X8DTzU3f57v1CJD2Syas3cI0QnYUNFlKG0IFbYPnSRtaaLxoDi37WDlltWxsL/UhhJVmIpXMUY315KW+IByXwZDhSbI9Y2vwexecdcv3mc9/lTHKvDqJ5zZkUSLm6MvX7t1l3dNEvs5xAumbnJyXYRUwZ0cbQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378846; c=relaxed/simple; bh=/QMjM8kIgdElOSlo+HE58P/0O+m2y0r6yoGjhktem2E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hv9DvtIBrdsqQk3espGTw71vIRV1xZxvm3GoeQDPipwODVxs8MlDY6uglJzG2d7EJieY8qpsz/OjpXX+ZmhtNkoENImshMLvCpbPb54hkMuniIxleBUqr2E9A+XcB5n0pbAcnLkMb1nWbLflk9Z9J5e+4RzicdlGy+fv6RHNCcY= 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=IOzJuVlX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=S0cC/M+M; 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="IOzJuVlX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="S0cC/M+M" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68E5jUbc3740843 for ; Mon, 14 Sep 2026 09:40:43 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= xUOv7CaofSadg3VAAhDqr9l7s5Rpo1MskORMDmWB7lw=; b=IOzJuVlXZwQi7EQx u3HlG79Z5W8Y2MZkriR6SxnBX7PotKni36qWMwYPLal62jZguM+M+gzPLGI8D+hU eg6QnTaGq3P6ntTOMcki41FXQ719ph54t7T2/C2UMxxQx0shE5TASJv2ImSZrkLG ko2BjoJNR89p6lZTfFKfmBVP4Jd1oZA8b82SM0nH1A5+Lo9+mVMXqqUaFWDRWkKx A7qJVJa3tmXjq+7YDHBo21Rc1mZD7aVsfTC7ATleaOuer+PH57sHetaMDfeE1H08 SZLKvQSLjZhrcy5X1F0Vx9NmVrxdjlGApvuBHeo0J4ITDSr75aCCLk/B8sjL/L+4 dOz+vg== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gmy9ddyx9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:40:43 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-39512608fb1so7864160a91.1 for ; Mon, 14 Sep 2026 02:40:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378842; x=1789983642; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=xUOv7CaofSadg3VAAhDqr9l7s5Rpo1MskORMDmWB7lw=; b=S0cC/M+M96Y6RxJ3Yjnl0b6pIdEpNsMSp1YZawZ4sbIPsQ9+22IgImi4B+qoBBCmuM mJ2h18gKkUzJHYCekHRaFo4OyfkGrty5D7R/2m/SJRiyMub3dzyouDHX1wZZ3jEER/0e p5rGSuqIBJukbtCYQ+Lribz2diU29+YwPoA3oM0knGFpBsRhjO6GZ4OPqFl/9AUeyvXw do68jYITnmpTn0bl2HXacp423zdfUWMneZRJB/RrT7wpA0qxQqLmGPSql3U9/Qri1twH nYuUpvEGQg1Zt4IeFJEXQhQzhhOB5ZS84GwJIBGR3lpY7FvfPweYv3NRUlRri92SSLM0 +9Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378842; x=1789983642; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=xUOv7CaofSadg3VAAhDqr9l7s5Rpo1MskORMDmWB7lw=; b=QLjFfrp9JrlE5l+cTIrnQwYbkWGYyo3QkK6zpgZS+ZhSJtM9nRQ2wN4/z6POLivDTj Qgww4VtQ8c8Z/pdC2inmtep7evOAdLnVN7a/xv5vwuEMvur7a0NXHD0arIPiRovws8hW qQBFFD/ZYkf7WkrdHJNXpafyEUTKdbvc3L0wS1bf4/rePB8XM3pF961EigIRB7POZhu+ OsvNPU0S+Mm/nsFu5jecVuUirXXqteyWhAFwo1MEUBNUVJ6P5Setc39dNyEaetbuJy8E 4yikcBZ+157uCVg48RF0+7t5ajJknr+jYteBUNg+zfBH7iJotACUXCGUJQjIXLFNyCb7 eMDg== X-Forwarded-Encrypted: i=1; AKwUvBy0zt6ax9U4Ucf0GNFNEdkH/Vxw9jVhe0OcNVLzTqv3h3f3KTN4LI53J/77N6HQoQ3dAvHVnBdPXp+7E9Q=@vger.kernel.org X-Gm-Message-State: AFuF++mTEUxCOL7txkXzbyDJjztmtibMqnIbo3GEvrCNaE4SkrEmAM4s Zqhcg47eA0xJXOyJ7AHP6gyhwXPMBr0Z1r0Oj5dH6phFaz/YfOXpnzX48+4Zk6fuyzkNLK6olQS zwxggAo75BhEQoBKm78fcsaj2qEVJnjfBElDl3cWtGgJZPXrWuwy0Iy9ZrY6350L0TKQ= X-Gm-Gg: AYBFou1Lw+j5tgWhWw0EQJ3YCRiqVs+nNQ4MxGqyhehoDkxgA81t+wr/CzSiEWREit/ q90MWs/pAC1By9guM2998MNX8W7LgVhebh6MX81qEBTAsjZ3OLXRcyBvpgvd9PopQaCW346lTVR TNw27ZHS9pTc2lcco5vV4qdZMe4kWVuatE9GT44GrDyjAIEke/XaKDu0+R4+68KQ//WdGZCr1Fi vE+IlULUP/DxjpkSzA64AQfQJAeUbRCL9rdZ8eZ0DipSh0ZahZthuoFCoWK/w0o5PC6n4+UkY7q kZTUfGcm3lP7uXguqsvlRe5Ak+lPTiq/Qxx8rB0kqZwFVeH/iym5qlW72L+OxQ/arvh97p3id1o ub9tm6ZF2xQYAxe3HQpEJHydphaiLSb+K5+wNU7xyoBTmIrxNhCm5YnEw X-Received: by 2002:a17:90b:4984:b0:39d:f61d:7ca6 with SMTP id 98e67ed59e1d1-39df61d7d1bmr799670a91.15.1789378842259; Mon, 14 Sep 2026 02:40:42 -0700 (PDT) X-Received: by 2002:a17:90b:4984:b0:39d:f61d:7ca6 with SMTP id 98e67ed59e1d1-39df61d7d1bmr799596a91.15.1789378841750; Mon, 14 Sep 2026 02:40:41 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.40.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:40:41 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:56 +0800 Subject: [PATCH RFC v2 08/10] dt-bindings: arm: Fix MPAM MSC binding schema and examples Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-8-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378766; l=5185; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=/QMjM8kIgdElOSlo+HE58P/0O+m2y0r6yoGjhktem2E=; b=8GP+/eE1ihxpjc1D5+JwaI40o3SddpMHij/oEBZPzRJi9AlEFwTF+xGKazd6CtDo2ECYdzsxk ayDwgtPlrNbByU4vyLNxTZ4wfQRSS3cI/irRbXp9iHYlbYInj/lLwdR X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX98xtJpbr8CiB aTYH4TfxJudm1C3VlSmWpZVeiCbgC2+Hqkrau1i89kB214l3RTX0nYa/wEj47tKlddmkNUYh1bL SbrxWxluV0OxX3NQYVaQfsImbY2Nz40OXWZ1MNS09VKsm1+XQJAsyf+Q9bJM7Q3gcX+2Jnu6pr/ OGErBJSRNGH+h3wF/d5uNhVPO8NgNNcujtlgKKsXuNMcXRYROmZXj0XznNkHO8NdyvaqAst1Yph qLXV8lxNE6TE95ksMUrRGm+NX1g+YUNJ17r5dONnTGpRsA0Qd11o2V/K8FNabEuj7t5jSdTvo16 3Ba2HK08Gujf9Ip8MNH30aUr/vM01NS6qMghUE5pf9vX+Hdh456ofctTW0D2L6Iqs84SxlDWRzX vBPWLzNrJLpgTpllVjTC7Y3/2l9NzCy2A6DECxcjahIjNJNdKaOMwlgA6AtWGQXzWOGg/Pr5c7X 7BH3mETCfVwrlfLFUVQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX9pL8YEbwjHLo cCWxs3bt4/a6kaeYViT2kjVf2aVPt3I5167QLvGcnPHAAR0/ysCFTY9On5HxFVHy/pEKea+B3lE QAY0x4jO7MUDNkjpMZIzEDQ1g09qOyI= X-Proofpoint-GUID: yq0fzqwet5qJ2NkZPd2_pQPzhFUn8fGq X-Authority-Analysis: v=2.4 cv=OeUNnRTY c=1 sm=1 tr=0 ts=6aa7c11b cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=gEfo2CItAAAA:8 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=d9rEuZw9YcPYe4YaNdcA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=sptkURWiP4Gy88Gu7hUp:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-ORIG-GUID: yq0fzqwet5qJ2NkZPd2_pQPzhFUn8fGq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 priorityscore=1501 suspectscore=0 impostorscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140137 Fix multiple issues in the MPAM MSC device tree binding: Schema fixes: - Move maintainers field before description to follow standard field order - Change compatible from fixed items list to oneOf to allow both standalone arm,mpam-msc and the two-item arm,mpam-memory-controller-msc + arm,mpam-msc combination - Constrain numa-node-id as uint32 with description instead of unconstrained - Add phandle-array type constraint to cpus property - Fix bracket spacing to pass yamllint Example fixes: - Replace arm,dsu-l3-cache with foo,a-l3-cache (no upstream schema exists) - Fix msc@41000 reg address from 0x0 to 0x41000 to match unit-address - Fix ris@2 reg value from 0 to 2 to match unit-address - Add arm,mpam-device phandle reference and remove TODO comment - Remove unnecessary blank lines for consistency Co-developed-by: Huang Yiwei Signed-off-by: Huang Yiwei Signed-off-by: Yin Li --- .../devicetree/bindings/arm/arm,mpam-msc.yaml | 39 ++++++++++++------= ---- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml b/Docu= mentation/devicetree/bindings/arm/arm,mpam-msc.yaml index 53a6fdbbf05f..3c7b13a23ff2 100644 --- a/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml +++ b/Documentation/devicetree/bindings/arm/arm,mpam-msc.yaml @@ -6,19 +6,21 @@ $schema: http://devicetree.org/meta-schemas/core.yaml# =20 title: Arm Memory System Resource Partitioning and Monitoring (MPAM) =20 +maintainers: + - Rob Herring + description: | The Arm MPAM specification can be found here: =20 https://developer.arm.com/documentation/ddi0598/latest =20 -maintainers: - - Rob Herring - properties: compatible: - items: + oneOf: - const: arm,mpam-msc # Further details are discov= erable - - const: arm,mpam-memory-controller-msc + - items: + - const: arm,mpam-memory-controller-msc + - const: arm,mpam-msc =20 reg: maxItems: 1 @@ -34,7 +36,7 @@ properties: interrupt-names: oneOf: - items: - - enum: [ error, overflow ] + - enum: [error, overflow] - items: - const: error - const: overflow @@ -44,7 +46,9 @@ properties: accurate after a settings change. For more information, see the Not-Ready (NRDY) bit description in the MPAM specification. =20 - numa-node-id: true # see NUMA binding + numa-node-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: NUMA node identifier for the memory resource this MSC con= trols. =20 '#address-cells': const: 1 @@ -72,16 +76,17 @@ patternProperties: maximum: 0xf =20 cpus: + $ref: /schemas/types.yaml#/definitions/phandle-array description: - Phandle(s) to the CPU node(s) this RIS belongs to. By default, t= he parent - device's affinity is used. + Phandle(s) to the CPU node(s) this RIS belongs to. By default, t= he + parent device's affinity is used. =20 arm,mpam-device: $ref: /schemas/types.yaml#/definitions/phandle description: By default, the MPAM enabled device associated with a RIS is the= MSC's - parent node. It is possible for each RIS to be associated with d= ifferent - devices in which case 'arm,mpam-device' should be used. + parent node. It is possible for each RIS to be associated with + different devices in which case 'arm,mpam-device' should be used. =20 required: - compatible @@ -92,14 +97,14 @@ required: - reg =20 dependencies: - interrupts: [ interrupt-names ] + interrupts: [interrupt-names] =20 additionalProperties: false =20 examples: - | L3: cache-controller@30000000 { - compatible =3D "arm,dsu-l3-cache", "cache"; + compatible =3D "foo,a-l3-cache", "cache"; cache-level =3D <3>; cache-unified; =20 @@ -109,7 +114,6 @@ examples: =20 msc@10000 { compatible =3D "arm,mpam-msc"; - reg =3D <0x10000 0x2000>; interrupts =3D <1>, <2>; interrupt-names =3D "error", "overflow"; @@ -145,7 +149,7 @@ examples: =20 msc@41000 { compatible =3D "arm,mpam-msc"; - reg =3D <0 0x1000>; + reg =3D <0x41000 0x1000>; interrupts =3D <5>, <6>; interrupt-names =3D "error", "overflow"; arm,not-ready-us =3D <1>; @@ -155,8 +159,8 @@ examples: =20 ris@2 { compatible =3D "arm,mpam-cache"; - reg =3D <0>; - // TODO: How to map to device(s)? + reg =3D <2>; + arm,mpam-device =3D <&L3>; }; }; }; @@ -173,7 +177,6 @@ examples: =20 msc@10000 { compatible =3D "arm,mpam-msc"; - reg =3D <0x10000 0x2000>; interrupts =3D <7>; interrupt-names =3D "overflow"; --=20 2.34.1 From nobody Fri Sep 25 10:38:02 2026 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 B0100420868 for ; Mon, 14 Sep 2026 09:40: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=1789378859; cv=none; b=nN2qtdZgDZ3AARsdSZbA604AGtOzVpF+mPUQBHTMOdcTsz+Xmg5ABhadWd64ssYNxkkRZxvS/1BbCaMmIKt/u8iLtyBryh67qjZLs3oCqLA9A/rNHtMgZJkQccSLFxQP0epdl0gk+Ix+7yUHj+SWnex4raBR9NrQYl/rEdvLZS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378859; c=relaxed/simple; bh=6aXcuNFRRTDlvGN+TsA+86KnLS6uQ6WRYT0BfzhuKws=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=V2cQT/IEpEThFf89r4zJOdFiZgUhlJpl0wJaUQgjtC9RNdqPzKbLG6nsdSdJQ6Wk17hh2Zc+fZuoKMto5ZSjmBdIpdBqtdf2z4UEftdHJjnwz9zOvZhTX/TKvMRrpIaXs/rf/Xo805YJVOX+PtidEUkTxDwStYi22fV4a3nl2Uw= 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=Q/um7+Cn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KremHy8i; 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="Q/um7+Cn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KremHy8i" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68E7xxEW3490234 for ; Mon, 14 Sep 2026 09:40:51 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= P6YrFJjqPcO/aWvqnjXKz6CibEiLizP2yppK2VCHVxw=; b=Q/um7+Cn+R1ao+ga 7xi4L/qfLJvSpiT+pss0RfnECg1rYEFA9gwNL4wRsblqWUDaVfSUJ4kah1P4ig1S a9j0quqyK/Exma9NccFGCZYAfyjiShQvi6Sbfi7KRdLm+QprEb+MZDtxpaQp9nU9 KWl6Sr5dCByVkxAMkVvBmsj4oGnmlUolMT6hNoMfYHazBiOPzzoAUc1cd0AGyozD pJTxKZGeInnzCuJGFscKXzv0HdCK8YLHAxvcNg89gXkp+k3JAsE175IjbGUJTm9g VdhjJ/Wcrf1iOZvq7LFvUP6JuSZpyIW9EgCak/K1JFFmj6ya7T3HEQwiQ9aPCbwt s8whZg== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gpd1f0b8c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:40:51 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38e7ff7b375so3756575a91.1 for ; Mon, 14 Sep 2026 02:40:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378850; x=1789983650; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=P6YrFJjqPcO/aWvqnjXKz6CibEiLizP2yppK2VCHVxw=; b=KremHy8i9j8TgINTSpcGLa17dhzbm8oWriKj3tb4CjsQiIakIsRMFO/gNHwVB5mWke FrjTdf3osgx3PqqUjy93sGqncPp4a/kcyPu4Hajw8SCrXZZ+eEm6CJ0J6OTwIysfhed1 wvY4dD72g5EIW8zXSpeBCP5m/qlvq+TCTaY02c91KLvvSAIyH9dBjJnKJJ7z02FO6vAJ yYd9udNPd5Qm0O43HpqT8dJ3Tk4REi7s4DfM1gH5ONcVmXiAy4k9XsGw3HeMLkeXaWcC T6mbFW/YFPC6IXAapmurYodnaIgD3CNhZnIReKNpz9nhY6gCbGnxsupTOaFeKXYlnxqo 6pWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378850; x=1789983650; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=P6YrFJjqPcO/aWvqnjXKz6CibEiLizP2yppK2VCHVxw=; b=cONWGDJ4ajyuh4liMS/0vfrcifv7fVnzSe93EXT+aRaX2a4hwEorjp+KbAVVxBk2vw 24fkRT31EH+UQ1dpNSn4lh5ri+O2KD+howZObcwAywd0hPLIjpbLxxrvQV39cG6ytdga 8wJGbAQ6UZrQRiZ4nkf4gTCV2XsnPAcNOcLWxTG8r1wRGylZcVWrcvgDVWielqORcuPg 1Yg1Hgaj+IaOqgJ37TtZ5NgVv+ZDz/h0Te+UnBfVnEjz42IBVhCoy/8gER0oeRTrQb9U xAPDKo1KkKA8FChhWJA3POWTdUlpN5oMThDBlXP4IjIEFhswOS4aqPK7lLqDIUnPREF5 opvA== X-Forwarded-Encrypted: i=1; AKwUvBx/eQLv5f/2hOZuFwDKUBQcn/N5UhkGN8l6W3TCt8EmYisdj5LNJOrYl+MPKvuL0sEmMl6Gv0CjnLFjia4=@vger.kernel.org X-Gm-Message-State: AFuF++nCT4bgYkuxvk4EO7Nv1j3Rs8Mvg20Q73/ClSS7AJbGEbNxYq7Y gE0TzWCJypP0ZjpBe2tjhhhp+wyA7iAPjnq5QkDZIgCilEL8UILDfxQynf5T4MpEK9OolWOKhWs gmeOihdqhgjP8EljkWsvSzqodrEJhSQL/nEiz+KSZhhIVQRAIdGcWk5ruTOHPrjo3f+Q= X-Gm-Gg: AYBFou2r2pLdJg2tfunuQ1qYwPcR+G/+7VBnrwVs8R/O3Orjo+vro2AJsOBFXKDqW+t 5HOZWqGtvveosCil+iO1pLa8WEZ2jAtK/a6jvwh7WOFPY9jwPNEp95lHjkBk+QG+vcHCX++AHi4 KWz9kNtoF4N1mFeayuDXLweEpGGK2rQ0FfR9ZArDxP6PUqASKCxSK8pZYDX/z3mn3pORe6V4doJ EN5hImsP9wbI3YosdQz9YGtpgHdKPshR6O0y6ZD0TSvbqRT62xhvV4jqIw+2kIFgfVB7F+DUsr8 EvQlFuFL97YeNloc40/raEdoXGH2UgyGlNJ/d9Z7kKQYnwioSGjV+78T5XdrY11x/KkuYk7Lo+0 dI5v25DVmj4yT6il7fX6bGpIyt6OanpjDOFeKsQ+NMupvaF+5CCoHz9+6 X-Received: by 2002:a17:90b:2e0e:b0:38e:250b:122f with SMTP id 98e67ed59e1d1-39dec056382mr4254898a91.16.1789378850273; Mon, 14 Sep 2026 02:40:50 -0700 (PDT) X-Received: by 2002:a17:90b:2e0e:b0:38e:250b:122f with SMTP id 98e67ed59e1d1-39dec056382mr4254813a91.16.1789378849795; Mon, 14 Sep 2026 02:40:49 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.40.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:40:49 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:57 +0800 Subject: [PATCH RFC v2 09/10] arm_mpam: Support MSC accessibility derivation from RIS nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-9-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378767; l=6269; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=6aXcuNFRRTDlvGN+TsA+86KnLS6uQ6WRYT0BfzhuKws=; b=bBQpLcPvbQkOwg42mxykFwgzeNMrLYkvmlHOl2AGfilHAAgu7ACzGrPmI6ia6F5ZPYIR2VX4z GvQ3J7nPV2uDZDl8IQxmBFkTY+MyPGCT0D/Ot5op5knchONGKHD6MT7 X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-ORIG-GUID: gQBdQ4NXD-atXyGgZRTCQCmStpb4cSJs X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX/lW7eBjfn8KE 0OEvw8g5i/6ZWIqnRwahr8EoBCA0xtB9WFzGoMTuBImiNRuxKJH7vNE70Pp9X6ICmQ8jBAbnloK Jh9Maf6VKOpwQovnFWhi+CofqBeIMp8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX3/uwMe01Wtwn f+oR7IknwaJ8GDqi5LQL2x1d+LW08PAksA4QWKDekLtsC6XlvLLYtqkUjU00kmKO4EHLxs3oQoj np6f4TdmhYttJw6Rd11Xae/x0Iq3jMEle4YORDluGNrMluuK8MNwJbTgAcLkguKOI5/qPRIEsR8 yj+UBP5TeO/N83JCMdz8NCAycQdq5tBFLLgZPIwM2jtRAbIZYJqu3ru9JinNEfAWF2S++hl7lru Xb+n7RCvHG42DiXE5VGQQC0uZy1McX2HiaXutROYbiy5dYPukU1NmENXdCGF0ZoI45a7NVsF/0G DfVjjJRtHtqY5bViCOIVVoxPPxMo9j6QjdYXhfT9J8HCPjsvcQbQKHoGW/oXjcP3jEIjUh8Yi5m 778bRNmMwBr7HKB/DbZ9QrGDOrLlK0Ll764hwMGboWshPTvHixbPpcTmddo1a1q4Rv98j0FQzGs yuDI+scSoMs8k/BgP5A== X-Authority-Analysis: v=2.4 cv=XKel2ghE c=1 sm=1 tr=0 ts=6aa7c123 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=DmVZOekaPyhSFRrspXcA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-GUID: gQBdQ4NXD-atXyGgZRTCQCmStpb4cSJs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 spamscore=0 bulkscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140137 The DT accessibility derivation only handled MSCs whose parent node is a cache or memory device. When the MSC is placed under a generic container (e.g. directly under /soc), the parent gives no affinity hint and there is no fallback. Add a per-RIS fallback path for when the parent node is not a recognised cache or memory device. For each available RIS child node, affinity is resolved in two steps: first from an explicit 'cpus' phandle-array on the RIS node, then from the 'arm,mpam-device' phandle. The final accessibility mask is the union of all RIS masks; if any RIS fails to resolve, the mask is cleared and the MSC fails to probe rather than come up with a partial affinity. Factor the DT-specific logic into mpam_dt_update_msc_accessibility() so that update_msc_accessibility() dispatches cleanly between ACPI and DT paths. Co-developed-by: Huang Yiwei Signed-off-by: Huang Yiwei Signed-off-by: Yin Li --- drivers/resctrl/mpam_devices.c | 146 ++++++++++++++++++++++++++++++++++++-= ---- 1 file changed, 131 insertions(+), 15 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 7ef3ed55b066..ede1b157ab57 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -2159,6 +2159,136 @@ static int mpam_msc_setup_error_irq(struct mpam_msc= *msc) return 0; } =20 +/* + * Resolve a RIS to its CPU affinity from its 'cpus' phandle-array. + * Returns -ENODEV when 'cpus' is absent (the caller may use another sourc= e), + * -EINVAL when any phandle is invalid, or 0 on full success. + */ +static int get_cpumask_from_ris_cpus(struct device_node *ris_np, + cpumask_t *affinity) +{ + int i, cpu_phandle_count; + + cpu_phandle_count =3D of_count_phandle_with_args(ris_np, "cpus", NULL); + if (cpu_phandle_count <=3D 0) + return -ENODEV; + + for (i =3D 0; i < cpu_phandle_count; i++) { + struct device_node *phandle_np __free(device_node) =3D + of_parse_phandle(ris_np, "cpus", i); + int cpu, matched =3D -1; + + if (phandle_np) { + for_each_possible_cpu(cpu) { + struct device_node *cpu_node __free(device_node) =3D + of_get_cpu_node(cpu, NULL); + + if (phandle_np =3D=3D cpu_node) { + matched =3D cpu; + break; + } + } + } + + if (matched < 0) { + pr_warn("MPAM: RIS %pOF cpus[%d] (%pOF) is not a possible CPU\n", + ris_np, i, phandle_np); + return -EINVAL; + } + + cpumask_set_cpu(matched, affinity); + } + + return 0; +} + +/* + * Resolve a RIS to its CPU affinity from its 'arm,mpam-device' phandle. + * Returns -EINVAL when 'arm,mpam-device' is absent or the phandle is inva= lid. + * 0 on full success. + */ +static int get_cpumask_from_ris_phandle(struct device_node *ris, + cpumask_t *affinity) +{ + struct device_node *mpam_device __free(device_node) =3D + of_parse_phandle(ris, "arm,mpam-device", 0); + + if (!mpam_device) { + pr_warn("MPAM: RIS %pOF has neither 'cpus' nor 'arm,mpam-device'\n", + ris); + return -EINVAL; + } + + if (of_device_is_compatible(mpam_device, "cache")) + return get_cpumask_from_cache(mpam_device, affinity); + + if (of_device_is_compatible(mpam_device, "memory")) { + cpumask_or(affinity, affinity, cpu_possible_mask); + return 0; + } + + return -EINVAL; +} + +static int get_cpumask_from_ris(struct device_node *ris, cpumask_t *affini= ty) +{ + int err; + + err =3D get_cpumask_from_ris_cpus(ris, affinity); + if (err !=3D -ENODEV) + return err; + + return get_cpumask_from_ris_phandle(ris, affinity); +} + +/* + * Returns -ENODEV when the parent is just a container (not a recognised d= evice), + * so the caller falls back to the per-RIS description. + */ +static int get_cpumask_from_parent(struct mpam_msc *msc, cpumask_t *affini= ty) +{ + struct device_node *parent __free(device_node) =3D + of_get_parent(msc->pdev->dev.of_node); + + if (parent =3D=3D of_root) { + cpumask_copy(affinity, cpu_possible_mask); + return 0; + } + + if (of_device_is_compatible(parent, "cache")) + return get_cpumask_from_cache(parent, affinity); + + if (of_device_is_compatible(parent, "memory")) { + cpumask_copy(affinity, cpu_possible_mask); + return 0; + } + + return -ENODEV; +} + +/* + * An MSC's CPU affinity is described either by its parent node or, when t= he + * parent is just a container, per-RIS inside the MSC. In the per-RIS case= the + * accessibility is the union of the RIS affinities: every RIS must resolv= e, so + * a single failure clears the mask and stops and the MSC fails to probe r= ather + * than come up with a partial affinity. + */ +static void mpam_dt_update_msc_accessibility(struct mpam_msc *msc) +{ + cpumask_t *affinity =3D &msc->accessibility; + + cpumask_clear(affinity); + + if (get_cpumask_from_parent(msc, affinity) =3D=3D -ENODEV) { + for_each_available_child_of_node_scoped(msc->pdev->dev.of_node, ris) { + if (get_cpumask_from_ris(ris, affinity)) { + cpumask_clear(affinity); + break; + } + } + } +} + /* * An MSC can control traffic from a set of CPUs, but may only be accessib= le * from a (hopefully wider) set of CPUs. The common reason for this is pow= er @@ -2168,8 +2298,6 @@ static int mpam_msc_setup_error_irq(struct mpam_msc *= msc) */ static void update_msc_accessibility(struct mpam_msc *msc) { - struct device *dev =3D &msc->pdev->dev; - struct device_node *parent; u32 affinity_id; int err; =20 @@ -2185,19 +2313,7 @@ static void update_msc_accessibility(struct mpam_msc= *msc) return; } =20 - /* Where an MSC can be accessed from depends on the path to of_node. */ - parent =3D of_get_parent(msc->pdev->dev.of_node); - if (parent =3D=3D of_root) { - cpumask_copy(&msc->accessibility, cpu_possible_mask); - } else { - if (of_device_is_compatible(parent, "cache")) - get_cpumask_from_cache(parent, &msc->accessibility); - else if (of_device_is_compatible(parent, "memory")) - cpumask_copy(&msc->accessibility, cpu_possible_mask); - else - dev_err_once(dev, "Cannot determine accessibility of MSC.\n"); - } - of_node_put(parent); + mpam_dt_update_msc_accessibility(msc); } =20 /* --=20 2.34.1 From nobody Fri Sep 25 10:38:02 2026 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 8556042668B for ; Mon, 14 Sep 2026 09:41:02 +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=1789378865; cv=none; b=fay9ZutweXbb8lVsvCBZIVnnN1HX30iaXq/RrBuZIWStGPJn0b7EsLwY5e151CdVzFabAqz71htw1d1HPtU3oSIK3Mu01HT2WD5P7rJLJUH9Lbm7UrZd6co20iG4PUVAfuIw1eU3KttBl3l3R0nVs2N5+yI9jMqpCkQ2p6XZr0A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789378865; c=relaxed/simple; bh=4J037iW0jgNFIUaDdHihz/OvwcIdw7V7vHWLk2241fU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=X78nCwae8+ZY1F4bAXV3tOwpD3Arx1WUODWqJ1uNU27Lw5VE2ykyMbq0rPG2G/4cp686ciuaXazAZbfV7tYI4RceycRPo5eZLSKjnzeamYc7mV9KIuHAjtZ8ayFIlvXcjW7DutxJXH6+N0D9EztCCIW5SoT9MCrAcaxqfey3Bi4= 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=m+b2/amV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CvbRebzM; 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="m+b2/amV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CvbRebzM" 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 68E5jQmd3842847 for ; Mon, 14 Sep 2026 09:40:59 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= IoNgOi7Gt/NIz8sa1CP6cy/ZIgCot/UywicQ+D+OG20=; b=m+b2/amVz9FkEIbJ /ULA+M9LSdAis/Bav/3U+xzPZX90vK7+E0zGrfazoAclybv76wHGyJHTnYolQdrQ v6fnvNmI498SjqvLj5pzVUNXfCwGj4Eo9CSvXecXjQB+9XNSLdkysi9Qi5tHVsgs NPGJnNYfWUheSW6/de5jZbSHN5XT5RNU6ehp7/Agx/zkOARLINGQVisWTdo+3yD+ ApAqxKdJhcMV/YIDKB4YvuOFEw1F8YUM9VxPNGUyJXrqb2z35fXp/yvZhQOn+VEK eDWvDy0+6OGyxnWuS7aBe5HwzD0oGUM7IEbgz1MCqbGa/YFNUfEwpg7byThpp/Ra OwdQ8w== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gmy9c602w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 14 Sep 2026 09:40:59 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-39d865b11b4so1489065a91.3 for ; Mon, 14 Sep 2026 02:40:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789378858; x=1789983658; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=IoNgOi7Gt/NIz8sa1CP6cy/ZIgCot/UywicQ+D+OG20=; b=CvbRebzMnyGF8diM5My6fV1MzzTje2og6YI96sr0WXJKd0v55FrgWDcV0WvfD39NYh o1CweJ4zLPZSSBnh/A6qinM0taCKgf5DpwA5h/v1nN45+t+x2FeftU5V1JtIeOy8/iC0 /UMLRmfGjK0JJT3fM6vNktrSRjG2yzPZLFBdrWzkGr6FlqXAfvfQvHfVZiWybh7QsPGz 1DWYrgsCH6lmiE/ZGDoMSNL/U1AQv3aFZyTmQYltyJueeHVZSH/wVLB9cK82e1aw90bP SiTPfFU5q9u/QK+q+HFVuXoBDECnJT3yABjOEjPWbZmP5Q9rqRRkWaldwvunhLR3Rb7X SMsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789378858; x=1789983658; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=IoNgOi7Gt/NIz8sa1CP6cy/ZIgCot/UywicQ+D+OG20=; b=sPaQdw5mkk4OM9uo5rWDtS42ycUQ1TfL+TS4hV/rF4gS8+m9kvwJzl596Wb7KEMoCd JtDCbL6v9988OxqzOCSmuVMK1T/CdKNN0VrluiEdmoYVpROpRJzav3e7pOW7BkbrTKJK FYzoq7GdusXpEVxMRyml6SDPWAno40HM8Ff46jOZZ69rQn4J4HAkxXkdxA91JSi1gK7O wLLKQQrkfPYsGVJdDJHHdOOEf3Ss6LbozKRZmhbDOEEd4s1/nSeEbixm4La2Gpaus6qt h07+wY222DCHR6WlHC5B8I+KbM2MxkY1Q6hxDjGLfeHkyuMQGz2qxJwv4ZyhBCYpujFC MApg== X-Forwarded-Encrypted: i=1; AKwUvBwNZ1CM6bD34n86WwS5PkGHRHuTLuy0Z1zZwRoOCj4MsBkpgW1H19Y9PiOg6tWj2TeVjw8fxAlTKsLOMM0=@vger.kernel.org X-Gm-Message-State: AFuF++nkldTGxiQj4DJcGDDhAGpBYN8YlUUqfdKqXz7nviU/IqRtll47 sM7VJ3J1CKRPZ9wSprK0vnlE2CmqGwkxsArqjWU2IXHo7oRTQrrk4lwVDPIoz7Yn8rQyN+NM9E5 zD/ueoj6gXSIuhT+5uxMF0Ll0baBFwiEF2ediWqmyYxCYBg9Y/wuOjT8vR9RFpO8YnBA= X-Gm-Gg: AYBFou0JcEf/CQm5TxqyERVZw/Enh9Fj/rDmUs9JshBXheeiG5DbQ9eG+l7wXX+Qyd4 3suWgFK9Qs5deXsi5CnYVfVhnXwWwYPXLVOLUrgqBP/2IKb662w/x738QeCX7dieZRpt01vSjvu y2YBoZOaeT1hFjPgoCYQ9Vaekm/GmOnpo+IBlCQp1ox8pJoVbSX0RiF2428O5yc01SLxttX14/z D8MImjInZdV806uiymgYU2Po+FROuBifIkJLe/ITaCL536YYJBov3G2GTqvBq3ft2NbkZUFpuHM CtOJxCs4USSNLDL7rnWSldb1Il9m8K7bC+fdkatYm5v9GXjmcU9OA1yDLl4GmwGERbs020ptN2u cWhMD4wwvAHTMayxpvOTJ3UFY7RwI3d/HtqE+SBI4rWICTmsFQm0wmBHf X-Received: by 2002:a17:90b:4a47:b0:396:41d1:cbc7 with SMTP id 98e67ed59e1d1-39debf89013mr4001312a91.3.1789378858463; Mon, 14 Sep 2026 02:40:58 -0700 (PDT) X-Received: by 2002:a17:90b:4a47:b0:396:41d1:cbc7 with SMTP id 98e67ed59e1d1-39debf89013mr4001238a91.3.1789378857857; Mon, 14 Sep 2026 02:40:57 -0700 (PDT) Received: from yli42-gv.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-39d98e60484sm19488728a91.4.2026.09.14.02.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 02:40:57 -0700 (PDT) From: Yin Li Date: Mon, 14 Sep 2026 17:37:58 +0800 Subject: [PATCH DNM RFC v2 10/10] arm64: dts: qcom: kaanapali: Add MPAM MSC nodes for the L2 caches Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-mpam-resctrl-dt-knp-support-v2-10-bf6645bb2f65@oss.qualcomm.com> References: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com> To: James Morse , Rob Herring , Shanker Donthineni , Ben Horgan , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Bjorn Andersson , Konrad Dybcio , Gavin Shan Cc: Yin Li , Andre Przywara , Drew Fustini , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Shaopeng Tan , trilok.soni@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ganapatrao.kulkarni@oss.qualcomm.com, Srivathsa L Rao , Huang Yiwei , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, devicetree@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789378768; l=2861; i=yin.li@oss.qualcomm.com; s=20260811; h=from:subject:message-id; bh=4J037iW0jgNFIUaDdHihz/OvwcIdw7V7vHWLk2241fU=; b=iu7wOe3pfXWPmLd9My3slCaONNEzZNUVdCafaRu9tdHeskrAI1rGcPR5+/FkZ3oE4TQJB8zrM osqqskJa3ouAOWjaxKCGP0Lu65YlrgiKPPiqMAugS7iGHYIymBIDBV4 X-Developer-Key: i=yin.li@oss.qualcomm.com; a=ed25519; pk=e/2LM97aSWGBMrxY240URBi9Zi8/kL5hXgB+VHkYvW0= X-Proofpoint-ORIG-GUID: OPyRSeWtPu82blm8HinqYjPFk1DsnpRg X-Proofpoint-GUID: OPyRSeWtPu82blm8HinqYjPFk1DsnpRg X-Authority-Analysis: v=2.4 cv=c5Y+0h9l c=1 sm=1 tr=0 ts=6aa7c12b cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=ODdVmvVKQohEaym1G8sA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX9jSGzWPAko+a qD7nm2ykEUjMGeDifEGZgc+g/POJbplfbj6JMvmQbRS5fGjOWmZxxcLL0BB+sJHKzaSSdPhOEza KA+xl+bEkCDM/p7L2CBIUomvajS8buJ2uaBGYxTruyjdM0uz2FOFgu9KHlFR2Hhy3ppOzmYCBg1 WCDAfAYp17tJbJ02VGQW6vhP/X23DxBv8GR/mMneSMDm8bcsTxZWBR5/SIXk1IBKAiL0I7ZS8mj dvEPe+XkLsMimTRn4wz9+fGjc6ZZYvpJ9GLw2f1OhuukFlbHE3wy0CCbPTNFFXYZg+CjMI0yqdW SnPLgaelweKuY3t9Z5hbxQt3ZjzCjXMjeAqnUVf0WY0xkZM+3o66vmQ8BSO3UcXNG9zbbbE7LKh ihXr9uJGNtb3jSCQmqk5HdTtZg7hMbwIiTydlQBSqDkLFKi/5xjaa5DigGt93Go7aCbq++ABI0Q tv1RzGu7LkmyB11IegA== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE0MDEzNyBTYWx0ZWRfX0tTQPuiIW8J1 MJXIjdCgh9BfVvZmpxteVHJ3IDzON4U+GD/wnKz8fLUokLyz6BTlplQNRPmS5Ad0WZnhpc4KWAP 0s6rkCWeO4oTe2PAOtpgSfJTNTkBEiM= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-14_02,2026-09-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 bulkscore=0 impostorscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609140137 Add an MPAM MSC device node for each L2 cache. Each MSC is nested directly under its L2 cache node so that the cache node is the MSC's parent device and its CPU affinity is derived from that cache. The L2 cache nodes are placed directly under the root node. The root is the root of the physical address space, so each cache node only needs an identity 'ranges' property for its nested MSC's 'reg' to be resolved to a physical address. The two caches use distinct node names (l2-cache-0 and l2-cache-1) since a cache node has no MMIO unit-address of its own. The nodes are disabled by default. Production firmware does not expose MSC register access to the OS, so these nodes can only be enabled on a local test setup where firmware permits direct MMIO access to the MSCs. This DTS is therefore only an example for other platform DT authors and is not intended to be merged. Co-developed-by: Huang Yiwei Signed-off-by: Huang Yiwei Signed-off-by: Yin Li --- arch/arm64/boot/dts/qcom/kaanapali.dtsi | 50 +++++++++++++++++++++++++----= ---- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/= qcom/kaanapali.dtsi index 131fd2a16c54..b1dcb1e9c570 100644 --- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi +++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi @@ -48,12 +48,6 @@ cpu0: cpu@0 { power-domains =3D <&cpu_pd0>, <&scmi_perf 0>; power-domain-names =3D "psci", "perf"; #cooling-cells =3D <2>; - - l2_0: l2-cache { - compatible =3D "cache"; - cache-level =3D <2>; - cache-unified; - }; }; =20 cpu1: cpu@100 { @@ -120,12 +114,6 @@ cpu6: cpu@10000 { power-domains =3D <&cpu_pd6>, <&scmi_perf 1>; power-domain-names =3D "psci", "perf"; #cooling-cells =3D <2>; - - l2_1: l2-cache { - compatible =3D "cache"; - cache-level =3D <2>; - cache-unified; - }; }; =20 cpu7: cpu@10100 { @@ -531,6 +519,44 @@ soccp_smp2p_in: slave-kernel { }; }; =20 + l2_0: l2-cache-0 { + compatible =3D "cache"; + cache-level =3D <2>; + cache-unified; + cache-size =3D <0xc00000>; + ranges; + + #address-cells =3D <2>; + #size-cells =3D <2>; + + msc@19870000 { + compatible =3D "arm,mpam-msc"; + reg =3D <0x0 0x19870000 0x0 0x10000>; + arm,not-ready-us =3D <1>; + status =3D "disabled"; + }; + + }; + + l2_1: l2-cache-1 { + compatible =3D "cache"; + cache-level =3D <2>; + cache-unified; + cache-size =3D <0xc00000>; + ranges; + + #address-cells =3D <2>; + #size-cells =3D <2>; + + msc@1a870000 { + compatible =3D "arm,mpam-msc"; + reg =3D <0x0 0x1a870000 0x0 0x10000>; + arm,not-ready-us =3D <1>; + status =3D "disabled"; + }; + + }; + soc: soc@0 { compatible =3D "simple-bus"; =20 --=20 2.34.1