WSL2-Linux-Kernel/arch
Peter Zijlstra c2daa3bed5 sched, x86: Provide a per-cpu preempt_count implementation
Convert x86 to use a per-cpu preemption count. The reason for doing so
is that accessing per-cpu variables is a lot cheaper than accessing
thread_info variables.

We still need to save/restore the actual preemption count due to
PREEMPT_ACTIVE so we place the per-cpu __preempt_count variable in the
same cache-line as the other hot __switch_to() variables such as
current_task.

NOTE: this save/restore is required even for !PREEMPT kernels as
cond_resched() also relies on preempt_count's PREEMPT_ACTIVE to ignore
task_struct::state.

Also rename thread_info::preempt_count to ensure nobody is
'accidentally' still poking at it.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/n/tip-gzn5rfsf8trgjoqx8hyayy3q@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2013-09-25 14:07:57 +02:00
..
alpha sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
arc sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
arm sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
arm64 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
avr32 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
blackfin sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
c6x sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
cris sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
frv sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
h8300 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
hexagon sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
ia64 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
m32r sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
m68k sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
metag sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
microblaze sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
mips sched: Extract the basic add/sub preempt_count modifiers 2013-09-25 14:07:54 +02:00
mn10300 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
openrisc sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
parisc sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
powerpc sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
s390 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
score sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
sh sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
sparc sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
tile sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
um sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
unicore32 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
x86 sched, x86: Provide a per-cpu preempt_count implementation 2013-09-25 14:07:57 +02:00
xtensa sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
.gitignore
Kconfig microblaze: fix clone syscall 2013-08-13 17:57:48 -07:00