powerpc: Define ppr in thread_struct
[PATCH 4/6] powerpc: Define ppr in thread_struct ppr in thread_struct is used to save PPR and restore it before process exits from kernel. This patch sets the default priority to 3 when tasks are created such that users can use 4 for higher priority tasks. Signed-off-by: Haren Myneni <haren@us.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
a09688cd23
commit
9277924559
|
@ -18,6 +18,16 @@
|
|||
#define TS_FPRWIDTH 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
/* Default SMT priority is set to 3. Use 11- 13bits to save priority. */
|
||||
#define PPR_PRIORITY 3
|
||||
#ifdef __ASSEMBLY__
|
||||
#define INIT_PPR (PPR_PRIORITY << 50)
|
||||
#else
|
||||
#define INIT_PPR ((u64)PPR_PRIORITY << 50)
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* CONFIG_PPC64 */
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/cache.h>
|
||||
|
@ -245,6 +255,7 @@ struct thread_struct {
|
|||
#ifdef CONFIG_PPC64
|
||||
unsigned long dscr;
|
||||
int dscr_inherit;
|
||||
unsigned long ppr; /* used to save/restore SMT priority */
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -278,6 +289,7 @@ struct thread_struct {
|
|||
.fpr = {{0}}, \
|
||||
.fpscr = { .val = 0, }, \
|
||||
.fpexc_mode = 0, \
|
||||
.ppr = INIT_PPR, \
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -77,6 +77,7 @@ int main(void)
|
|||
DEFINE(NMI_MASK, NMI_MASK);
|
||||
DEFINE(THREAD_DSCR, offsetof(struct thread_struct, dscr));
|
||||
DEFINE(THREAD_DSCR_INHERIT, offsetof(struct thread_struct, dscr_inherit));
|
||||
DEFINE(TASKTHREADPPR, offsetof(struct task_struct, thread.ppr));
|
||||
#else
|
||||
DEFINE(THREAD_INFO, offsetof(struct task_struct, stack));
|
||||
#endif /* CONFIG_PPC64 */
|
||||
|
|
|
@ -813,6 +813,8 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
|
|||
p->thread.dscr_inherit = current->thread.dscr_inherit;
|
||||
p->thread.dscr = current->thread.dscr;
|
||||
}
|
||||
if (cpu_has_feature(CPU_FTR_HAS_PPR))
|
||||
p->thread.ppr = INIT_PPR;
|
||||
#endif
|
||||
/*
|
||||
* The PPC64 ABI makes use of a TOC to contain function
|
||||
|
|
Loading…
Reference in New Issue