Skip to content

Commit

Permalink
[S390] ftrace: add function trace mcount test support
Browse files Browse the repository at this point in the history
Add support for early test if the function tracer is enabled or
disabled. Saves some extra function calls.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  • Loading branch information
Heiko Carstens authored and Martin Schwidefsky committed Jun 12, 2009
1 parent dfd9f7a commit 8b4488f
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 12 deletions.
1 change: 1 addition & 0 deletions arch/s390/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ config S390
select USE_GENERIC_SMP_HELPERS if SMP
select HAVE_SYSCALL_WRAPPERS
select HAVE_FUNCTION_TRACER
select HAVE_FUNCTION_TRACE_MCOUNT_TEST
select HAVE_FTRACE_MCOUNT_RECORD
select HAVE_DYNAMIC_FTRACE
select HAVE_DEFAULT_NO_SPIN_MUTEXES
Expand Down
38 changes: 26 additions & 12 deletions arch/s390/kernel/mcount.S
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ _mcount:

.globl ftrace_caller
ftrace_caller:
larl %r1,function_trace_stop
icm %r1,0xf,0(%r1)
bnzr %r14
stmg %r2,%r5,32(%r15)
stg %r14,112(%r15)
lgr %r1,%r15
Expand All @@ -46,6 +49,9 @@ ftrace_dyn_func:

.globl _mcount
_mcount:
larl %r1,function_trace_stop
icm %r1,0xf,0(%r1)
bnzr %r14
stmg %r2,%r5,32(%r15)
stg %r14,112(%r15)
lgr %r1,%r15
Expand Down Expand Up @@ -74,21 +80,25 @@ _mcount:
.globl ftrace_caller
ftrace_caller:
stm %r2,%r5,16(%r15)
bras %r1,2f
0: .long ftrace_trace_function
1: .long function_trace_stop
2: l %r2,1b-0b(%r1)
icm %r2,0xf,0(%r2)
jnz 3f
st %r14,56(%r15)
lr %r1,%r15
lr %r0,%r15
ahi %r15,-96
l %r3,100(%r15)
la %r2,0(%r14)
st %r1,__SF_BACKCHAIN(%r15)
st %r0,__SF_BACKCHAIN(%r15)
la %r3,0(%r3)
bras %r14,0f
.long ftrace_dyn_func
0: l %r14,0(%r14)
l %r14,0b-0b(%r1)
l %r14,0(%r14)
basr %r14,%r14
ahi %r15,96
lm %r2,%r5,16(%r15)
l %r14,56(%r15)
3: lm %r2,%r5,16(%r15)
br %r14

.data
Expand All @@ -102,21 +112,25 @@ ftrace_dyn_func:
.globl _mcount
_mcount:
stm %r2,%r5,16(%r15)
bras %r1,2f
0: .long ftrace_trace_function
1: .long function_trace_stop
2: l %r2,1b-0b(%r1)
icm %r2,0xf,0(%r2)
jnz 3f
st %r14,56(%r15)
lr %r1,%r15
lr %r0,%r15
ahi %r15,-96
l %r3,100(%r15)
la %r2,0(%r14)
st %r1,__SF_BACKCHAIN(%r15)
st %r0,__SF_BACKCHAIN(%r15)
la %r3,0(%r3)
bras %r14,0f
.long ftrace_trace_function
0: l %r14,0(%r14)
l %r14,0b-0b(%r1)
l %r14,0(%r14)
basr %r14,%r14
ahi %r15,96
lm %r2,%r5,16(%r15)
l %r14,56(%r15)
3: lm %r2,%r5,16(%r15)
br %r14

#endif /* CONFIG_DYNAMIC_FTRACE */
Expand Down

0 comments on commit 8b4488f

Please sign in to comment.