Skip to content

Commit

Permalink
[S390] pm: ignore time spend in suspended state
Browse files Browse the repository at this point in the history
The time a system has been suspended should not show up in any
of the cputime accounting fields. The time of inactivity is definitly
not any form of real cputime nor is it idle time.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  • Loading branch information
Martin Schwidefsky authored and Martin Schwidefsky committed Oct 6, 2009
1 parent 942b7e6 commit 623c08e
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions arch/s390/kernel/swsusp_asm64.S
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,21 @@ swsusp_arch_suspend:
stmg %r0,%r15,0x280(%r1) /* store general registers */

stpt 0x328(%r1) /* store timer */
stck __SF_EMPTY(%r15) /* store clock */
stckc 0x330(%r1) /* store clock comparator */

/* Update cputime accounting before going to sleep */
lg %r0,__LC_LAST_UPDATE_TIMER
slg %r0,0x328(%r1)
alg %r0,__LC_SYSTEM_TIMER
stg %r0,__LC_SYSTEM_TIMER
mvc __LC_LAST_UPDATE_TIMER(8),0x328(%r1)
lg %r0,__LC_LAST_UPDATE_CLOCK
slg %r0,__SF_EMPTY(%r15)
alg %r0,__LC_STEAL_TIMER
stg %r0,__LC_STEAL_TIMER
mvc __LC_LAST_UPDATE_CLOCK(8),__SF_EMPTY(%r15)

/* Activate DAT */
stosm __SF_EMPTY(%r15),0x04

Expand Down Expand Up @@ -200,8 +213,11 @@ restart_suspend:

restore_registers:
/* Restore registers */
lghi %r13,0x1000 /* %r1 = pointer to save arae */
lghi %r13,0x1000 /* %r1 = pointer to save area */

/* Ignore time spent in suspended state. */
llgf %r1,0x318(%r13)
stck __LC_LAST_UPDATE_CLOCK(%r1)
spt 0x328(%r13) /* reprogram timer */
//sckc 0x330(%r13) /* set clock comparator */

Expand Down Expand Up @@ -229,9 +245,6 @@ restore_registers:
/* Load old stack */
lg %r15,0x2f8(%r13)

/* Pointer to save area */
lghi %r13,0x1000

/* Restore prefix register */
spx 0x318(%r13)

Expand Down

0 comments on commit 623c08e

Please sign in to comment.