From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D366C433EF for ; Wed, 2 Mar 2022 14:20:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242865AbiCBOUx (ORCPT ); Wed, 2 Mar 2022 09:20:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236289AbiCBOUr (ORCPT ); Wed, 2 Mar 2022 09:20:47 -0500 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 218684EA25 for ; Wed, 2 Mar 2022 06:20:04 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DEEC913D5; Wed, 2 Mar 2022 06:20:03 -0800 (PST) Received: from e113632-lin (e113632-lin.cambridge.arm.com [10.1.196.57]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 592843F73D; Wed, 2 Mar 2022 06:20:02 -0800 (PST) From: Valentin Schneider To: cgel.zte@gmail.com, mingo@redhat.com Cc: juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, linux-kernel@vger.kernel.org, Lv Ruyi , Zeal Robot Subject: Re: [PATCH] sched/topology: avoid calling synchronize_rcu() In-Reply-To: <20220302011433.2054613-1-lv.ruyi@zte.com.cn> References: <20220302011433.2054613-1-lv.ruyi@zte.com.cn> Date: Wed, 02 Mar 2022 14:19:55 +0000 Message-ID: <87mti84et0.mognet@arm.com> MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/03/22 01:14, cgel.zte@gmail.com wrote: > From: Lv Ruyi (CGEL ZTE) > > Kfree_rcu() usually results in even simpler code than does > synchronize_rcu() without synchronize_rcu()'s multi-millisecond > latency, so replace synchronize_rcu() with kfree_rcu(). > > Reported-by: Zeal Robot > Signed-off-by: Lv Ruyi (CGEL ZTE) > --- > kernel/sched/topology.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c > index 974212620fa1..0ce302b4d732 100644 > --- a/kernel/sched/topology.c > +++ b/kernel/sched/topology.c > @@ -1970,8 +1970,7 @@ static void sched_reset_numa(void) > if (distances || masks) { > int i, j; > > - synchronize_rcu(); > - kfree(distances); > + kfree_rcu(distances); What about the freeing of the cpumasks below? You don't want to free those before the end of the grace period either. With that in mind, I think the current synchronize_rcu() + batch of kfree()'s is fine, it's a slow path anyway (hotplug). > for (i = 0; i < nr_levels && masks; i++) { > if (!masks[i]) > continue; > -- > 2.25.1