From 8c6e17b33a1fd99abc8702973ac9f390367d2ed7 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Sat, 7 Aug 2004 00:57:15 -0700 Subject: [PATCH] [PATCH] ppc64: set SMT thread priority to medium for all exceptions We need to set the thread priority to medium when entering all exceptions. We may have been executing in low priority (eg the idle loop), but definitely do not want to remain in that priority for the duration of the exception (eg a device interrupt). Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/ppc64/kernel/head.S | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/ppc64/kernel/head.S b/arch/ppc64/kernel/head.S index 3c2639b8c5201..a5d67f59951dd 100644 --- a/arch/ppc64/kernel/head.S +++ b/arch/ppc64/kernel/head.S @@ -303,12 +303,14 @@ exception_marker: . = n; \ .globl label##_Pseries; \ label##_Pseries: \ + HMT_MEDIUM; \ mtspr SPRG1,r13; /* save r13 */ \ EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common) #define STD_EXCEPTION_ISERIES(n, label, area) \ .globl label##_Iseries; \ label##_Iseries: \ + HMT_MEDIUM; \ mtspr SPRG1,r13; /* save r13 */ \ EXCEPTION_PROLOG_ISERIES_1(area); \ EXCEPTION_PROLOG_ISERIES_2; \ @@ -317,6 +319,7 @@ label##_Iseries: \ #define MASKABLE_EXCEPTION_ISERIES(n, label) \ .globl label##_Iseries; \ label##_Iseries: \ + HMT_MEDIUM; \ mtspr SPRG1,r13; /* save r13 */ \ EXCEPTION_PROLOG_ISERIES_1(PACA_EXGEN); \ lbz r10,PACAPROFENABLED(r13); \ @@ -410,12 +413,14 @@ __start_interrupts: . = 0x200 _MachineCheckPseries: + HMT_MEDIUM mtspr SPRG1,r13 /* save r13 */ EXCEPTION_PROLOG_PSERIES(PACA_EXMC, MachineCheck_common) . = 0x300 .globl DataAccess_Pseries DataAccess_Pseries: + HMT_MEDIUM mtspr SPRG1,r13 BEGIN_FTR_SECTION mtspr SPRG2,r12 @@ -434,6 +439,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_SLB) . = 0x380 .globl DataAccessSLB_Pseries DataAccessSLB_Pseries: + HMT_MEDIUM mtspr SPRG1,r13 mfspr r13,SPRG3 /* get paca address into r13 */ std r9,PACA_EXSLB+EX_R9(r13) /* save r9 - r12 */ @@ -461,6 +467,7 @@ DataAccessSLB_Pseries: . = 0x480 .globl InstructionAccessSLB_Pseries InstructionAccessSLB_Pseries: + HMT_MEDIUM mtspr SPRG1,r13 mfspr r13,SPRG3 /* get paca address into r13 */ std r9,PACA_EXSLB+EX_R9(r13) /* save r9 - r12 */ @@ -494,6 +501,7 @@ InstructionAccessSLB_Pseries: . = 0xc00 .globl SystemCall_Pseries SystemCall_Pseries: + HMT_MEDIUM mr r9,r13 mfmsr r10 mfspr r13,SPRG3 @@ -747,10 +755,12 @@ fwnmi_data_area: . = 0x8000 .globl SystemReset_FWNMI SystemReset_FWNMI: + HMT_MEDIUM mtspr SPRG1,r13 /* save r13 */ EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, SystemReset_common) .globl MachineCheck_FWNMI MachineCheck_FWNMI: + HMT_MEDIUM mtspr SPRG1,r13 /* save r13 */ EXCEPTION_PROLOG_PSERIES(PACA_EXMC, MachineCheck_common) -- 2.53.0