diff mbox

[1/2] init.h: Remove __dev* sections from the kernel

Message ID 20121129184328.GB15110@kroah.com (mailing list archive)
State New, archived
Headers show

Commit Message

Greg Kroah-Hartman Nov. 29, 2012, 6:43 p.m. UTC
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

With the recent work to remove CONFIG_HOTPLUG, we are starting to get a
bunch of __devinit section warnings, despite CONFIG_HOTPLUG always being
enabled.  So, stop marking the sections entirely, by defining them away
the section markings in init.h

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/init.h |   18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Sam Ravnborg Nov. 30, 2012, 6:11 p.m. UTC | #1
On Thu, Nov 29, 2012 at 10:43:28AM -0800, Greg Kroah-Hartman wrote:
> From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> 
> With the recent work to remove CONFIG_HOTPLUG, we are starting to get a
> bunch of __devinit section warnings, despite CONFIG_HOTPLUG always being
> enabled.  So, stop marking the sections entirely, by defining them away
> the section markings in init.h
> 
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
> 
> ---
>  include/linux/init.h |   18 +++++++-----------
>  1 file changed, 7 insertions(+), 11 deletions(-)
> 
> diff --git a/include/linux/init.h b/include/linux/init.h
> index e59041e..f63692d 100644
> --- a/include/linux/init.h
> +++ b/include/linux/init.h
> @@ -93,13 +93,13 @@
>  
>  #define __exit          __section(.exit.text) __exitused __cold notrace
>  
> -/* Used for HOTPLUG */
> -#define __devinit        __section(.devinit.text) __cold notrace
> -#define __devinitdata    __section(.devinit.data)
> -#define __devinitconst   __constsection(.devinit.rodata)
> -#define __devexit        __section(.devexit.text) __exitused __cold notrace
> -#define __devexitdata    __section(.devexit.data)
> -#define __devexitconst   __constsection(.devexit.rodata)
> +/* Used for HOTPLUG, but that is always enabled now, so just make them noops */

This comment should be explicit that these are provided only for backward compatibility
and their usage is discouarged.

	Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Greg Kroah-Hartman Nov. 30, 2012, 6:28 p.m. UTC | #2
On Fri, Nov 30, 2012 at 07:11:56PM +0100, Sam Ravnborg wrote:
> On Thu, Nov 29, 2012 at 10:43:28AM -0800, Greg Kroah-Hartman wrote:
> > From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > 
> > With the recent work to remove CONFIG_HOTPLUG, we are starting to get a
> > bunch of __devinit section warnings, despite CONFIG_HOTPLUG always being
> > enabled.  So, stop marking the sections entirely, by defining them away
> > the section markings in init.h
> > 
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Acked-by: Sam Ravnborg <sam@ravnborg.org>

Thanks for the review of this and the other patch.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
H. Peter Anvin Nov. 30, 2012, 8:39 p.m. UTC | #3
On 11/29/2012 10:43 AM, Greg Kroah-Hartman wrote:
> From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> With the recent work to remove CONFIG_HOTPLUG, we are starting to get a
> bunch of __devinit section warnings, despite CONFIG_HOTPLUG always being
> enabled.  So, stop marking the sections entirely, by defining them away
> the section markings in init.h
>

Could we run a sed script over the kernel tree and generate patches to 
remove the markings completely?

	-hpa
H. Peter Anvin Nov. 30, 2012, 8:39 p.m. UTC | #4
On 11/29/2012 10:43 AM, Greg Kroah-Hartman wrote:
>
> -/* Used for HOTPLUG */
> -#define __devinit        __section(.devinit.text) __cold notrace
> -#define __devinitdata    __section(.devinit.data)
> -#define __devinitconst   __constsection(.devinit.rodata)
> -#define __devexit        __section(.devexit.text) __exitused __cold notrace
> -#define __devexitdata    __section(.devexit.data)
> -#define __devexitconst   __constsection(.devexit.rodata)
> +/* Used for HOTPLUG, but that is always enabled now, so just make them noops */
> +#define __devinit
> +#define __devinitdata
> +#define __devinitconst
> +#define __devexit
> +#define __devexitdata
> +#define __devexitconst
>

Second question... what about the __exitused __cold notrace annotations?

	-hpa
