linux/arch
Haren Myneni 44e9309f1f powerpc: Implement PPR save/restore
[PATCH 6/6] powerpc: Implement PPR save/restore

When the task enters in to kernel space, the user defined priority (PPR)
will be saved in to PACA at the beginning of first level exception
vector and then copy from PACA to thread_info in second level vector.
PPR will be restored from thread_info before exits the kernel space.

P7/P8 temporarily raises the thread priority to higher level during
exception until the program executes HMT_* calls. But it will not modify
PPR register. So we save PPR value whenever some register is available
to use and then calls HMT_MEDIUM to increase the priority. This feature
supports on P7 or later processors.

We save/ restore PPR for all exception vectors except system call entry.
GLIBC will be saving / restore for system calls. So the default PPR
value (3) will be set for the system call exit when the task returned
to the user space.

Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2013-01-10 17:01:13 +11:00
..
alpha ALPHA: drivers: remove __dev* attributes. 2013-01-03 15:57:13 -08:00
arm Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2013-01-09 08:58:57 -08:00
arm64 - Missing include in asm/compat.h. 2013-01-04 10:41:54 -08:00
avr32 ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
blackfin ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
c6x These are a few cleanups for asm-generic: 2012-12-21 16:39:08 -08:00
cris ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
frv ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
h8300 These are a few cleanups for asm-generic: 2012-12-21 16:39:08 -08:00
hexagon Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-20 18:05:28 -08:00
ia64 Driver core __dev* removal patches 2013-01-03 16:17:50 -08:00
m32r ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
m68k ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
microblaze Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze 2013-01-07 07:39:32 -08:00
mips Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-01-07 07:50:41 -08:00
mn10300 ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
openrisc ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
parisc ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
powerpc powerpc: Implement PPR save/restore 2013-01-10 17:01:13 +11:00
s390 ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
score ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
sh ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
sparc SPARC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
tile ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
um Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-20 18:05:28 -08:00
unicore32 ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
x86 X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
xtensa These are a few cleanups for asm-generic: 2012-12-21 16:39:08 -08:00
.gitignore
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-20 18:05:28 -08:00