<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/asm-generic/percpu.h, branch v2.6.27.59</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include/asm-generic/percpu.h?h=v2.6.27.59</id>
<link rel='self' href='https://git.amat.us/linux/atom/include/asm-generic/percpu.h?h=v2.6.27.59'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2008-02-23T20:09:28Z</updated>
<entry>
<title>percpu: fix DEBUG_PREEMPT per_cpu checking</title>
<updated>2008-02-23T20:09:28Z</updated>
<author>
<name>Hugh Dickins</name>
<email>hugh@veritas.com</email>
</author>
<published>2008-02-23T19:40:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1e8352784abaedb424e63fa700e93e6c1307785f'/>
<id>urn:sha1:1e8352784abaedb424e63fa700e93e6c1307785f</id>
<content type='text'>
2.6.25-rc1 percpu changes broke CONFIG_DEBUG_PREEMPT's per_cpu checking
on several architectures.  On s390, sparc64 and x86 it's been weakened to
not checking at all; whereas on powerpc64 it's become too strict, issuing
warnings from __raw_get_cpu_var in io_schedule and init_timer for example.

Fix this by weakening powerpc's __my_cpu_offset to use the non-checking
local_paca instead of get_paca (which itself contains such a check);
and strengthening the generic my_cpu_offset to go the old slow way via
smp_processor_id when CONFIG_DEBUG_PREEMPT (debug_smp_processor_id is
where all the knowledge of what's correct when lives).

Signed-off-by: Hugh Dickins &lt;hugh@veritas.com&gt;
Reviewed-by: Mike Travis &lt;travis@sgi.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>x86/non-x86: percpu, node ids, apic ids x86.git fixup</title>
<updated>2008-01-30T12:33:32Z</updated>
<author>
<name>Mike Travis</name>
<email>travis@sgi.com</email>
</author>
<published>2008-01-30T12:33:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dd5af90a7f3d79e04b7eace9a98644dbf2038f4d'/>
<id>urn:sha1:dd5af90a7f3d79e04b7eace9a98644dbf2038f4d</id>
<content type='text'>
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>percpu: make the asm-generic/percpu.h more "generic"</title>
<updated>2008-01-30T12:32:52Z</updated>
<author>
<name>travis@sgi.com</name>
<email>travis@sgi.com</email>
</author>
<published>2008-01-30T12:32:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=acdac87202a408133ee8f7985076de9d2e0dc5ab'/>
<id>urn:sha1:acdac87202a408133ee8f7985076de9d2e0dc5ab</id>
<content type='text'>
- add support for PER_CPU_ATTRIBUTES

- fix generic smp percpu_modcopy to use per_cpu_offset() macro.

Add the ability to use generic/percpu even if the arch needs to override
several aspects of its operations. This will enable the use of generic
percpu.h for all arches.

An arch may define:

__per_cpu_offset	Do not use the generic pointer array. Arch must
			define per_cpu_offset(cpu) (used by x86_64, s390).

__my_cpu_offset		Can be defined to provide an optimized way to determine
			the offset for variables of the currently executing
			processor. Used by ia64, x86_64, x86_32, sparc64, s/390.

SHIFT_PTR(ptr, offset)	If an arch defines it then special handling
			of pointer arithmentic may be implemented. Used
			by s/390.

(Some of these special percpu arch implementations may be later consolidated
so that there are less cases to deal with.)

Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Andi Kleen &lt;ak@suse.de&gt;
Signed-off-by: Christoph Lameter &lt;clameter@sgi.com&gt;
Signed-off-by: Mike Travis &lt;travis@sgi.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>percpu: move arch XX_PER_CPU_XX definitions into linux/percpu.h</title>
<updated>2008-01-30T12:32:52Z</updated>
<author>
<name>travis@sgi.com</name>
<email>travis@sgi.com</email>
</author>
<published>2008-01-30T12:32:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5280e004fc22314122c84978c0b6a741cf96dc0f'/>
<id>urn:sha1:5280e004fc22314122c84978c0b6a741cf96dc0f</id>
<content type='text'>
- Special consideration for IA64: Add the ability to specify
  arch specific per cpu flags

- remove .data.percpu attribute from DEFINE_PER_CPU for non-smp case.

The arch definitions are all the same. So move them into linux/percpu.h.

We cannot move DECLARE_PER_CPU since some include files just include
asm/percpu.h to avoid include recursion problems.

Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Andi Kleen &lt;ak@suse.de&gt;
Signed-off-by: Christoph Lameter &lt;clameter@sgi.com&gt;
Signed-off-by: Mike Travis &lt;travis@sgi.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>percpu: use a kconfig variable to signal arch specific percpu setup</title>
<updated>2008-01-30T12:32:51Z</updated>
<author>
<name>travis@sgi.com</name>
<email>travis@sgi.com</email>
</author>
<published>2008-01-30T12:32:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b32ef636a59aad12f9f9b5dc34c93222842c58ba'/>
<id>urn:sha1:b32ef636a59aad12f9f9b5dc34c93222842c58ba</id>
<content type='text'>
The use of the __GENERIC_PERCPU is a bit problematic since arches
may want to run their own percpu setup while using the generic
percpu definitions. Replace it through a kconfig variable.

Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Andi Kleen &lt;ak@suse.de&gt;
Signed-off-by: Christoph Lameter &lt;clameter@sgi.com&gt;
Signed-off-by: Mike Travis &lt;travis@sgi.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>define new percpu interface for shared data</title>
<updated>2007-07-19T17:04:44Z</updated>
<author>
<name>Fenghua Yu</name>
<email>fenghua.yu@intel.com</email>
</author>
<published>2007-07-19T08:48:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5fb7dc37dc16fbc8b80d81318a582201ef7e280d'/>
<id>urn:sha1:5fb7dc37dc16fbc8b80d81318a582201ef7e280d</id>
<content type='text'>
per cpu data section contains two types of data.  One set which is
exclusively accessed by the local cpu and the other set which is per cpu,
but also shared by remote cpus.  In the current kernel, these two sets are
not clearely separated out.  This can potentially cause the same data
cacheline shared between the two sets of data, which will result in
unnecessary bouncing of the cacheline between cpus.

One way to fix the problem is to cacheline align the remotely accessed per
cpu data, both at the beginning and at the end.  Because of the padding at
both ends, this will likely cause some memory wastage and also the
interface to achieve this is not clean.

This patch:

Moves the remotely accessed per cpu data (which is currently marked
as ____cacheline_aligned_in_smp) into a different section, where all the data
elements are cacheline aligned. And as such, this differentiates the local
only data and remotely accessed data cleanly.

Signed-off-by: Fenghua Yu &lt;fenghua.yu@intel.com&gt;
Acked-by: Suresh Siddha &lt;suresh.b.siddha@intel.com&gt;
Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Christoph Lameter &lt;clameter@sgi.com&gt;
Cc: &lt;linux-arch@vger.kernel.org&gt;
Cc: "Luck, Tony" &lt;tony.luck@intel.com&gt;
Cc: Andi Kleen &lt;ak@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] i386: Use per-cpu variables for GDT, PDA</title>
<updated>2007-05-02T17:27:10Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2007-05-02T17:27:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ae1ee11be77f51cedb6c569887dddc70c163ab6d'/>
<id>urn:sha1:ae1ee11be77f51cedb6c569887dddc70c163ab6d</id>
<content type='text'>
Allocating PDA and GDT at boot is a pain.  Using simple per-cpu variables adds
happiness (although we need the GDT page-aligned for Xen, which we do in a
followup patch).