Bill Pemberton Nov. 30, 2012, 8:43 p.m. UTC | #5
H. Peter Anvin writes:
> 
> On 11/29/2012 10:43 AM, Greg Kroah-Hartman wrote:
> > From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> >
> > With the recent work to remove CONFIG_HOTPLUG, we are starting to get a
> > bunch of __devinit section warnings, despite CONFIG_HOTPLUG always being
> > enabled.  So, stop marking the sections entirely, by defining them away
> > the section markings in init.h
> >
> 
> Could we run a sed script over the kernel tree and generate patches to 
> remove the markings completely?
> 

That's how I've been generating the patches to remove the markings --
except it's a perl script.
Greg Kroah-Hartman Nov. 30, 2012, 8:45 p.m. UTC | #6
On Fri, Nov 30, 2012 at 12:39:01PM -0800, H. Peter Anvin wrote:
> On 11/29/2012 10:43 AM, Greg Kroah-Hartman wrote:
> >From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> >
> >With the recent work to remove CONFIG_HOTPLUG, we are starting to get a
> >bunch of __devinit section warnings, despite CONFIG_HOTPLUG always being
> >enabled.  So, stop marking the sections entirely, by defining them away
> >the section markings in init.h
> >
> 
> Could we run a sed script over the kernel tree and generate patches
> to remove the markings completely?

Yes, we can, and Bill's been generating patches that way.  A number of
them are already in linux-next and I'll sweep the tree after 3.8-rc1 is
out and catch the rest.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Greg Kroah-Hartman Nov. 30, 2012, 8:47 p.m. UTC | #7
On Fri, Nov 30, 2012 at 12:39:43PM -0800, H. Peter Anvin wrote:
> On 11/29/2012 10:43 AM, Greg Kroah-Hartman wrote:
> >
> >-/* Used for HOTPLUG */
> >-#define __devinit        __section(.devinit.text) __cold notrace
> >-#define __devinitdata    __section(.devinit.data)
> >-#define __devinitconst   __constsection(.devinit.rodata)
> >-#define __devexit        __section(.devexit.text) __exitused __cold notrace
> >-#define __devexitdata    __section(.devexit.data)
> >-#define __devexitconst   __constsection(.devexit.rodata)
> >+/* Used for HOTPLUG, but that is always enabled now, so just make them noops */
> >+#define __devinit
> >+#define __devinitdata
> >+#define __devinitconst
> >+#define __devexit
> >+#define __devexitdata
> >+#define __devexitconst
> >
> 
> Second question... what about the __exitused __cold notrace annotations?

__exitused shouldn't matter, we shouldn't be optimizing these away at
all anymore.  I don't know about __cold and notrace, but given that
these could be traced, I don't see why that marking got there in the
first place.

In reading compiler-gcc4.h, and knowing just how infrequent these
functions are ever called, I would be amazed if the __cold marking ever
even helped anything out here.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/init.h b/include/linux/init.h
index e59041e..f63692d 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -93,13 +93,13 @@ 
 
 #define __exit          __section(.exit.text) __exitused __cold notrace
 
-/* Used for HOTPLUG */
-#define __devinit        __section(.devinit.text) __cold notrace
-#define __devinitdata    __section(.devinit.data)
-#define __devinitconst   __constsection(.devinit.rodata)
-#define __devexit        __section(.devexit.text) __exitused __cold notrace
-#define __devexitdata    __section(.devexit.data)
-#define __devexitconst   __constsection(.devexit.rodata)
+/* Used for HOTPLUG, but that is always enabled now, so just make them noops */
+#define __devinit
+#define __devinitdata
+#define __devinitconst
+#define __devexit
+#define __devexitdata
+#define __devexitconst
 
 /* Used for HOTPLUG_CPU */
 #define __cpuinit        __section(.cpuinit.text) __cold notrace
@@ -126,10 +126,6 @@ 
 #define __INITRODATA	.section	".init.rodata","a",%progbits
 #define __FINITDATA	.previous
 
-#define __DEVINIT        .section	".devinit.text", "ax"
-#define __DEVINITDATA    .section	".devinit.data", "aw"
-#define __DEVINITRODATA  .section	".devinit.rodata", "a"
-
 #define __CPUINIT        .section	".cpuinit.text", "ax"
 #define __CPUINITDATA    .section	".cpuinit.data", "aw"
 #define __CPUINITRODATA  .section	".cpuinit.rodata", "a"