From: Martin Schwidefsky Date: Mon, 3 Apr 2017 11:30:23 +0000 (+0200) Subject: s390: use 64-bit lctlg to load task pid to cr4 on context switch X-Git-Tag: v4.12-rc1~139^2~21 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=cab36c262ef9a5ddf3c7ae0f8031b191338b3142;p=karo-tx-linux.git s390: use 64-bit lctlg to load task pid to cr4 on context switch The 32-bit lctl instruction is quite a bit slower than the 64-bit counter part lctlg. Use the faster instruction. Signed-off-by: Martin Schwidefsky --- diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index fa8b8f28e08b..02f11018e2df 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S @@ -190,7 +190,9 @@ ENTRY(__switch_to) stg %r15,__LC_KERNEL_STACK # store end of kernel stack lg %r15,__THREAD_ksp(%r1) # load kernel stack of next /* c4 is used in guest detection: arch/s390/kernel/perf_cpum_sf.c */ - lctl %c4,%c4,__TASK_pid(%r3) # load pid to control reg. 4 + xc __SF_EMPTY(8,%r15),__SF_EMPTY(%r15) + mvc __SF_EMPTY+4(4,%r15),__TASK_pid(%r3) + lctlg %c4,%c4,__SF_EMPTY(%r15) # load pid to control reg. 4 mvc __LC_CURRENT_PID(4,%r0),__TASK_pid(%r3) # store pid of next lmg %r6,%r15,__SF_GPRS(%r15) # load gprs of next task TSTMSK __LC_MACHINE_FLAGS,MACHINE_FLAG_LPP