From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030315AbdJRKhJ (ORCPT ); Wed, 18 Oct 2017 06:37:09 -0400 Received: from foss.arm.com ([217.140.101.70]:37444 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1763210AbdJRKhI (ORCPT ); Wed, 18 Oct 2017 06:37:08 -0400 Subject: Re: [PATCH v2 1/1] arm: topology: remove cpu_efficiency To: Vincent Guittot Cc: linux-kernel , LAK , Russell King , Juri Lelli , Brendan Jackman References: <20171012140028.21599-1-dietmar.eggemann@arm.com> <20171012140028.21599-2-dietmar.eggemann@arm.com> From: Dietmar Eggemann Message-ID: <00d4d98e-3d75-377f-434d-dce47c0629dd@arm.com> Date: Wed, 18 Oct 2017 11:37:06 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Vincent, On 17/10/17 13:28, Vincent Guittot wrote: > Hi Dietmar, > > On 12 October 2017 at 16:00, Dietmar Eggemann wrote: >> Remove the 'cpu_efficiency/clock-frequency dt property' based solution >> to set cpu capacity which was only working for Cortex-A15/A7 arm >> big.LITTLE systems. >> >> I.e. the 'capacity-dmips-mhz' based solution is now the only one. It is >> shared between arm and arm64 and works for every big.LITTLE system no >> matter which core types it consists of. >> >> Cc: Russell King >> Cc: Vincent Guittot >> Cc: Juri Lelli >> Signed-off-by: Dietmar Eggemann [...] >> @@ -111,76 +50,15 @@ static void __init parse_dt_topology(void) >> continue; >> } >> >> - if (topology_parse_cpu_capacity(cn, cpu)) { >> + if (topology_parse_cpu_capacity(cn, cpu)) >> of_node_put(cn); > > We should call the of_node_put unconditionally to balance the > of_get_cpu_node, isn't it ? > Note that this problem is also present without your change Thanks for the review. Brendan mentioned this the other day already. I could add an additional patch to the v3 with this code change. What do you think? diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c index 15cc131ae387..81ec42333489 100644 --- a/arch/arm/kernel/topology.c +++ b/arch/arm/kernel/topology.c @@ -41,6 +41,7 @@ static void __init parse_dt_topology(void) pr_err("No CPU information found in DT\n"); return; } + of_node_put(cn); for_each_possible_cpu(cpu) { /* too early to use cpu->of_node */ @@ -50,8 +51,8 @@ static void __init parse_dt_topology(void) continue; } - if (topology_parse_cpu_capacity(cn, cpu)) - of_node_put(cn); + topology_parse_cpu_capacity(cn, cpu); + of_node_put(cn); } topology_normalize_cpu_scale();