From: Fenghua Yu <fenghua.yu@intel.com>
To: akpm@linux-foundation.org, rusty@rustcorp.com.au,
suresh.b.siddha@intel.com, clameter@sgi.com,
michal.k.k.piotrowski@gmail.com, linux-kernel@vger.kernel.org
Subject: [PATCH 2/2]: use the new percpu interface for shared data - version 4
Date: Wed, 13 Jun 2007 11:57:48 -0700 [thread overview]
Message-ID: <20070613185748.GA13929@linux-os.sc.intel.com> (raw)
In-Reply-To: <200706061713.l56HDp5K002063@imap1.linux-foundation.org>
Currently most of the per cpu data, which is accessed by different cpus, has a
____cacheline_aligned_in_smp attribute. Move all this data to the new per cpu
shared data section: .data.percpu.shared_aligned.
This will seperate the percpu data which is referenced frequently by other
cpus from the local only percpu data.
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/i386/kernel/init_task.c | 2 +-
arch/i386/kernel/irq.c | 2 +-
arch/ia64/kernel/smp.c | 2 +-
arch/x86_64/kernel/init_task.c | 2 +-
kernel/sched.c | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff -Nurp linux-2.6.21.0/arch/i386/kernel/init_task.c linux-2.6.21.1/arch/i386/kernel/init_task.c
--- linux-2.6.21.0/arch/i386/kernel/init_task.c 2007-04-25 20:08:32.000000000 -0700
+++ linux-2.6.21.1/arch/i386/kernel/init_task.c 2007-06-11 10:42:16.000000000 -0700
@@ -42,5 +42,5 @@ EXPORT_SYMBOL(init_task);
* per-CPU TSS segments. Threads are completely 'soft' on Linux,
* no more per-task TSS's.
*/
-DEFINE_PER_CPU(struct tss_struct, init_tss) ____cacheline_internodealigned_in_smp = INIT_TSS;
+DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS;
diff -Nurp linux-2.6.21.0/arch/i386/kernel/irq.c linux-2.6.21.1/arch/i386/kernel/irq.c
--- linux-2.6.21.0/arch/i386/kernel/irq.c 2007-06-11 10:49:40.000000000 -0700
+++ linux-2.6.21.1/arch/i386/kernel/irq.c 2007-06-11 10:42:16.000000000 -0700
@@ -21,7 +21,7 @@
#include <asm/apic.h>
#include <asm/uaccess.h>
-DEFINE_PER_CPU(irq_cpustat_t, irq_stat) ____cacheline_internodealigned_in_smp;
+DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
EXPORT_PER_CPU_SYMBOL(irq_stat);
DEFINE_PER_CPU(struct pt_regs *, irq_regs);
diff -Nurp linux-2.6.21.0/arch/ia64/kernel/smp.c linux-2.6.21.1/arch/ia64/kernel/smp.c
--- linux-2.6.21.0/arch/ia64/kernel/smp.c 2007-06-11 10:49:40.000000000 -0700
+++ linux-2.6.21.1/arch/ia64/kernel/smp.c 2007-06-11 10:42:16.000000000 -0700
@@ -82,7 +82,7 @@ static volatile struct call_data_struct
#define IPI_KDUMP_CPU_STOP 3
/* This needs to be cacheline aligned because it is written to by *other* CPUs. */
-static DEFINE_PER_CPU(u64, ipi_operation) ____cacheline_aligned;
+static DEFINE_PER_CPU_SHARED_ALIGNED(u64, ipi_operation);
extern void cpu_halt (void);
diff -Nurp linux-2.6.21.0/arch/x86_64/kernel/init_task.c linux-2.6.21.1/arch/x86_64/kernel/init_task.c
--- linux-2.6.21.0/arch/x86_64/kernel/init_task.c 2007-04-25 20:08:32.000000000 -0700
+++ linux-2.6.21.1/arch/x86_64/kernel/init_task.c 2007-06-11 10:42:16.000000000 -0700
@@ -44,7 +44,7 @@ EXPORT_SYMBOL(init_task);
* section. Since TSS's are completely CPU-local, we want them
* on exact cacheline boundaries, to eliminate cacheline ping-pong.
*/
-DEFINE_PER_CPU(struct tss_struct, init_tss) ____cacheline_internodealigned_in_smp = INIT_TSS;
+DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS;
/* Copies of the original ist values from the tss are only accessed during
* debugging, no special alignment required.
diff -Nurp linux-2.6.21.0/kernel/sched.c linux-2.6.21.1/kernel/sched.c
--- linux-2.6.21.0/kernel/sched.c 2007-06-11 10:49:56.000000000 -0700
+++ linux-2.6.21.1/kernel/sched.c 2007-06-11 10:42:16.000000000 -0700
@@ -304,7 +304,7 @@ struct rq {
struct lock_class_key rq_lock_key;
};
-static DEFINE_PER_CPU(struct rq, runqueues) ____cacheline_aligned_in_smp;
+static DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
static DEFINE_MUTEX(sched_hotcpu_mutex);
static inline int cpu_of(struct rq *rq)
prev parent reply other threads:[~2007-06-13 19:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-06 17:13 - use-the-new-percpu-interface-for-shared-data.patch removed from -mm tree akpm
2007-06-13 18:57 ` Fenghua Yu [this message]
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=20070613185748.GA13929@linux-os.sc.intel.com \
--to=fenghua.yu@intel.com \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.k.k.piotrowski@gmail.com \
--cc=rusty@rustcorp.com.au \
--cc=suresh.b.siddha@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.