Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751954AbcC3Jqq (ORCPT ); Wed, 30 Mar 2016 05:46:46 -0400 Received: from mx0a-0016f401.pphosted.com ([67.231.148.174]:34089 "EHLO mx0a-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750841AbcC3Jqp (ORCPT ); Wed, 30 Mar 2016 05:46:45 -0400 Date: Wed, 30 Mar 2016 17:42:42 +0800 From: Jisheng Zhang To: Daniel Lezcano CC: Lorenzo Pieralisi , Catalin Marinas , , , Subject: Re: [PATCH 1/2] ARM: cpuidle: fix !cpuidle_ops[cpu].init case during init Message-ID: <20160330174242.3f11526c@xhacker> In-Reply-To: <56FB9CFB.8050305@linaro.org> References: <1458796269-6158-1-git-send-email-jszhang@marvell.com> <1458796269-6158-2-git-send-email-jszhang@marvell.com> <56F52502.3060308@linaro.org> <20160330151629.0b338365@xhacker> <56FB89A8.90209@linaro.org> <20160330161745.7afd6e48@xhacker> <56FB9125.10507@linaro.org> <20160330164342.10cf1830@xhacker> <56FB9CFB.8050305@linaro.org> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-03-30_05:,, signatures=0 X-Proofpoint-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1601100000 definitions=main-1603300141 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2242 Lines: 61 Hi Daniel, On Wed, 30 Mar 2016 11:31:39 +0200 Daniel Lezcano wrote: > On 03/30/2016 10:43 AM, Jisheng Zhang wrote: > > On Wed, 30 Mar 2016 10:41:09 +0200 Daniel Lezcano wrote: > > > >> On 03/30/2016 10:17 AM, Jisheng Zhang wrote: > >>> On Wed, 30 Mar 2016 10:09:12 +0200 Daniel Lezcano wrote: > >>> > >>>> On 03/30/2016 09:16 AM, Jisheng Zhang wrote: > >>>>> Hi Daniel, > >>>> > >>>> [ ... ] > >>>> > >>>> Added Lorenzo and Catalin. > >>>> > >>>>>> Hi Jisheng, > >>>>>> > >>>>>> this should be handled in the arm_cpuidle_read_ops function. > >>>>>> > >>>>> > >>>>> Thanks for reviewing. After some consideration, I think this patch isn't correct > >>>>> There may be platforms which doesn't need the init member at all, although > >>>>> currently I don't see such platforms in mainline, So I'll drop this patch > >>>>> and send out one v2 only does the optimization. > >>>> > >>>> There is an inconsistency between ARM and ARM64. The 'cpu_get_ops', the > >>>> arm_cpuidle_read_ops from the ARM64 side, returns -EOPNOTSUPP when the > >>>> init function is not there for cpuidle. > >>> > >>> yes. > >>> arm64's arm_cpuidle_init() returns -EOPNOTSUPP if init callback isn't defined > >>> > >>>> > >>>> I don't think it is a problem, but as ARM/ARM64 are sharing the same > >>>> cpuidle-arm.c driver it would make sense to unify the behavior between > >>>> both archs. > >>> > >>> yes, agree with you. From "unify" point of view, could I move back the suspend > >>> callback check and init callback check into arm_cpuidle_init() for arm as V1 does? > >> > >> Why ? To be consistent with ARM64 ? > > > > Yes, that's my intention. > > Well, I don't have a strong opinion on that. ARM64 cpu_ops is slightly > different from cpuidle_ops as the cpu boot / hotplug operations are > placed in a different place and that explains why on ARM64 we can have > an successful 'get_ops' because we use the partially filled structure. > On ARM, it is cpuidle_ops only, so we can gracefully fail if the ops are > not defined. > > IMO, it still make sense to keep the checks in arm_cpuidle_read_ops for ARM. > Got your points. I'll send a v3 to add init check. These checks will be in arm_cpuidle_read_ops. Thanks, Jisheng