2010-12-02 02:02:52

by Shaohua Li

[permalink] [raw]
Subject: [patch 3/3]use new macros for x86 percpu readmostly section

Use the new macros to correctly align percpu readmostly data.

Signed-off-by: Shaohua Li <[email protected]>
---
arch/x86/kernel/vmlinux.lds.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux/arch/x86/kernel/vmlinux.lds.S
===================================================================
--- linux.orig/arch/x86/kernel/vmlinux.lds.S 2010-12-02 09:48:44.000000000 +0800
+++ linux/arch/x86/kernel/vmlinux.lds.S 2010-12-02 09:54:24.000000000 +0800
@@ -226,7 +226,7 @@ SECTIONS
* output PHDR, so the next output section - .init.text - should
* start another segment - init.
*/
- PERCPU_VADDR(0, :percpu)
+ PERCPU_VADDR_CACHEALIGNED(0, :percpu, INTERNODE_CACHE_BYTES)
#endif

INIT_TEXT_SECTION(PAGE_SIZE)
@@ -301,7 +301,7 @@ SECTIONS
}

#if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP)
- PERCPU(THREAD_SIZE)
+ PERCPU_CACHEALIGNED(THREAD_SIZE, INTERNODE_CACHE_BYTES)
#endif

. = ALIGN(PAGE_SIZE);


2010-12-09 22:32:37

by Andrew Morton

[permalink] [raw]
Subject: Re: [patch 3/3]use new macros for x86 percpu readmostly section

On Thu, 02 Dec 2010 10:02:30 +0800
Shaohua Li <[email protected]> wrote:

> Use the new macros to correctly align percpu readmostly data.
>
> Signed-off-by: Shaohua Li <[email protected]>
> ---
> arch/x86/kernel/vmlinux.lds.S | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Index: linux/arch/x86/kernel/vmlinux.lds.S
> ===================================================================
> --- linux.orig/arch/x86/kernel/vmlinux.lds.S 2010-12-02 09:48:44.000000000 +0800
> +++ linux/arch/x86/kernel/vmlinux.lds.S 2010-12-02 09:54:24.000000000 +0800
> @@ -226,7 +226,7 @@ SECTIONS
> * output PHDR, so the next output section - .init.text - should
> * start another segment - init.
> */
> - PERCPU_VADDR(0, :percpu)
> + PERCPU_VADDR_CACHEALIGNED(0, :percpu, INTERNODE_CACHE_BYTES)
> #endif
>
> INIT_TEXT_SECTION(PAGE_SIZE)
> @@ -301,7 +301,7 @@ SECTIONS
> }
>
> #if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP)
> - PERCPU(THREAD_SIZE)
> + PERCPU_CACHEALIGNED(THREAD_SIZE, INTERNODE_CACHE_BYTES)
> #endif
>
> . = ALIGN(PAGE_SIZE);
>

So what is the situation now with all other architectures? Should they
be changed to correctly align their read-mostly percpu areas?

If so, what should the arch maintainers do to achieve this?

2010-12-10 00:21:55

by Shaohua Li

[permalink] [raw]
Subject: Re: [patch 3/3]use new macros for x86 percpu readmostly section

On Fri, 2010-12-10 at 06:32 +0800, Andrew Morton wrote:
> On Thu, 02 Dec 2010 10:02:30 +0800
> Shaohua Li <[email protected]> wrote:
>
> > Use the new macros to correctly align percpu readmostly data.
> >
> > Signed-off-by: Shaohua Li <[email protected]>
> > ---
> > arch/x86/kernel/vmlinux.lds.S | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > Index: linux/arch/x86/kernel/vmlinux.lds.S
> > ===================================================================
> > --- linux.orig/arch/x86/kernel/vmlinux.lds.S 2010-12-02 09:48:44.000000000 +0800
> > +++ linux/arch/x86/kernel/vmlinux.lds.S 2010-12-02 09:54:24.000000000 +0800
> > @@ -226,7 +226,7 @@ SECTIONS
> > * output PHDR, so the next output section - .init.text - should
> > * start another segment - init.
> > */
> > - PERCPU_VADDR(0, :percpu)
> > + PERCPU_VADDR_CACHEALIGNED(0, :percpu, INTERNODE_CACHE_BYTES)
> > #endif
> >
> > INIT_TEXT_SECTION(PAGE_SIZE)
> > @@ -301,7 +301,7 @@ SECTIONS
> > }
> >
> > #if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP)
> > - PERCPU(THREAD_SIZE)
> > + PERCPU_CACHEALIGNED(THREAD_SIZE, INTERNODE_CACHE_BYTES)
> > #endif
> >
> > . = ALIGN(PAGE_SIZE);
> >
>
> So what is the situation now with all other architectures? Should they
> be changed to correctly align their read-mostly percpu areas?
>
> If so, what should the arch maintainers do to achieve this?
Yes, other arch should use new macro too with correct cache alignment
(similar like the alignment for read-mostly section). But currently only
x86 has read-mostly percpu data.

Thanks,
Shaohua