public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: Jan Beulich <jbeulich@novell.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] initconst adjustments
Date: Thu, 12 Mar 2009 23:17:47 +0100	[thread overview]
Message-ID: <20090312221747.GA14921@uranus.ravnborg.org> (raw)
In-Reply-To: <49B8F8E9.76E4.0078.0@novell.com>

On Thu, Mar 12, 2009 at 10:58:33AM +0000, Jan Beulich wrote:
> - add .init.rodata to INIT_DATA, and group all initconst flavors
>   together
> - move strings generated from __setup_param() into .init.rodata
> - add .*init.rodata to modpost's sets of init sections
> - make modpost warn about references between meminit and cpuinit
>   as well as memexit and cpuexit sections (as CPU and memory
>   hotplug are independently selectable features)
> 
> Signed-off-by: Jan Beulich <jbeulich@novell.com>
> 
> ---
>  include/asm-generic/vmlinux.lds.h |    5 ++-
>  include/linux/init.h              |    3 +-
>  scripts/mod/modpost.c             |   50 +++++++++++++++++++++++++++++---------
>  3 files changed, 44 insertions(+), 14 deletions(-)
> 
> +++ 2.6.29-rc7-initconst/scripts/mod/modpost.c	2009-02-13 12:17:25.000000000 +0100
> @@ -753,6 +753,8 @@ static int check_section(const char *mod
>  
>  
>  #define ALL_INIT_DATA_SECTIONS \
> +	".init.setup$", ".init.rodata$", \
> +	".devinit.rodata$", ".cpuinit.rodata$", ".meminit.rodata$" \
>  	".init.data$", ".devinit.data$", ".cpuinit.data$", ".meminit.data$"
>  #define ALL_EXIT_DATA_SECTIONS \
>  	".exit.data$", ".devexit.data$", ".cpuexit.data$", ".memexit.data$"
> @@ -762,21 +764,23 @@ static int check_section(const char *mod
>  #define ALL_EXIT_TEXT_SECTIONS \
>  	".exit.text$", ".devexit.text$", ".cpuexit.text$", ".memexit.text$"
>  
> -#define ALL_INIT_SECTIONS ALL_INIT_DATA_SECTIONS, ALL_INIT_TEXT_SECTIONS
> -#define ALL_EXIT_SECTIONS ALL_EXIT_DATA_SECTIONS, ALL_EXIT_TEXT_SECTIONS
> +#define ALL_INIT_SECTIONS INIT_SECTIONS, DEV_INIT_SECTIONS, \
> +	CPU_INIT_SECTIONS, MEM_INIT_SECTIONS
> +#define ALL_EXIT_SECTIONS EXIT_SECTIONS, DEV_EXIT_SECTIONS, \
> +	CPU_EXIT_SECTIONS, MEM_EXIT_SECTIONS
>  
>  #define DATA_SECTIONS ".data$", ".data.rel$"
>  #define TEXT_SECTIONS ".text$"
>  
> -#define INIT_SECTIONS      ".init.data$", ".init.text$"
> -#define DEV_INIT_SECTIONS  ".devinit.data$", ".devinit.text$"
> -#define CPU_INIT_SECTIONS  ".cpuinit.data$", ".cpuinit.text$"
> -#define MEM_INIT_SECTIONS  ".meminit.data$", ".meminit.text$"
> -
> -#define EXIT_SECTIONS      ".exit.data$", ".exit.text$"
> -#define DEV_EXIT_SECTIONS  ".devexit.data$", ".devexit.text$"
> -#define CPU_EXIT_SECTIONS  ".cpuexit.data$", ".cpuexit.text$"
> -#define MEM_EXIT_SECTIONS  ".memexit.data$", ".memexit.text$"
> +#define INIT_SECTIONS      ".init.*"
> +#define DEV_INIT_SECTIONS  ".devinit.*"
> +#define CPU_INIT_SECTIONS  ".cpuinit.*"
> +#define MEM_INIT_SECTIONS  ".meminit.*"
> +
> +#define EXIT_SECTIONS      ".exit.*"
> +#define DEV_EXIT_SECTIONS  ".devexit.*"
> +#define CPU_EXIT_SECTIONS  ".cpuexit.*"
> +#define MEM_EXIT_SECTIONS  ".memexit.*"

The abvoe simplification now makes us math all sections that starts with
for example .init. - and we have seen sections named .init.1 for example.
So I'm afraid that we will simply match too many sections here on the various
architectures.

A quick grep showed for example:
arch/blackfin/kernel/vmlinux.lds.S:     .init.setup :
arch/blackfin/kernel/vmlinux.lds.S:             *(.init.setup)
arch/blackfin/kernel/vmlinux.lds.S:     .init.ramfs :
arch/blackfin/kernel/vmlinux.lds.S:             *(.init.ramfs)

We should be on the safe side and avoid this optimization.

	Sam

  reply	other threads:[~2009-03-12 22:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-12 10:58 [PATCH] initconst adjustments Jan Beulich
2009-03-12 22:17 ` Sam Ravnborg [this message]
2009-03-13  8:03   ` Jan Beulich
2009-05-01 12:09 ` Sam Ravnborg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090312221747.GA14921@uranus.ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=jbeulich@novell.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox