From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932590AbdJ3R1N (ORCPT ); Mon, 30 Oct 2017 13:27:13 -0400 Received: from mail-io0-f193.google.com ([209.85.223.193]:48498 "EHLO mail-io0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932356AbdJ3R1M (ORCPT ); Mon, 30 Oct 2017 13:27:12 -0400 X-Google-Smtp-Source: ABhQp+SRBJMWNwcEI/FxAPWaOwIk8oaHhGDvJpwuWiXIvlfl9fHGS3sChko0GdUgU37Zx7Q1d6eJNA== Date: Mon, 30 Oct 2017 10:27:10 -0700 From: Matthias Kaehlcke To: Peter Zijlstra Cc: Ingo Molnar , Shile Zhang , linux-kernel@vger.kernel.org, Nick Desaulniers , Douglas Anderson , Guenter Roeck Subject: Re: [PATCH] sched/sysctl: Fix attributes of some extern declarations Message-ID: <20171030172710.GE96615@google.com> References: <20171027234020.26927-1-mka@chromium.org> <20171030082612.omuaefugp5nmnnfy@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20171030082612.omuaefugp5nmnnfy@hirez.programming.kicks-ass.net> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org El Mon, Oct 30, 2017 at 09:26:12AM +0100 Peter Zijlstra ha dit: > On Fri, Oct 27, 2017 at 04:40:20PM -0700, Matthias Kaehlcke wrote: > > The definition of sysctl_sched_migration_cost, sysctl_sched_nr_migrate > > and sysctl_sched_time_avg includes the attribute const_debug. This > > attribute is not part of the extern declaration of these variables in > > include/linux/sched/sysctl.h, as a result clang generates warnings like > > this: > > > > kernel/sched/sched.h:1618:33: warning: section attribute is specified on > > redeclared variable [-Wsection] > > extern const_debug unsigned int sysctl_sched_time_avg; > > Since they're already declared in sched/sysctl.h this redeclaration in > sched/sched.h seems pointless. We could remove it, but it would require to move the definition of const_debug to the 'globally' visible header sched/sysctl.h. Would that be your preference? In that case we should probably use a more unique name, like const_sched_debug. > > ./include/linux/sched/sysctl.h:42:21: note: previous declaration is here > > extern unsigned int sysctl_sched_time_avg; > > > > The header only declares the variables when CONFIG_SCHED_DEBUG is defined, > > therefore it is not necessary to duplicate the definition of const_debug > > (or put it in a common header). Instead we can use the attribute > > __read_mostly, which is the expansion of const_debug when CONFIG_SCHED_DEBUG > > is set. > > > > Signed-off-by: Matthias Kaehlcke > > --- > > include/linux/sched/sysctl.h | 7 ++++--- > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h > > index 0f5ecd4d298e..f09afd55ecb5 100644 > > --- a/include/linux/sched/sysctl.h > > +++ b/include/linux/sched/sysctl.h > > @@ -1,6 +1,7 @@ > > #ifndef _LINUX_SCHED_SYSCTL_H > > #define _LINUX_SCHED_SYSCTL_H > > > > +#include > > #include > > > > struct ctl_table; > > That extra include also seems entirely pointless. Sorry, I wrongly associated the header with const_debug/__read_mostly since it is included right before the definition of const_debug. I should have double-checked.