[S390] rework idle code
Whenever the cpu loads an enabled wait PSW it will appear as idle to the
underlying host system. The code in default_idle calls vtime_stop_cpu
which does the necessary voodoo to get the cpu time accounting right.
The udelay code just loads an enabled wait PSW. To correct this rework
the vtime_stop_cpu/vtime_start_cpu logic and move the difficult parts
to entry[64].S, vtime_stop_cpu can now be called from anywhere and
vtime_start_cpu is gone. The correction of the cpu time during wakeup
from an enabled wait PSW is done with a critical section in entry[64].S.
As vtime_start_cpu is gone, s390_idle_check can be removed as well.
Signed-off-by:
Martin Schwidefsky <schwidefsky@de.ibm.com>
Showing
- arch/s390/include/asm/cputime.h 1 addition, 8 deletionsarch/s390/include/asm/cputime.h
- arch/s390/include/asm/timer.h 2 additions, 2 deletionsarch/s390/include/asm/timer.h
- arch/s390/kernel/asm-offsets.c 8 additions, 0 deletionsarch/s390/kernel/asm-offsets.c
- arch/s390/kernel/entry.S 70 additions, 6 deletionsarch/s390/kernel/entry.S
- arch/s390/kernel/entry.h 4 additions, 1 deletionarch/s390/kernel/entry.h
- arch/s390/kernel/entry64.S 62 additions, 3 deletionsarch/s390/kernel/entry64.S
- arch/s390/kernel/irq.c 0 additions, 2 deletionsarch/s390/kernel/irq.c
- arch/s390/kernel/nmi.c 0 additions, 2 deletionsarch/s390/kernel/nmi.c
- arch/s390/kernel/process.c 1 addition, 6 deletionsarch/s390/kernel/process.c
- arch/s390/kernel/smp.c 17 additions, 29 deletionsarch/s390/kernel/smp.c
- arch/s390/kernel/vtime.c 31 additions, 132 deletionsarch/s390/kernel/vtime.c
- arch/s390/lib/delay.c 14 additions, 17 deletionsarch/s390/lib/delay.c
- drivers/s390/cio/cio.c 0 additions, 2 deletionsdrivers/s390/cio/cio.c
Loading
Please register or sign in to comment