| From: |
| Shaohua Li <shaohua.li@intel.com> |
| To: |
| lkml <linux-kernel@vger.kernel.org> |
| Subject: |
| [PATCH 1/2]percpu: introduce read mostly percpu API |
| Date: |
| Wed, 20 Oct 2010 11:07:02 +0800 |
| Message-ID: |
| <1287544022.4571.7.camel@sli10-conroe.sh.intel.com> |
| Cc: |
| Ingo Molnar <mingo@elte.hu>, "hpa@zytor.com" <hpa@zytor.com>,
Andi Kleen <andi@firstfloor.org>,
"Chen, Tim C" <tim.c.chen@intel.com> |
| Archive‑link: | |
Article |
Add a new readmostly percpu section and api, next patch will use it.
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
---
include/asm-generic/vmlinux.lds.h | 4 ++++
include/linux/percpu-defs.h | 9 +++++++++
2 files changed, 13 insertions(+)
Index: linux/include/asm-generic/vmlinux.lds.h
===================================================================
--- linux.orig/include/asm-generic/vmlinux.lds.h 2010-10-20 09:32:52.000000000 +0800
+++ linux/include/asm-generic/vmlinux.lds.h 2010-10-20 10:03:38.000000000 +0800
@@ -677,6 +677,8 @@
- LOAD_OFFSET) { \
VMLINUX_SYMBOL(__per_cpu_start) = .; \
*(.data..percpu..first) \
+ . = ALIGN(PAGE_SIZE); \
+ *(.data..percpu..readmostly) \
*(.data..percpu..page_aligned) \
*(.data..percpu) \
*(.data..percpu..shared_aligned) \
@@ -703,6 +705,8 @@
VMLINUX_SYMBOL(__per_cpu_load) = .; \
VMLINUX_SYMBOL(__per_cpu_start) = .; \
*(.data..percpu..first) \
+ . = ALIGN(PAGE_SIZE); \
+ *(.data..percpu..readmostly) \
*(.data..percpu..page_aligned) \
*(.data..percpu) \
*(.data..percpu..shared_aligned) \
Index: linux/include/linux/percpu-defs.h
===================================================================
--- linux.orig/include/linux/percpu-defs.h 2010-10-20 09:14:27.000000000 +0800
+++ linux/include/linux/percpu-defs.h 2010-10-20 09:17:08.000000000 +0800
@@ -139,6 +139,15 @@
__aligned(PAGE_SIZE)
/*
+ * Declaration/definition used for per-CPU variables that must be read mostly.
+ */
+#define DECLARE_PER_CPU_READ_MOSTLY(type, name) \
+ DECLARE_PER_CPU_SECTION(type, name, "..readmostly")
+
+#define DEFINE_PER_CPU_READ_MOSTLY(type, name) \
+ DEFINE_PER_CPU_SECTION(type, name, "..readmostly")
+
+/*
* Intermodule exports for per-CPU variables. sparse forgets about
* address space across EXPORT_SYMBOL(), change EXPORT_SYMBOL() to
* noop if __CHECKER__.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/