[akpm@linux-foundation.org: build fix]
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Andi Kleen &lt;ak@suse.de&gt;
Cc: Andi Kleen &lt;ak@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] Fix typo in "syntax error if percpu macros are incorrectly used" patch</title>
<updated>2006-10-06T15:53:41Z</updated>
<author>
<name>Jan Blunck</name>
<email>jblunck@suse.de</email>
</author>
<published>2006-10-06T07:43:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a666ecfbf512dbd63a60f65d2ad6733a9a1b12ee'/>
<id>urn:sha1:a666ecfbf512dbd63a60f65d2ad6733a9a1b12ee</id>
<content type='text'>
Trivial typo fix in the "syntax error if percpu macros are incorrectly
used" patch.  I misspelled "identifier" in all places.  D'Oh!

Thanks to Dirk Mueller to point this out.

Signed-off-by: Jan Blunck &lt;jblunck@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] trigger a syntax error if percpu macros are incorrectly used</title>
<updated>2006-09-26T15:48:44Z</updated>
<author>
<name>Jan Blunck</name>
<email>jblunck@suse.de</email>
</author>
<published>2006-09-26T06:30:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=632bbfeee4f042c05bc65150b4433a297d3fe387'/>
<id>urn:sha1:632bbfeee4f042c05bc65150b4433a297d3fe387</id>
<content type='text'>
get_cpu_var()/per_cpu()/__get_cpu_var() arguments must be simple
identifiers.  Otherwise the arch dependent implementations might break.

This patch enforces the correct usage of the macros by producing a syntax
error if the variable is not a simple identifier.

Signed-off-by: Jan Blunck &lt;jblunck@suse.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] lockdep: add per_cpu_offset()</title>
<updated>2006-07-03T22:27:00Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2006-07-03T07:24:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a875a69f8b00a38b4f40d9632a4fc71a159f0e0d'/>
<id>urn:sha1:a875a69f8b00a38b4f40d9632a4fc71a159f0e0d</id>
<content type='text'>
Add the per_cpu_offset() generic method. (used by the lock validator)

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
</feed>
