From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 771ED43CEC4 for ; Thu, 20 Aug 2026 12:24:07 +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=1787228650; cv=none; b=IgNf1yMLgBaeDGG87MBeyCg7kf8LsiY+BDTkBsn2D+/K7z6d71ulFLG4YK1mpWntJeq/rdX8aJeqXGmXaIJDJ3N0VfZ7iD8fJ0pLMeRd6GElcbQxgMGKbygqnX0w/0ZYq6HN7WsgjL2AFzaia2WKVnNIlLtiD5Xjhw0z4Fns5p4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787228650; c=relaxed/simple; bh=Ui/hP+QL6ancseNG+Kxx4ozLzkd475S3Hpqx/mBIMOE=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=s+UPL/WCvi/3hu0SMW1KzOR8ToYjTprNOVUWIJxofTmTPgAcrkp/2qmri9ad96ruOielMNK9ZC7T65iuMA9CYmMzUhIlGaHHPRKqngxYuPMkW4Lae5znNwzKBJr06RD0FJX+1adgpTIOFYtE6zr0Aa8XaPQ9TSJ31nfN+BtF8wk= 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=IxEFfG+H; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LbV1c7Or; 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="IxEFfG+H"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LbV1c7Or" 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 67KA2tPn3132163 for ; Thu, 20 Aug 2026 12:24:06 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= VrlmU7VL41FHOTbD5cdWiU9bgIS+YIxBeShNI/+hVa8=; b=IxEFfG+HvpqHgjUT 8T+BKA4fVOxl4OpBOyg1Lxel3uyzrNtTzCbUjRgVqlswqf1tfMPVcnr9eKJTZimJ HSjHsaMOeTimK4Qqg0YlgU69rhk9CqAdL8Og7zJQkutG1PsUYxzcWN+H2yOQd284 03DPREM6YVDrBDOsv+l83l1YQkhtb9e4XvsVtnZyw8ZnAZfNZgIoCF0NI3ug/5MD 9RkJXR1Z5+UQu+zbqYEE3yYoBGRtjbM20yK+EU6R2F5D6+jetX7+Yhm+xb3bFuQR vO+Gz8i/zhwbd+Au+1HmzbRR1IIH1j57ho9kpMS/N+PKgCNfb2q04G982vTeyWvP Uh3JzA== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g5yg18fyx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 20 Aug 2026 12:24:06 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-84e4ef486c7so865292b3a.1 for ; Thu, 20 Aug 2026 05:24:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787228645; x=1787833445; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=VrlmU7VL41FHOTbD5cdWiU9bgIS+YIxBeShNI/+hVa8=; b=LbV1c7OrRv6E2M4pViwbC8HGwXPowcUiCJIK8x0oz/yIXxY5D2PObocPTkA0t9ZvIA mLVXF72BWgf07xSM+jQBHwD2WkcCfGs9IxdLaCm7zs67gumkWeGvzKR6YmrO5uFoJTTE sah5O+BrJ1MVu6aiL+4PToHNRbl3/rHUzq3aPirlzmn9dmBwiW6EiOqrgxm6SmF/mGFH kvNLV0kxr6wqm36aJfOO9BoqFEXoLrLzyset5zFBFcarJlTr7kg03Q6NpS0smJodOil0 dOg00UlC0t2j0gqhiHhnPIYzyIpwuQQdhhpGRg9Pl13r76mMJQdvwB99A+mnOtuktPY+ Im2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787228645; x=1787833445; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=VrlmU7VL41FHOTbD5cdWiU9bgIS+YIxBeShNI/+hVa8=; b=QlQr/5uxkYwbe3xyIgy3tfesLynm0hAj/HFnUq3f1baIhk73p9+RFKp+QBX6LRkp9f IfUWQzzhxIo4hEuhs5BNyNgwf+J5mcX5C35LoFQBHO6L1dFT/e3OvvyWsc8m3Iv3Jp6d 7y6EkhIoebMbwP6I+XBMYI9q0mw3HqZ02Rl/KjheTuJYlyHGw3x18Ek26aKJaXS6xQ+I /qbbVJCZkkfkOhNsD75khKQIqqXG7JJtB40+wKVnEc2nN6GVxTt4ZQN34yFKupwuFckK 2V5FRz2pdFoiERPeCpINvPSsqGFQQkmbvTOHWTi/REVvVDDZZ7CMS8mczSM+vtUrJKYc 4gqg== X-Forwarded-Encrypted: i=1; AHgh+RrzWKrjNcWqbYJjjdlicDklXDQV654vUaRFkATfgo7G0GvDL8od8hOSLRUr+f6Aq0MIlcm62MUXrMwTplk=@vger.kernel.org X-Gm-Message-State: AOJu0YwSvtq0BjNeNfHdDoqB/q26v8y96vzAB4/q1VpqUEu6QO5M4PjI bsDA/w4+N1pgmaO2IOnh+en3yvlpjWRxrEpc8j8be/J26lEyAwVac0r1p7x/xteFkGGHFdqICAM SO6cZj+vCNFyEgA+Qf9tF1bzhq3mhBjFhH7/Wi1pLEVETuMSp9UxXC+teB0JgQAzd3no= X-Gm-Gg: AR+sD11Tp3XBQtVmJhDRaXgQrZpZ5yE/kdgNnUGKAiP51+x3HodMP+mnlbnHIDsmAn0 /fO8s5YFqprkBEc5K86f3sweDJts3A3dzVNohAzSJhLHyqjZ+tsCUURNN38qbwzEibU0NSeLveK 1xc1FvMiOEmdWoly0DiDAe49fxQQ2XjDAiEzOHMFsLZVc6I66Mu8g39ffVWO36Ael4HvKEdh1wj z/T0vYzw5VWWwc3wy59KCluqDV0qWD3+WwlrIshoKnKCkqwWuqWn728h5jramSpPoubmvKLzyhK +w3HCJR6Otv4VQNprFxCZBY7VgQUfYuUORzqDFiuk71mW5soLvXVaVwve+lVxVub0FGrsu1gk8q jRF0bs/WlNbwejOkkQ7++YZPjN35JUaitwP7vwxOW+ZuZ95gWJS+JiJKCNw44GTMDdsE2lnMp X-Received: by 2002:a05:6a00:4007:b0:84b:e69f:1b3f with SMTP id d2e1a72fcca58-851dfa00aa2mr6762121b3a.8.1787228645244; Thu, 20 Aug 2026 05:24:05 -0700 (PDT) X-Received: by 2002:a05:6a00:4007:b0:84b:e69f:1b3f with SMTP id d2e1a72fcca58-851dfa00aa2mr6762048b3a.8.1787228644731; Thu, 20 Aug 2026 05:24:04 -0700 (PDT) Received: from [10.133.33.112] (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-851d36185c8sm1601613b3a.38.2026.08.20.05.24.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 20 Aug 2026 05:24:04 -0700 (PDT) Message-ID: Date: Thu, 20 Aug 2026 20:23:59 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 4/5] cpufreq: loongson3: Use global physical CPU ID in get/target callbacks To: Huacai Chen , "Rafael J . Wysocki" , Viresh Kumar , Huacai Chen Cc: loongarch@lists.linux.dev, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Xuerui Wang , Jiaxun Yang , stable@vger.kernel.org, Hongliang Wang , zhongqiu.han@oss.qualcomm.com References: <20260818123921.3600606-1-chenhuacai@loongson.cn> <20260818123921.3600606-5-chenhuacai@loongson.cn> Content-Language: en-US From: Zhongqiu Han In-Reply-To: <20260818123921.3600606-5-chenhuacai@loongson.cn> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: nRowRnN7gEZp0ciTIPlnXcIIt3sxz3va X-Authority-Analysis: v=2.4 cv=G7Is1dk5 c=1 sm=1 tr=0 ts=6a86f1e6 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=VwQbUJbxAAAA:8 a=civxVzKdHa92ALpkkEcA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-GUID: nRowRnN7gEZp0ciTIPlnXcIIt3sxz3va X-Proofpoint-Spam-Info: AW1haW4tMjYwODIwMDA5MiBTYWx0ZWRfXyQx7RRANgHxB qABm0EpG7NO+7AJijBUPCab39DlRBq1p7Hfz3kN+S7tB0NSIUrqg8pdRQW8e+2fNPTfd/C9Vofl CP4nXnCAwtVWlK0QNYgtOOYQuUIQIUI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODIwMDA5MiBTYWx0ZWRfX7N5SHfcZBEwn exBsR37c+LxrkcxIRkXS9KkBmXzn05+STHjFWbwRVKefdbpVVUP5dd42XflNdUYm12Vv1L3eY3a uRk0rbyWbnmOOjtPpLnyc6LHqmeWtLG92+AtPm09R3b8qembsBf4wbf2iZGLBcCP/XQGGzGow+F cKyBaR5vN+jMqVVMDxxRXqqiXysESrR0DFM5Kq/A0pDIkphW+vsv5vSnHBbQG3FHYWqu2Bt1Y7d H52qglq1TEWKP1dn4I0PJHKPl4gDbBpjmRQu02GofIin9eFFfclRb7z15U5vhYwPy5jyfKZr6+a 7VNAzMgAtoO/u+G6X/pWRsiGbj1QHrZo/PWidGB17ss1Ah4Fogu1ydBfVyhtJ52DqfPqdoS4AL+ wGs7Z3quePkBS7BHgdDoz4Ek3gPurdRzAOj+R3GjlBWKmCYrLQFqzey4ES918ip1IdC+/YvZDNZ U7QgO+3Uxr0r50DPOEg== 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-08-19_06,2026-08-19_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608200092 On 8/18/2026 8:39 PM, Huacai Chen wrote: > Our server productions (e.g. Loongson-3D6000/3E6000) can have discrete > global physical CPU IDs while the core ID inside the packages are always > continuous. In these cases we should use global physical CPU IDs to get > and set frequencies. > > Cc: stable@vger.kernel.org > Signed-off-by: Hongliang Wang > Signed-off-by: Huacai Chen > --- > drivers/cpufreq/loongson3_cpufreq.c | 20 +++++++++++--------- > 1 file changed, 11 insertions(+), 9 deletions(-) > > diff --git a/drivers/cpufreq/loongson3_cpufreq.c b/drivers/cpufreq/loongson3_cpufreq.c > index e3cd78a5ab18..c75c0e30e881 100644 > --- a/drivers/cpufreq/loongson3_cpufreq.c > +++ b/drivers/cpufreq/loongson3_cpufreq.c > @@ -219,38 +219,40 @@ static inline int do_service_request(u32 id, u32 info, u32 cmd, u32 val, u32 ext > > static unsigned int loongson3_cpufreq_get(unsigned int cpu) > { > - int ret; > + int ret, core = cpu_logical_map(cpu); > > - ret = do_service_request(cpu, FREQ_INFO_TYPE_FREQ, CMD_GET_FREQ_INFO, 0, 0); > + ret = do_service_request(core, FREQ_INFO_TYPE_FREQ, CMD_GET_FREQ_INFO, 0, 0); As patch 5/5 changelog: "However, IOCSR read/write can only perform on the current node, while sometimes we want to perform on other nodes" However, patch 4/5 starts passing the global CPU number without updating do_service_request(), which is only changed in patch 5/5. Doesn't that mean patch 4/5 is broken on its own? > > return ret * KILO; > } > A separate issue, do_service_request() can return errno such as -EPERM, it will cause .get() func return a large unsigned integer value. > static int loongson3_cpufreq_target(struct cpufreq_policy *policy, unsigned int index) > { > - int ret; > + int ret, core = cpu_logical_map(policy->cpu); > > - ret = do_service_request(cpu_data[policy->cpu].core, > - FREQ_INFO_TYPE_LEVEL, CMD_SET_FREQ_INFO, index, 0); > + ret = do_service_request(core, FREQ_INFO_TYPE_LEVEL, CMD_SET_FREQ_INFO, > + index, 0); > > return (ret >= 0) ? 0 : ret; > } > > static int configure_freq_table(int cpu) > { > - int i, ret, boost_level, max_level, freq_level; > + int i, ret, core, boost_level, max_level, freq_level; > struct platform_device *pdev = cpufreq_get_driver_data(); > struct loongson3_freq_data *data; > > if (per_cpu(freq_data, cpu)) > return 0; > > - ret = do_service_request(cpu, 0, CMD_GET_FREQ_LEVEL_NUM, 0, 0); > + core = cpu_logical_map(cpu); > + > + ret = do_service_request(core, 0, CMD_GET_FREQ_LEVEL_NUM, 0, 0); > if (ret < 0) > return ret; > max_level = ret; > > - ret = do_service_request(cpu, 0, CMD_GET_FREQ_BOOST_LEVEL, 0, 0); > + ret = do_service_request(core, 0, CMD_GET_FREQ_BOOST_LEVEL, 0, 0); > if (ret < 0) > return ret; > boost_level = ret; > @@ -263,7 +265,7 @@ static int configure_freq_table(int cpu) > data->def_freq_level = boost_level - 1; > > for (i = 0; i < freq_level; i++) { > - ret = do_service_request(cpu, FREQ_INFO_TYPE_FREQ, CMD_GET_FREQ_LEVEL_INFO, i, 0); > + ret = do_service_request(core, FREQ_INFO_TYPE_FREQ, CMD_GET_FREQ_LEVEL_INFO, i, 0); > if (ret < 0) { > devm_kfree(&pdev->dev, data); > return ret; -- Thx and BRs, Zhongqiu Han