| Submitter | Tim Abbott |
|---|---|
| Date | April 30, 2009, 11:56 p.m. |
| Message ID | <1241135777-9462-6-git-send-email-tabbott@mit.edu> |
| Download | mbox | patch |
| Permalink | /patch/26738/ |
| State | Changes Requested |
| Delegated to: | Benjamin Herrenschmidt |
| Headers | show |
Comments
On Thu, 2009-04-30 at 19:56 -0400, Tim Abbott wrote: > .data.cacheline_aligned should not need a separate output section; > this change moves it into the .data section. > > Since there isn't an ALIGN() directive before the > .data.cacheline_aligned scetion in the current linker script, I'd like > an ack from one of the powerpc maintainers that L1_CACHE_BYTES is the > correct alignment here. Yes, that's the right size. Also. that looks like a bug to me in the current stuff. I'm queuing your patch set for .31 but I'll stick a "fix" in .30 for that just in case which unfortunately means your patches will probably need to be rebased. Cheers, Ben. > Signed-off-by: Tim Abbott <tabbott@mit.edu> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > Cc: Paul Mackerras <paulus@samba.org> > Cc: linuxppc-dev@ozlabs.org > --- > arch/powerpc/kernel/vmlinux.lds.S | 5 +---- > 1 files changed, 1 insertions(+), 4 deletions(-) > > diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S > index 4223892..e769717 100644 > --- a/arch/powerpc/kernel/vmlinux.lds.S > +++ b/arch/powerpc/kernel/vmlinux.lds.S > @@ -223,6 +223,7 @@ SECTIONS > .data : AT(ADDR(.data) - LOAD_OFFSET) { > PAGE_ALIGNED_DATA > NOSAVE_DATA > + CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) > DATA_DATA > #ifdef CONFIG_PPC32 > *(.sdata) > @@ -260,10 +261,6 @@ SECTIONS > *(.data.init_task) > } > > - .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { > - *(.data.cacheline_aligned) > - } > - > . = ALIGN(L1_CACHE_BYTES); > .data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) { > *(.data.read_mostly)
Patch
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index 4223892..e769717 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S @@ -223,6 +223,7 @@ SECTIONS .data : AT(ADDR(.data) - LOAD_OFFSET) { PAGE_ALIGNED_DATA NOSAVE_DATA + CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) DATA_DATA #ifdef CONFIG_PPC32 *(.sdata) @@ -260,10 +261,6 @@ SECTIONS *(.data.init_task) } - .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { - *(.data.cacheline_aligned) - } - . = ALIGN(L1_CACHE_BYTES); .data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) { *(.data.read_mostly)
.data.cacheline_aligned should not need a separate output section; this change moves it into the .data section. Since there isn't an ALIGN() directive before the .data.cacheline_aligned scetion in the current linker script, I'd like an ack from one of the powerpc maintainers that L1_CACHE_BYTES is the correct alignment here. Signed-off-by: Tim Abbott <tabbott@mit.edu> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: linuxppc-dev@ozlabs.org --- arch/powerpc/kernel/vmlinux.lds.S | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-)