mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-03 11:13:56 +08:00
powerpc/32: Entry cpu time accounting in C
There is no need for this to be in asm, use the new interrupt entry wrapper. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/daca4c3e05cdfe54d237162a0718b3aaca897662.1615552866.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
be39e10506
commit
f93d866e14
@ -32,6 +32,9 @@ static inline void interrupt_enter_prepare(struct pt_regs *regs, struct interrup
|
|||||||
#ifdef CONFIG_PPC32
|
#ifdef CONFIG_PPC32
|
||||||
if (!arch_irq_disabled_regs(regs))
|
if (!arch_irq_disabled_regs(regs))
|
||||||
trace_hardirqs_off();
|
trace_hardirqs_off();
|
||||||
|
|
||||||
|
if (user_mode(regs))
|
||||||
|
account_cpu_user_entry();
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* Book3E reconciles irq soft mask in asm
|
* Book3E reconciles irq soft mask in asm
|
||||||
|
@ -23,18 +23,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
|
#ifndef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
|
||||||
#define ACCOUNT_CPU_USER_ENTRY(ptr, ra, rb)
|
|
||||||
#define ACCOUNT_CPU_USER_EXIT(ptr, ra, rb)
|
#define ACCOUNT_CPU_USER_EXIT(ptr, ra, rb)
|
||||||
#else
|
#else
|
||||||
#define ACCOUNT_CPU_USER_ENTRY(ptr, ra, rb) \
|
|
||||||
MFTB(ra); /* get timebase */ \
|
|
||||||
PPC_LL rb, ACCOUNT_STARTTIME_USER(ptr); \
|
|
||||||
PPC_STL ra, ACCOUNT_STARTTIME(ptr); \
|
|
||||||
subf rb,rb,ra; /* subtract start value */ \
|
|
||||||
PPC_LL ra, ACCOUNT_USER_TIME(ptr); \
|
|
||||||
add ra,ra,rb; /* add on to user time */ \
|
|
||||||
PPC_STL ra, ACCOUNT_USER_TIME(ptr); \
|
|
||||||
|
|
||||||
#define ACCOUNT_CPU_USER_EXIT(ptr, ra, rb) \
|
#define ACCOUNT_CPU_USER_EXIT(ptr, ra, rb) \
|
||||||
MFTB(ra); /* get timebase */ \
|
MFTB(ra); /* get timebase */ \
|
||||||
PPC_LL rb, ACCOUNT_STARTTIME(ptr); \
|
PPC_LL rb, ACCOUNT_STARTTIME(ptr); \
|
||||||
|
@ -152,7 +152,6 @@ transfer_to_handler:
|
|||||||
lwz r12,THREAD_DBCR0(r12)
|
lwz r12,THREAD_DBCR0(r12)
|
||||||
andis. r12,r12,DBCR0_IDM@h
|
andis. r12,r12,DBCR0_IDM@h
|
||||||
#endif
|
#endif
|
||||||
ACCOUNT_CPU_USER_ENTRY(r2, r11, r12)
|
|
||||||
#ifdef CONFIG_PPC_BOOK3S_32
|
#ifdef CONFIG_PPC_BOOK3S_32
|
||||||
kuep_lock r11, r12
|
kuep_lock r11, r12
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user